@gouvfr-lasuite/ui-kit 0.0.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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/cunningham.ts +306 -0
- package/dist/index.cjs +101 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +567 -0
- package/dist/index.js +15807 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/utils/objects.ts","../src/locales/Locale.tsx","../src/components/Provider/Provider.tsx","../src/components/button/ProConnectButton.tsx","../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs","../node_modules/@react-aria/utils/dist/useEffectEvent.mjs","../node_modules/@react-aria/utils/dist/useValueEffect.mjs","../node_modules/@react-aria/ssr/dist/SSRProvider.mjs","../node_modules/@react-aria/utils/dist/useId.mjs","../node_modules/@react-aria/utils/dist/chain.mjs","../node_modules/@react-aria/utils/dist/domHelpers.mjs","../node_modules/clsx/dist/clsx.mjs","../node_modules/@react-aria/utils/dist/mergeProps.mjs","../node_modules/@react-aria/utils/dist/mergeRefs.mjs","../node_modules/@react-aria/utils/dist/filterDOMProps.mjs","../node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs","../node_modules/@react-aria/utils/dist/platform.mjs","../node_modules/@react-aria/utils/dist/openLink.mjs","../node_modules/@react-aria/utils/dist/runAfterTransition.mjs","../node_modules/@react-aria/utils/dist/useGlobalListeners.mjs","../node_modules/@react-aria/utils/dist/useLabels.mjs","../node_modules/@react-aria/utils/dist/useObjectRef.mjs","../node_modules/@react-aria/utils/dist/useUpdateLayoutEffect.mjs","../node_modules/@react-aria/utils/dist/useResizeObserver.mjs","../node_modules/@react-aria/utils/dist/useSyncRef.mjs","../node_modules/@react-aria/utils/dist/isScrollable.mjs","../node_modules/@react-aria/utils/dist/getScrollParent.mjs","../node_modules/@react-aria/utils/dist/getScrollParents.mjs","../node_modules/@react-aria/utils/dist/useDescription.mjs","../node_modules/@react-aria/utils/dist/useEvent.mjs","../node_modules/@react-aria/utils/dist/scrollIntoView.mjs","../node_modules/@react-aria/utils/dist/isVirtualEvent.mjs","../node_modules/@react-aria/utils/dist/constants.mjs","../node_modules/@react-aria/utils/dist/keyboard.mjs","../node_modules/@react-aria/utils/dist/animation.mjs","../node_modules/@react-stately/utils/dist/useControlledState.mjs","../node_modules/@react-stately/utils/dist/number.mjs","../node_modules/react-aria-components/dist/utils.mjs","../node_modules/@react-aria/collections/dist/BaseCollection.mjs","../node_modules/@react-aria/collections/dist/Document.mjs","../node_modules/@react-aria/collections/dist/useCachedChildren.mjs","../node_modules/@react-aria/collections/dist/Hidden.mjs","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/@react-aria/collections/dist/CollectionBuilder.mjs","../node_modules/@react-aria/interactions/dist/textSelection.mjs","../node_modules/@react-aria/interactions/dist/context.mjs","../node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js","../node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js","../node_modules/@swc/helpers/esm/_class_private_field_get.js","../node_modules/@swc/helpers/esm/_check_private_redeclaration.js","../node_modules/@swc/helpers/esm/_class_private_field_init.js","../node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js","../node_modules/@swc/helpers/esm/_class_private_field_set.js","../node_modules/@react-aria/interactions/dist/usePress.mjs","../node_modules/@react-aria/interactions/dist/PressResponder.mjs","../node_modules/@react-aria/interactions/dist/utils.mjs","../node_modules/@react-aria/interactions/dist/useFocus.mjs","../node_modules/@react-aria/interactions/dist/useFocusVisible.mjs","../node_modules/@react-aria/interactions/dist/useFocusWithin.mjs","../node_modules/@react-aria/interactions/dist/useHover.mjs","../node_modules/@react-aria/interactions/dist/useInteractOutside.mjs","../node_modules/@react-aria/interactions/dist/createEventHandler.mjs","../node_modules/@react-aria/interactions/dist/useKeyboard.mjs","../node_modules/@react-aria/interactions/dist/useLongPress.mjs","../node_modules/@react-aria/focus/dist/focusSafely.mjs","../node_modules/@react-aria/focus/dist/isElementVisible.mjs","../node_modules/@react-aria/focus/dist/FocusScope.mjs","../node_modules/@react-aria/focus/dist/useFocusRing.mjs","../node_modules/@react-aria/focus/dist/useHasTabbableChild.mjs","../node_modules/@react-aria/i18n/dist/utils.mjs","../node_modules/@react-aria/i18n/dist/useDefaultLocale.mjs","../node_modules/@react-aria/i18n/dist/context.mjs","../node_modules/tslib/tslib.es6.mjs","../node_modules/@internationalized/string/dist/LocalizedStringDictionary.mjs","../node_modules/@internationalized/string/dist/LocalizedStringFormatter.mjs","../node_modules/@react-aria/i18n/dist/useLocalizedStringFormatter.mjs","../node_modules/@react-aria/i18n/dist/useCollator.mjs","../node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.mjs","../node_modules/@react-aria/overlays/dist/calculatePosition.mjs","../node_modules/@react-aria/overlays/dist/useCloseOnScroll.mjs","../node_modules/@react-aria/overlays/dist/useOverlayPosition.mjs","../node_modules/@react-aria/overlays/dist/useOverlay.mjs","../node_modules/@react-aria/overlays/dist/usePreventScroll.mjs","../node_modules/@react-aria/overlays/dist/ar-AE.mjs","../node_modules/@react-aria/overlays/dist/bg-BG.mjs","../node_modules/@react-aria/overlays/dist/cs-CZ.mjs","../node_modules/@react-aria/overlays/dist/da-DK.mjs","../node_modules/@react-aria/overlays/dist/de-DE.mjs","../node_modules/@react-aria/overlays/dist/el-GR.mjs","../node_modules/@react-aria/overlays/dist/en-US.mjs","../node_modules/@react-aria/overlays/dist/es-ES.mjs","../node_modules/@react-aria/overlays/dist/et-EE.mjs","../node_modules/@react-aria/overlays/dist/fi-FI.mjs","../node_modules/@react-aria/overlays/dist/fr-FR.mjs","../node_modules/@react-aria/overlays/dist/he-IL.mjs","../node_modules/@react-aria/overlays/dist/hr-HR.mjs","../node_modules/@react-aria/overlays/dist/hu-HU.mjs","../node_modules/@react-aria/overlays/dist/it-IT.mjs","../node_modules/@react-aria/overlays/dist/ja-JP.mjs","../node_modules/@react-aria/overlays/dist/ko-KR.mjs","../node_modules/@react-aria/overlays/dist/lt-LT.mjs","../node_modules/@react-aria/overlays/dist/lv-LV.mjs","../node_modules/@react-aria/overlays/dist/nb-NO.mjs","../node_modules/@react-aria/overlays/dist/nl-NL.mjs","../node_modules/@react-aria/overlays/dist/pl-PL.mjs","../node_modules/@react-aria/overlays/dist/pt-BR.mjs","../node_modules/@react-aria/overlays/dist/pt-PT.mjs","../node_modules/@react-aria/overlays/dist/ro-RO.mjs","../node_modules/@react-aria/overlays/dist/ru-RU.mjs","../node_modules/@react-aria/overlays/dist/sk-SK.mjs","../node_modules/@react-aria/overlays/dist/sl-SI.mjs","../node_modules/@react-aria/overlays/dist/sr-SP.mjs","../node_modules/@react-aria/overlays/dist/sv-SE.mjs","../node_modules/@react-aria/overlays/dist/tr-TR.mjs","../node_modules/@react-aria/overlays/dist/uk-UA.mjs","../node_modules/@react-aria/overlays/dist/zh-CN.mjs","../node_modules/@react-aria/overlays/dist/zh-TW.mjs","../node_modules/@react-aria/overlays/dist/intlStrings.mjs","../node_modules/@react-aria/overlays/dist/DismissButton.mjs","../node_modules/@react-aria/overlays/dist/ariaHideOutside.mjs","../node_modules/@react-aria/overlays/dist/usePopover.mjs","../node_modules/@react-aria/overlays/dist/PortalProvider.mjs","../node_modules/@react-aria/overlays/dist/Overlay.mjs","../node_modules/@react-aria/selection/dist/utils.mjs","../node_modules/@react-aria/selection/dist/useTypeSelect.mjs","../node_modules/@react-aria/selection/dist/useSelectableCollection.mjs","../node_modules/@react-aria/selection/dist/useSelectableItem.mjs","../node_modules/@react-aria/selection/dist/DOMLayoutDelegate.mjs","../node_modules/@react-aria/selection/dist/ListKeyboardDelegate.mjs","../node_modules/@react-aria/selection/dist/useSelectableList.mjs","../node_modules/@react-stately/collections/dist/CollectionBuilder.mjs","../node_modules/@react-stately/collections/dist/useCollection.mjs","../node_modules/@react-stately/collections/dist/getChildNodes.mjs","../node_modules/@react-stately/collections/dist/getItemCount.mjs","../node_modules/@react-aria/menu/dist/utils.mjs","../node_modules/@react-aria/menu/dist/useMenu.mjs","../node_modules/@react-aria/menu/dist/useMenuItem.mjs","../node_modules/@react-aria/menu/dist/useMenuSection.mjs","../node_modules/@react-aria/separator/dist/useSeparator.mjs","../node_modules/@react-aria/tabs/dist/utils.mjs","../node_modules/@react-aria/tabs/dist/useTab.mjs","../node_modules/@react-aria/tabs/dist/useTabPanel.mjs","../node_modules/@react-aria/tabs/dist/TabsKeyboardDelegate.mjs","../node_modules/@react-aria/tabs/dist/useTabList.mjs","../node_modules/react-aria-components/dist/Text.mjs","../node_modules/@react-stately/list/dist/ListCollection.mjs","../node_modules/@react-stately/selection/dist/Selection.mjs","../node_modules/@react-stately/selection/dist/useMultipleSelectionState.mjs","../node_modules/@react-stately/selection/dist/SelectionManager.mjs","../node_modules/@react-stately/list/dist/useListState.mjs","../node_modules/@react-stately/list/dist/useSingleSelectListState.mjs","../node_modules/@react-stately/overlays/dist/useOverlayTriggerState.mjs","../node_modules/@react-stately/tabs/dist/useTabListState.mjs","../node_modules/@react-stately/tree/dist/TreeCollection.mjs","../node_modules/@react-stately/tree/dist/useTreeState.mjs","../node_modules/react-aria-components/dist/Autocomplete.mjs","../node_modules/react-aria-components/dist/Collection.mjs","../node_modules/react-aria-components/dist/Header.mjs","../node_modules/react-aria-components/dist/Separator.mjs","../node_modules/react-aria-components/dist/OverlayArrow.mjs","../node_modules/react-aria-components/dist/Popover.mjs","../node_modules/react-aria-components/dist/Keyboard.mjs","../node_modules/react-aria-components/dist/Menu.mjs","../node_modules/react-aria-components/dist/Dialog.mjs","../node_modules/react-aria-components/dist/Tabs.mjs","../src/components/dropdown-menu/DropdownMenu.tsx","../src/components/dropdown-menu/useDropdownMenu.tsx","../src/components/language/language-picker.tsx","../src/components/layout/header/Header.tsx","../cunningham.ts","../src/hooks/useResponsive.tsx","../src/components/layout/left-panel/LeftPanel.tsx","../node_modules/react-resizable-panels/dist/react-resizable-panels.browser.esm.js","../src/components/layout/MainLayout.tsx","../src/components/layout/utils.ts","../src/components/loader/Spinner.tsx","../src/components/form/label/label.tsx","../src/components/form/label/WithLabel.tsx","../node_modules/cmdk/dist/chunk-NZJY6EH4.mjs","../node_modules/@radix-ui/primitive/dist/index.mjs","../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-context/dist/index.mjs","../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../node_modules/@radix-ui/react-id/dist/index.mjs","../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../node_modules/@radix-ui/react-portal/dist/index.mjs","../node_modules/@radix-ui/react-presence/dist/index.mjs","../node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/@radix-ui/react-dialog/dist/index.mjs","../node_modules/cmdk/dist/index.mjs","../src/components/separator/HorizontalSeparator.tsx","../src/components/quick-search/QuickSearchInput.tsx","../src/utils/children.tsx","../src/components/quick-search/QuickSearch.tsx","../src/components/quick-search/QuickSearchItem.tsx","../src/components/quick-search/QuickSearchGroup.tsx","../src/components/quick-search/QuickSearchItemTemplate.tsx","../src/components/tabs/Tabs.tsx","../node_modules/react-arborist/dist/module/context.js","../node_modules/react-arborist/dist/module/utils.js","../node_modules/react-arborist/dist/module/components/default-cursor.js","../node_modules/react-arborist/dist/module/components/default-row.js","../node_modules/react-arborist/dist/module/components/default-node.js","../node_modules/react-arborist/dist/module/state/edit-slice.js","../node_modules/react-arborist/dist/module/state/focus-slice.js","../node_modules/react-arborist/dist/module/interfaces/node-api.js","../node_modules/react-arborist/dist/module/data/create-root.js","../node_modules/react-arborist/dist/module/state/open-slice.js","../node_modules/react-arborist/dist/module/state/initial.js","../node_modules/react-arborist/dist/module/state/selection-slice.js","../node_modules/react-arborist/dist/module/state/dnd-slice.js","../node_modules/react-arborist/dist/module/components/default-drag-preview.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-window/dist/index.esm.js","../node_modules/react-arborist/dist/module/components/cursor.js","../node_modules/react-arborist/dist/module/components/list-outer-element.js","../node_modules/react-arborist/dist/module/components/list-inner-element.js","../node_modules/react-dnd/dist/esm/core/DndContext.js","../node_modules/dnd-core/dist/esm/interfaces.js","../node_modules/@react-dnd/invariant/dist/invariant.esm.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/types.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/local/setClientOffset.js","../node_modules/dnd-core/dist/esm/utils/js_utils.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/beginDrag.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/publishDragSource.js","../node_modules/dnd-core/dist/esm/utils/matchesType.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/hover.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/drop.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/endDrag.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/index.js","../node_modules/dnd-core/dist/esm/classes/DragDropManagerImpl.js","../node_modules/dnd-core/node_modules/redux/es/redux.js","../node_modules/dnd-core/dist/esm/utils/equality.js","../node_modules/dnd-core/dist/esm/reducers/dragOffset.js","../node_modules/dnd-core/dist/esm/actions/registry.js","../node_modules/dnd-core/dist/esm/reducers/dragOperation.js","../node_modules/dnd-core/dist/esm/reducers/refCount.js","../node_modules/dnd-core/dist/esm/utils/dirtiness.js","../node_modules/dnd-core/dist/esm/reducers/dirtyHandlerIds.js","../node_modules/dnd-core/dist/esm/reducers/stateId.js","../node_modules/dnd-core/dist/esm/reducers/index.js","../node_modules/dnd-core/dist/esm/utils/coords.js","../node_modules/dnd-core/dist/esm/classes/DragDropMonitorImpl.js","../node_modules/dnd-core/dist/esm/utils/getNextUniqueId.js","../node_modules/dnd-core/dist/esm/contracts.js","../node_modules/@react-dnd/asap/dist/esm/makeRequestCall.mjs","../node_modules/@react-dnd/asap/dist/esm/AsapQueue.mjs","../node_modules/@react-dnd/asap/dist/esm/RawTask.mjs","../node_modules/@react-dnd/asap/dist/esm/TaskFactory.mjs","../node_modules/@react-dnd/asap/dist/esm/asap.mjs","../node_modules/dnd-core/dist/esm/classes/HandlerRegistryImpl.js","../node_modules/dnd-core/dist/esm/createDragDropManager.js","../node_modules/react-dnd/dist/esm/core/DndProvider.js","../node_modules/react-dnd/dist/esm/internals/DragSourceMonitorImpl.js","../node_modules/react-dnd/dist/esm/internals/DropTargetMonitorImpl.js","../node_modules/react-dnd/dist/esm/internals/wrapConnectorHooks.js","../node_modules/react-dnd/dist/esm/internals/isRef.js","../node_modules/@react-dnd/shallowequal/dist/shallowequal.esm.js","../node_modules/react-dnd/dist/esm/internals/SourceConnector.js","../node_modules/react-dnd/dist/esm/internals/TargetConnector.js","../node_modules/react-dnd/dist/esm/internals/registration.js","../node_modules/react-dnd/dist/esm/hooks/useIsomorphicLayoutEffect.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/DragSourceImpl.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragSource.js","../node_modules/react-dnd/dist/esm/hooks/useDragDropManager.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragType.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useRegisteredDragSource.js","../node_modules/react-dnd/dist/esm/hooks/useOptionalFactory.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragSourceMonitor.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragSourceConnector.js","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd/dist/esm/hooks/useCollector.js","../node_modules/react-dnd/dist/esm/hooks/useMonitorOutput.js","../node_modules/react-dnd/dist/esm/hooks/useCollectedProps.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/connectors.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDrag.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useAccept.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/DropTargetImpl.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTarget.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useRegisteredDropTarget.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTargetMonitor.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTargetConnector.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/connectors.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDrop.js","../node_modules/react-dnd/dist/esm/hooks/useDragLayer.js","../node_modules/react-dnd-html5-backend/dist/esm/utils/js_utils.js","../node_modules/react-dnd-html5-backend/dist/esm/EnterLeaveCounter.js","../node_modules/react-dnd-html5-backend/dist/esm/BrowserDetector.js","../node_modules/react-dnd-html5-backend/dist/esm/MonotonicInterpolant.js","../node_modules/react-dnd-html5-backend/dist/esm/OffsetUtils.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeTypes.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/getDataFromDataTransfer.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/nativeTypesConfig.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/NativeDragSource.js","../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/index.js","../node_modules/react-dnd-html5-backend/dist/esm/OptionsReader.js","../node_modules/react-dnd-html5-backend/dist/esm/HTML5BackendImpl.js","../node_modules/react-dnd-html5-backend/dist/esm/getEmptyImage.js","../node_modules/react-dnd-html5-backend/dist/esm/index.js","../node_modules/react-arborist/dist/module/dnd/drag-hook.js","../node_modules/react-arborist/dist/module/dnd/compute-drop.js","../node_modules/react-arborist/dist/module/dnd/drop-hook.js","../node_modules/react-arborist/dist/module/hooks/use-fresh-node.js","../node_modules/react-arborist/dist/module/components/row-container.js","../node_modules/react-arborist/dist/module/components/default-container.js","../node_modules/react-arborist/dist/module/data/create-list.js","../node_modules/react-arborist/dist/module/data/create-index.js","../node_modules/react-arborist/dist/module/interfaces/tree-api.js","../node_modules/redux/dist/redux.mjs","../node_modules/react-arborist/dist/module/state/drag-slice.js","../node_modules/react-arborist/dist/module/state/root-reducer.js","../node_modules/react-arborist/dist/module/components/provider.js","../node_modules/react-arborist/dist/module/dnd/outer-drop-hook.js","../node_modules/react-arborist/dist/module/components/outer-drop.js","../node_modules/react-arborist/dist/module/components/tree-container.js","../node_modules/react-arborist/dist/module/components/drag-preview-container.js","../node_modules/react-arborist/dist/module/data/simple-tree.js","../node_modules/react-arborist/dist/module/hooks/use-simple-tree.js","../node_modules/react-arborist/dist/module/hooks/use-validated-props.js","../node_modules/react-arborist/dist/module/components/tree.js","../src/components/tree-view/TreeViewSeparator.tsx","../src/components/tree-view/types.ts","../src/components/tree-view/TreeView.tsx","../src/components/tree-view/TreeViewItem.tsx","../src/components/tree-view/useTree.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","function isObject(item: unknown) {\n return item && typeof item === \"object\" && !Array.isArray(item);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function deepMerge(target: any, ...sources: any[]): any {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n deepMerge(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n return deepMerge(target, ...sources);\n}\n","import { default as originalEnUS } from \"./originals/en-US.json\";\nimport { default as originalFrFR } from \"./originals/fr-FR.json\";\nimport { default as enUS } from \"./en-US.json\";\nimport { default as frFR } from \"./fr-FR.json\";\nimport { deepMerge } from \"../utils/objects\";\n\nexport function getLocales() {\n return {\n enUS: deepMerge(originalEnUS, enUS),\n frFR: deepMerge(originalFrFR, frFR),\n };\n}\n","import { getLocales } from \":/locales/Locale\";\nimport { CunninghamProvider as OriginalProvider } from \"@openfun/cunningham-react\";\n\nexport const CunninghamProvider = (\n props: Parameters<typeof OriginalProvider>[0]\n) => {\n const locales = getLocales();\n return <OriginalProvider theme=\"dsfr\" customLocales={locales} {...props} />;\n};\n","import { Button } from \"@openfun/cunningham-react\";\n\nexport type ProConnectButtonProps = {\n disabled?: boolean;\n onClick?: () => void;\n};\nexport const ProConnectButton = ({\n disabled,\n onClick,\n}: ProConnectButtonProps) => {\n return (\n <Button\n disabled={disabled}\n className=\"pro-connect-button\"\n onClick={onClick}\n />\n );\n};\n","import $HgANd$react from \"react\";\n\n/*\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 */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, $HgANd$react).useLayoutEffect : ()=>{};\n\n\nexport {$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=useLayoutEffect.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useRef as $lmaYr$useRef, useCallback as $lmaYr$useCallback} from \"react\";\n\n/*\n * Copyright 2023 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\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n const ref = (0, $lmaYr$useRef)(null);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n ref.current = fn;\n }, [\n fn\n ]);\n // @ts-ignore\n return (0, $lmaYr$useCallback)((...args)=>{\n const f = ref.current;\n return f === null || f === void 0 ? void 0 : f(...args);\n }, []);\n}\n\n\nexport {$8ae05eaa5c114e9c$export$7f54fc3180508a52 as useEffectEvent};\n//# sourceMappingURL=useEffectEvent.module.js.map\n","import {useEffectEvent as $8ae05eaa5c114e9c$export$7f54fc3180508a52} from \"./useEffectEvent.mjs\";\nimport {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useState as $fCAlL$useState, useRef as $fCAlL$useRef} from \"react\";\n\n/*\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\nfunction $1dbecbe27a04f9af$export$14d238f342723f25(defaultValue) {\n let [value, setValue] = (0, $fCAlL$useState)(defaultValue);\n let effect = (0, $fCAlL$useRef)(null);\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)(()=>{\n if (!effect.current) return;\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) nextRef();\n else setValue(newValue.value);\n });\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) nextRef();\n });\n let queue = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)((fn)=>{\n effect.current = fn(value);\n nextRef();\n });\n return [\n value,\n queue\n ];\n}\n\n\nexport {$1dbecbe27a04f9af$export$14d238f342723f25 as useValueEffect};\n//# sourceMappingURL=useValueEffect.module.js.map\n","import $670gB$react, {useContext as $670gB$useContext, useState as $670gB$useState, useMemo as $670gB$useMemo, useLayoutEffect as $670gB$useLayoutEffect, useRef as $670gB$useRef} from \"react\";\n\n/*\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 */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $b5e257d569688ac6$var$defaultContext = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\nconst $b5e257d569688ac6$var$SSRContext = /*#__PURE__*/ (0, $670gB$react).createContext($b5e257d569688ac6$var$defaultContext);\nconst $b5e257d569688ac6$var$IsSSRContext = /*#__PURE__*/ (0, $670gB$react).createContext(false);\n// This is only used in React < 18.\nfunction $b5e257d569688ac6$var$LegacySSRProvider(props) {\n let cur = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n let counter = $b5e257d569688ac6$var$useCounter(cur === $b5e257d569688ac6$var$defaultContext);\n let [isSSR, setIsSSR] = (0, $670gB$useState)(true);\n let value = (0, $670gB$useMemo)(()=>({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === $b5e257d569688ac6$var$defaultContext ? '' : `${cur.prefix}-${counter}`,\n current: 0\n }), [\n cur,\n counter\n ]);\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof document !== 'undefined') // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, $670gB$useLayoutEffect)(()=>{\n setIsSSR(false);\n }, []);\n return /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$SSRContext.Provider, {\n value: value\n }, /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$IsSSRContext.Provider, {\n value: isSSR\n }, props.children));\n}\nlet $b5e257d569688ac6$var$warnedAboutSSRProvider = false;\nfunction $b5e257d569688ac6$export$9f8ac96af4b1b2ae(props) {\n if (typeof (0, $670gB$react)['useId'] === 'function') {\n if (process.env.NODE_ENV !== 'test' && !$b5e257d569688ac6$var$warnedAboutSSRProvider) {\n console.warn('In React 18, SSRProvider is not necessary and is a noop. You can remove it from your app.');\n $b5e257d569688ac6$var$warnedAboutSSRProvider = true;\n }\n return /*#__PURE__*/ (0, $670gB$react).createElement((0, $670gB$react).Fragment, null, props.children);\n }\n return /*#__PURE__*/ (0, $670gB$react).createElement($b5e257d569688ac6$var$LegacySSRProvider, props);\n}\nlet $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $b5e257d569688ac6$var$componentIds = new WeakMap();\nfunction $b5e257d569688ac6$var$useCounter(isDisabled = false) {\n let ctx = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n let ref = (0, $670gB$useRef)(null);\n // eslint-disable-next-line rulesdir/pure-render\n if (ref.current === null && !isDisabled) {\n var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n // In strict mode, React renders components twice, and the ref will be reset to null on the second render.\n // This means our id counter will be incremented twice instead of once. This is a problem because on the\n // server, components are only rendered once and so ids generated on the server won't match the client.\n // In React 18, useId was introduced to solve this, but it is not available in older versions. So to solve this\n // we need to use some React internals to access the underlying Fiber instance, which is stable between renders.\n // This is exposed as ReactCurrentOwner in development, which is all we need since StrictMode only runs in development.\n // To ensure that we only increment the global counter once, we store the starting id for this component in\n // a weak map associated with the Fiber. On the second render, we reset the global counter to this value.\n // Since React runs the second render immediately after the first, this is safe.\n // @ts-ignore\n let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = (0, $670gB$react).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;\n if (currentOwner) {\n let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);\n if (prevComponentValue == null) // On the first render, and first call to useId, store the id and state in our weak map.\n $b5e257d569688ac6$var$componentIds.set(currentOwner, {\n id: ctx.current,\n state: currentOwner.memoizedState\n });\n else if (currentOwner.memoizedState !== prevComponentValue.state) {\n // On the second render, the memoizedState gets reset by React.\n // Reset the counter, and remove from the weak map so we don't\n // do this for subsequent useId calls.\n ctx.current = prevComponentValue.id;\n $b5e257d569688ac6$var$componentIds.delete(currentOwner);\n }\n }\n // eslint-disable-next-line rulesdir/pure-render\n ref.current = ++ctx.current;\n }\n // eslint-disable-next-line rulesdir/pure-render\n return ref.current;\n}\nfunction $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {\n let ctx = (0, $670gB$useContext)($b5e257d569688ac6$var$SSRContext);\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM) console.warn('When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.');\n let counter = $b5e257d569688ac6$var$useCounter(!!defaultId);\n let prefix = ctx === $b5e257d569688ac6$var$defaultContext && process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${ctx.prefix}`;\n return defaultId || `${prefix}-${counter}`;\n}\nfunction $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {\n let id = (0, $670gB$react).useId();\n let [didSSR] = (0, $670gB$useState)($b5e257d569688ac6$export$535bd6ca7f90a273());\n let prefix = didSSR || process.env.NODE_ENV === 'test' ? 'react-aria' : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;\n return defaultId || `${prefix}-${id}`;\n}\nconst $b5e257d569688ac6$export$619500959fc48b26 = typeof (0, $670gB$react)['useId'] === 'function' ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;\nfunction $b5e257d569688ac6$var$getSnapshot() {\n return false;\n}\nfunction $b5e257d569688ac6$var$getServerSnapshot() {\n return true;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction $b5e257d569688ac6$var$subscribe(onStoreChange) {\n // noop\n return ()=>{};\n}\nfunction $b5e257d569688ac6$export$535bd6ca7f90a273() {\n // In React 18, we can use useSyncExternalStore to detect if we're server rendering or hydrating.\n if (typeof (0, $670gB$react)['useSyncExternalStore'] === 'function') return (0, $670gB$react)['useSyncExternalStore']($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (0, $670gB$useContext)($b5e257d569688ac6$var$IsSSRContext);\n}\n\n\nexport {$b5e257d569688ac6$export$9f8ac96af4b1b2ae as SSRProvider, $b5e257d569688ac6$export$535bd6ca7f90a273 as useIsSSR, $b5e257d569688ac6$export$619500959fc48b26 as useSSRSafeId};\n//# sourceMappingURL=SSRProvider.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useValueEffect as $1dbecbe27a04f9af$export$14d238f342723f25} from \"./useValueEffect.mjs\";\nimport {useState as $eKkEp$useState, useRef as $eKkEp$useRef, useCallback as $eKkEp$useCallback, useEffect as $eKkEp$useEffect} from \"react\";\nimport {useSSRSafeId as $eKkEp$useSSRSafeId} from \"@react-aria/ssr\";\n\n/*\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\n\n\n// copied from SSRProvider.tsx to reduce exports, if needed again, consider sharing\nlet $bdb11010cef70236$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nlet $bdb11010cef70236$var$idsUpdaterMap = new Map();\nfunction $bdb11010cef70236$export$f680877a34711e37(defaultId) {\n let [value, setValue] = (0, $eKkEp$useState)(defaultId);\n let nextId = (0, $eKkEp$useRef)(null);\n let res = (0, $eKkEp$useSSRSafeId)(value);\n let updateValue = (0, $eKkEp$useCallback)((val)=>{\n nextId.current = val;\n }, []);\n if ($bdb11010cef70236$var$canUseDOM) {\n // TS not smart enough to know that `has` means the value exists\n if ($bdb11010cef70236$var$idsUpdaterMap.has(res) && !$bdb11010cef70236$var$idsUpdaterMap.get(res).includes(updateValue)) $bdb11010cef70236$var$idsUpdaterMap.set(res, [\n ...$bdb11010cef70236$var$idsUpdaterMap.get(res),\n updateValue\n ]);\n else $bdb11010cef70236$var$idsUpdaterMap.set(res, [\n updateValue\n ]);\n }\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n let r = res;\n return ()=>{\n $bdb11010cef70236$var$idsUpdaterMap.delete(r);\n };\n }, [\n res\n ]);\n // This cannot cause an infinite loop because the ref is updated first.\n // eslint-disable-next-line\n (0, $eKkEp$useEffect)(()=>{\n let newId = nextId.current;\n if (newId) {\n nextId.current = null;\n setValue(newId);\n }\n });\n return res;\n}\nfunction $bdb11010cef70236$export$cd8c9cb68f842629(idA, idB) {\n if (idA === idB) return idA;\n let setIdsA = $bdb11010cef70236$var$idsUpdaterMap.get(idA);\n if (setIdsA) {\n setIdsA.forEach((fn)=>fn(idB));\n return idB;\n }\n let setIdsB = $bdb11010cef70236$var$idsUpdaterMap.get(idB);\n if (setIdsB) {\n setIdsB.forEach((fn)=>fn(idA));\n return idA;\n }\n return idB;\n}\nfunction $bdb11010cef70236$export$b4cc09c592e8fdb8(depArray = []) {\n let id = $bdb11010cef70236$export$f680877a34711e37();\n let [resolvedId, setResolvedId] = (0, $1dbecbe27a04f9af$export$14d238f342723f25)(id);\n let updateId = (0, $eKkEp$useCallback)(()=>{\n setResolvedId(function*() {\n yield id;\n yield document.getElementById(id) ? id : undefined;\n });\n }, [\n id,\n setResolvedId\n ]);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(updateId, [\n id,\n updateId,\n ...depArray\n ]);\n return resolvedId;\n}\n\n\nexport {$bdb11010cef70236$export$f680877a34711e37 as useId, $bdb11010cef70236$export$cd8c9cb68f842629 as mergeIds, $bdb11010cef70236$export$b4cc09c592e8fdb8 as useSlotId};\n//# sourceMappingURL=useId.module.js.map\n","/*\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 * Calls all functions in the order they were chained with the same arguments.\n */ function $ff5963eb1fccf552$export$e08e3b67e392101e(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks)if (typeof callback === 'function') callback(...args);\n };\n}\n\n\nexport {$ff5963eb1fccf552$export$e08e3b67e392101e as chain};\n//# sourceMappingURL=chain.module.js.map\n","const $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n var _el_ownerDocument;\n return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n if (el && 'window' in el && el.window === el) return el;\n const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n return doc.defaultView || window;\n};\n\n\nexport {$431fbd86ca7dc216$export$b204af158042fbac as getOwnerDocument, $431fbd86ca7dc216$export$f21a1ffae260145a as getOwnerWindow};\n//# sourceMappingURL=domHelpers.module.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import {chain as $ff5963eb1fccf552$export$e08e3b67e392101e} from \"./chain.mjs\";\nimport {mergeIds as $bdb11010cef70236$export$cd8c9cb68f842629} from \"./useId.mjs\";\nimport $7jXr9$clsx from \"clsx\";\n\n/*\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\n\nfunction $3ef42575df84b30b$export$9d1611c77c2fe928(...args) {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result = {\n ...args[0]\n };\n for(let i = 1; i < args.length; i++){\n let props = args[i];\n for(let key in props){\n let a = result[key];\n let b = props[key];\n // Chain events\n if (typeof a === 'function' && typeof b === 'function' && // This is a lot faster than a regex.\n key[0] === 'o' && key[1] === 'n' && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, $ff5963eb1fccf552$export$e08e3b67e392101e)(a, b);\n else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') result[key] = (0, $7jXr9$clsx)(a, b);\n else if (key === 'id' && a && b) result.id = (0, $bdb11010cef70236$export$cd8c9cb68f842629)(a, b);\n else result[key] = b !== undefined ? b : a;\n }\n }\n return result;\n}\n\n\nexport {$3ef42575df84b30b$export$9d1611c77c2fe928 as mergeProps};\n//# sourceMappingURL=mergeProps.module.js.map\n","/*\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 */ function $5dc95899b306f630$export$c9058316764c140e(...refs) {\n if (refs.length === 1 && refs[0]) return refs[0];\n return (value)=>{\n for (let ref of refs){\n if (typeof ref === 'function') ref(value);\n else if (ref != null) ref.current = value;\n }\n };\n}\n\n\nexport {$5dc95899b306f630$export$c9058316764c140e as mergeRefs};\n//# sourceMappingURL=mergeRefs.module.js.map\n","/*\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 */ const $65484d02dcb7eb3e$var$DOMPropNames = new Set([\n 'id'\n]);\nconst $65484d02dcb7eb3e$var$labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n// See LinkDOMProps in dom.d.ts.\nconst $65484d02dcb7eb3e$var$linkPropNames = new Set([\n 'href',\n 'hrefLang',\n 'target',\n 'rel',\n 'download',\n 'ping',\n 'referrerPolicy'\n]);\nconst $65484d02dcb7eb3e$var$propRe = /^(data-.*)$/;\nfunction $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, opts = {}) {\n let { labelable: labelable, isLink: isLink, propNames: propNames } = opts;\n let filteredProps = {};\n for(const prop in props)if (Object.prototype.hasOwnProperty.call(props, prop) && ($65484d02dcb7eb3e$var$DOMPropNames.has(prop) || labelable && $65484d02dcb7eb3e$var$labelablePropNames.has(prop) || isLink && $65484d02dcb7eb3e$var$linkPropNames.has(prop) || (propNames === null || propNames === void 0 ? void 0 : propNames.has(prop)) || $65484d02dcb7eb3e$var$propRe.test(prop))) filteredProps[prop] = props[prop];\n return filteredProps;\n}\n\n\nexport {$65484d02dcb7eb3e$export$457c3d6518dd4c6f as filterDOMProps};\n//# sourceMappingURL=filterDOMProps.module.js.map\n","/*\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 */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n preventScroll: true\n });\n else {\n let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n element.focus();\n $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n try {\n let focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll () {\n $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch {\n // Ignore\n }\n }\n return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n let parent = element.parentNode;\n let scrollableElements = [];\n let rootScrollingElement = document.scrollingElement || document.documentElement;\n while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n for (let { element: element, scrollTop: scrollTop, scrollLeft: scrollLeft } of scrollableElements){\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\n\nexport {$7215afc6de606d6b$export$de79e2c695e052f3 as focusWithoutScrolling};\n//# sourceMappingURL=focusWithoutScrolling.module.js.map\n","/*\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 */ function $c87311424ea30a05$var$testUserAgent(re) {\n var _window_navigator_userAgentData;\n if (typeof window === 'undefined' || window.navigator == null) return false;\n return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n var _window_navigator_userAgentData;\n return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n let res = null;\n return ()=>{\n if (res == null) res = fn();\n return res;\n };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\nexport {$c87311424ea30a05$export$9ac100e40613ea10 as isMac, $c87311424ea30a05$export$186c6964ca17d99 as isIPhone, $c87311424ea30a05$export$7bef049ce92e4224 as isIPad, $c87311424ea30a05$export$fedb369cb70207f1 as isIOS, $c87311424ea30a05$export$e1865c3bedcd822b as isAppleDevice, $c87311424ea30a05$export$78551043582a6a98 as isWebKit, $c87311424ea30a05$export$6446a186d09e379e as isChrome, $c87311424ea30a05$export$a11b0059900ceec8 as isAndroid, $c87311424ea30a05$export$b7d78993b74f766d as isFirefox};\n//# sourceMappingURL=platform.module.js.map\n","import {focusWithoutScrolling as $7215afc6de606d6b$export$de79e2c695e052f3} from \"./focusWithoutScrolling.mjs\";\nimport {isMac as $c87311424ea30a05$export$9ac100e40613ea10, isWebKit as $c87311424ea30a05$export$78551043582a6a98, isFirefox as $c87311424ea30a05$export$b7d78993b74f766d, isIPad as $c87311424ea30a05$export$7bef049ce92e4224} from \"./platform.mjs\";\nimport $g3jFn$react, {createContext as $g3jFn$createContext, useMemo as $g3jFn$useMemo, useContext as $g3jFn$useContext} from \"react\";\n\n/*\n * Copyright 2023 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\n\nconst $ea8dcbcb9ea1b556$var$RouterContext = /*#__PURE__*/ (0, $g3jFn$createContext)({\n isNative: true,\n open: $ea8dcbcb9ea1b556$var$openSyntheticLink,\n useHref: (href)=>href\n});\nfunction $ea8dcbcb9ea1b556$export$323e4fc2fa4753fb(props) {\n let { children: children, navigate: navigate, useHref: useHref } = props;\n let ctx = (0, $g3jFn$useMemo)(()=>({\n isNative: false,\n open: (target, modifiers, href, routerOptions)=>{\n $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>{\n if ($ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers)) navigate(href, routerOptions);\n else $ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers);\n });\n },\n useHref: useHref || ((href)=>href)\n }), [\n navigate,\n useHref\n ]);\n return /*#__PURE__*/ (0, $g3jFn$react).createElement($ea8dcbcb9ea1b556$var$RouterContext.Provider, {\n value: ctx\n }, children);\n}\nfunction $ea8dcbcb9ea1b556$export$9a302a45f65d0572() {\n return (0, $g3jFn$useContext)($ea8dcbcb9ea1b556$var$RouterContext);\n}\nfunction $ea8dcbcb9ea1b556$export$efa8c9099e530235(link, modifiers) {\n // Use getAttribute here instead of link.target. Firefox will default link.target to \"_parent\" when inside an iframe.\n let target = link.getAttribute('target');\n return (!target || target === '_self') && link.origin === location.origin && !link.hasAttribute('download') && !modifiers.metaKey && // open in new tab (mac)\n !modifiers.ctrlKey && // open in new tab (windows)\n !modifiers.altKey && // download\n !modifiers.shiftKey;\n}\nfunction $ea8dcbcb9ea1b556$export$95185d699e05d4d7(target, modifiers, setOpening = true) {\n var _window_event_type, _window_event;\n let { metaKey: metaKey, ctrlKey: ctrlKey, altKey: altKey, shiftKey: shiftKey } = modifiers;\n // Firefox does not recognize keyboard events as a user action by default, and the popup blocker\n // will prevent links with target=\"_blank\" from opening. However, it does allow the event if the\n // Command/Control key is held, which opens the link in a background tab. This seems like the best we can do.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=257870 and https://bugzilla.mozilla.org/show_bug.cgi?id=746640.\n if ((0, $c87311424ea30a05$export$b7d78993b74f766d)() && ((_window_event = window.event) === null || _window_event === void 0 ? void 0 : (_window_event_type = _window_event.type) === null || _window_event_type === void 0 ? void 0 : _window_event_type.startsWith('key')) && target.target === '_blank') {\n if ((0, $c87311424ea30a05$export$9ac100e40613ea10)()) metaKey = true;\n else ctrlKey = true;\n }\n // WebKit does not support firing click events with modifier keys, but does support keyboard events.\n // https://github.com/WebKit/WebKit/blob/c03d0ac6e6db178f90923a0a63080b5ca210d25f/Source/WebCore/html/HTMLAnchorElement.cpp#L184\n let event = (0, $c87311424ea30a05$export$78551043582a6a98)() && (0, $c87311424ea30a05$export$9ac100e40613ea10)() && !(0, $c87311424ea30a05$export$7bef049ce92e4224)() && true ? new KeyboardEvent('keydown', {\n keyIdentifier: 'Enter',\n metaKey: metaKey,\n ctrlKey: ctrlKey,\n altKey: altKey,\n shiftKey: shiftKey\n }) : new MouseEvent('click', {\n metaKey: metaKey,\n ctrlKey: ctrlKey,\n altKey: altKey,\n shiftKey: shiftKey,\n bubbles: true,\n cancelable: true\n });\n $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = setOpening;\n (0, $7215afc6de606d6b$export$de79e2c695e052f3)(target);\n target.dispatchEvent(event);\n $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;\n}\n// https://github.com/parcel-bundler/parcel/issues/8724\n$ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = false;\nfunction $ea8dcbcb9ea1b556$var$getSyntheticLink(target, open) {\n if (target instanceof HTMLAnchorElement) open(target);\n else if (target.hasAttribute('data-href')) {\n let link = document.createElement('a');\n link.href = target.getAttribute('data-href');\n if (target.hasAttribute('data-target')) link.target = target.getAttribute('data-target');\n if (target.hasAttribute('data-rel')) link.rel = target.getAttribute('data-rel');\n if (target.hasAttribute('data-download')) link.download = target.getAttribute('data-download');\n if (target.hasAttribute('data-ping')) link.ping = target.getAttribute('data-ping');\n if (target.hasAttribute('data-referrer-policy')) link.referrerPolicy = target.getAttribute('data-referrer-policy');\n target.appendChild(link);\n open(link);\n target.removeChild(link);\n }\n}\nfunction $ea8dcbcb9ea1b556$var$openSyntheticLink(target, modifiers) {\n $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link)=>$ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers));\n}\nfunction $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6(props) {\n let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();\n var _props_href;\n const href = router.useHref((_props_href = props.href) !== null && _props_href !== void 0 ? _props_href : '');\n return {\n 'data-href': props.href ? href : undefined,\n 'data-target': props.target,\n 'data-rel': props.rel,\n 'data-download': props.download,\n 'data-ping': props.ping,\n 'data-referrer-policy': props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$51437d503373d223(props) {\n return {\n 'data-href': props.href,\n 'data-target': props.target,\n 'data-rel': props.rel,\n 'data-download': props.download,\n 'data-ping': props.ping,\n 'data-referrer-policy': props.referrerPolicy\n };\n}\nfunction $ea8dcbcb9ea1b556$export$7e924b3091a3bd18(props) {\n let router = $ea8dcbcb9ea1b556$export$9a302a45f65d0572();\n var _props_href;\n const href = router.useHref((_props_href = props === null || props === void 0 ? void 0 : props.href) !== null && _props_href !== void 0 ? _props_href : '');\n return {\n href: (props === null || props === void 0 ? void 0 : props.href) ? href : undefined,\n target: props === null || props === void 0 ? void 0 : props.target,\n rel: props === null || props === void 0 ? void 0 : props.rel,\n download: props === null || props === void 0 ? void 0 : props.download,\n ping: props === null || props === void 0 ? void 0 : props.ping,\n referrerPolicy: props === null || props === void 0 ? void 0 : props.referrerPolicy\n };\n}\n\n\nexport {$ea8dcbcb9ea1b556$export$323e4fc2fa4753fb as RouterProvider, $ea8dcbcb9ea1b556$export$efa8c9099e530235 as shouldClientNavigate, $ea8dcbcb9ea1b556$export$95185d699e05d4d7 as openLink, $ea8dcbcb9ea1b556$export$9a302a45f65d0572 as useRouter, $ea8dcbcb9ea1b556$export$bdc77b0c0a3a85d6 as useSyntheticLinkProps, $ea8dcbcb9ea1b556$export$51437d503373d223 as getSyntheticLinkProps, $ea8dcbcb9ea1b556$export$7e924b3091a3bd18 as useLinkProps};\n//# sourceMappingURL=openLink.module.js.map\n","/*\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 */ // We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet $bbed8b41f857bcc0$var$transitionsByElement = new Map();\n// A list of callbacks to call once there are no transitioning elements.\nlet $bbed8b41f857bcc0$var$transitionCallbacks = new Set();\nfunction $bbed8b41f857bcc0$var$setupGlobalEvents() {\n if (typeof window === 'undefined') return;\n function isTransitionEvent(event) {\n return 'propertyName' in event;\n }\n let onTransitionStart = (e)=>{\n if (!isTransitionEvent(e) || !e.target) return;\n // Add the transitioning property to the list for this element.\n let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n $bbed8b41f857bcc0$var$transitionsByElement.set(e.target, transitions);\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd, {\n once: true\n });\n }\n transitions.add(e.propertyName);\n };\n let onTransitionEnd = (e)=>{\n if (!isTransitionEvent(e) || !e.target) return;\n // Remove property from list of transitioning properties.\n let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!properties) return;\n properties.delete(e.propertyName);\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n $bbed8b41f857bcc0$var$transitionsByElement.delete(e.target);\n }\n // If no transitioning elements, call all of the queued callbacks.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {\n for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)cb();\n $bbed8b41f857bcc0$var$transitionCallbacks.clear();\n }\n };\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') $bbed8b41f857bcc0$var$setupGlobalEvents();\n else document.addEventListener('DOMContentLoaded', $bbed8b41f857bcc0$var$setupGlobalEvents);\n}\nfunction $bbed8b41f857bcc0$export$24490316f764c430(fn) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(()=>{\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) fn();\n else $bbed8b41f857bcc0$var$transitionCallbacks.add(fn);\n });\n}\n\n\nexport {$bbed8b41f857bcc0$export$24490316f764c430 as runAfterTransition};\n//# sourceMappingURL=runAfterTransition.module.js.map\n","import {useRef as $lPAwt$useRef, useCallback as $lPAwt$useCallback, useEffect as $lPAwt$useEffect} from \"react\";\n\n/*\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 */ \nfunction $03deb23ff14920c4$export$4eaf04e54aa8eed6() {\n let globalListeners = (0, $lPAwt$useRef)(new Map());\n let addGlobalListener = (0, $lPAwt$useCallback)((eventTarget, type, listener, options)=>{\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {\n type: type,\n eventTarget: eventTarget,\n fn: fn,\n options: options\n });\n eventTarget.addEventListener(type, fn, options);\n }, []);\n let removeGlobalListener = (0, $lPAwt$useCallback)((eventTarget, type, listener, options)=>{\n var _globalListeners_current_get;\n let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = (0, $lPAwt$useCallback)(()=>{\n globalListeners.current.forEach((value, key)=>{\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [\n removeGlobalListener\n ]);\n (0, $lPAwt$useEffect)(()=>{\n return removeAllGlobalListeners;\n }, [\n removeAllGlobalListeners\n ]);\n return {\n addGlobalListener: addGlobalListener,\n removeGlobalListener: removeGlobalListener,\n removeAllGlobalListeners: removeAllGlobalListeners\n };\n}\n\n\nexport {$03deb23ff14920c4$export$4eaf04e54aa8eed6 as useGlobalListeners};\n//# sourceMappingURL=useGlobalListeners.module.js.map\n","import {useId as $bdb11010cef70236$export$f680877a34711e37} from \"./useId.mjs\";\n\n/*\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 */ \nfunction $313b98861ee5dd6c$export$d6875122194c7b44(props, defaultLabel) {\n let { id: id, 'aria-label': label, 'aria-labelledby': labelledBy } = props;\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = (0, $bdb11010cef70236$export$f680877a34711e37)(id);\n if (labelledBy && label) {\n let ids = new Set([\n id,\n ...labelledBy.trim().split(/\\s+/)\n ]);\n labelledBy = [\n ...ids\n ].join(' ');\n } else if (labelledBy) labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) label = defaultLabel;\n return {\n id: id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n\n\nexport {$313b98861ee5dd6c$export$d6875122194c7b44 as useLabels};\n//# sourceMappingURL=useLabels.module.js.map\n","import {useRef as $gbmns$useRef, useMemo as $gbmns$useMemo} from \"react\";\n\n/*\n * Copyright 2021 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 */ \nfunction $df56164dff5785e2$export$4338b53315abf666(forwardedRef) {\n const objRef = (0, $gbmns$useRef)(null);\n return (0, $gbmns$useMemo)(()=>({\n get current () {\n return objRef.current;\n },\n set current (value){\n objRef.current = value;\n if (typeof forwardedRef === 'function') forwardedRef(value);\n else if (forwardedRef) forwardedRef.current = value;\n }\n }), [\n forwardedRef\n ]);\n}\n\n\nexport {$df56164dff5785e2$export$4338b53315abf666 as useObjectRef};\n//# sourceMappingURL=useObjectRef.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useRef as $azsE2$useRef} from \"react\";\n\n/*\n * Copyright 2024 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\nfunction $ca9b37712f007381$export$72ef708ab07251f1(effect, dependencies) {\n const isInitialMount = (0, $azsE2$useRef)(true);\n const lastDeps = (0, $azsE2$useRef)(null);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n isInitialMount.current = true;\n return ()=>{\n isInitialMount.current = false;\n };\n }, []);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (isInitialMount.current) isInitialMount.current = false;\n else if (!lastDeps.current || dependencies.some((dep, i)=>!Object.is(dep, lastDeps[i]))) effect();\n lastDeps.current = dependencies;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n}\n\n\nexport {$ca9b37712f007381$export$72ef708ab07251f1 as useUpdateLayoutEffect};\n//# sourceMappingURL=useUpdateLayoutEffect.module.js.map\n","import {useEffect as $Vsl8o$useEffect} from \"react\";\n\n\nfunction $9daab02d461809db$var$hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\nfunction $9daab02d461809db$export$683480f191c0e3ea(options) {\n const { ref: ref, box: box, onResize: onResize } = options;\n (0, $Vsl8o$useEffect)(()=>{\n let element = ref === null || ref === void 0 ? void 0 : ref.current;\n if (!element) return;\n if (!$9daab02d461809db$var$hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return ()=>{\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n const resizeObserverInstance = new window.ResizeObserver((entries)=>{\n if (!entries.length) return;\n onResize();\n });\n resizeObserverInstance.observe(element, {\n box: box\n });\n return ()=>{\n if (element) resizeObserverInstance.unobserve(element);\n };\n }\n }, [\n onResize,\n ref,\n box\n ]);\n}\n\n\nexport {$9daab02d461809db$export$683480f191c0e3ea as useResizeObserver};\n//# sourceMappingURL=useResizeObserver.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\n\n/*\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 */ \nfunction $e7801be82b4b2a53$export$4debdb1a3f0fa79e(context, ref) {\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return ()=>{\n if (context.ref) context.ref.current = null;\n };\n }\n });\n}\n\n\nexport {$e7801be82b4b2a53$export$4debdb1a3f0fa79e as useSyncRef};\n//# sourceMappingURL=useSyncRef.module.js.map\n","/*\n * Copyright 2024 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 */ function $cc38e7bd3fc7b213$export$2bb74740c4e19def(node, checkForOverflow) {\n if (!node) return false;\n let style = window.getComputedStyle(node);\n let isScrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n if (isScrollable && checkForOverflow) isScrollable = node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;\n return isScrollable;\n}\n\n\nexport {$cc38e7bd3fc7b213$export$2bb74740c4e19def as isScrollable};\n//# sourceMappingURL=isScrollable.module.js.map\n","import {isScrollable as $cc38e7bd3fc7b213$export$2bb74740c4e19def} from \"./isScrollable.mjs\";\n\n/*\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 */ \nfunction $62d8ded9296f3872$export$cfa2225e87938781(node, checkForOverflow) {\n let scrollableNode = node;\n if ((0, $cc38e7bd3fc7b213$export$2bb74740c4e19def)(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;\n while(scrollableNode && !(0, $cc38e7bd3fc7b213$export$2bb74740c4e19def)(scrollableNode, checkForOverflow))scrollableNode = scrollableNode.parentElement;\n return scrollableNode || document.scrollingElement || document.documentElement;\n}\n\n\nexport {$62d8ded9296f3872$export$cfa2225e87938781 as getScrollParent};\n//# sourceMappingURL=getScrollParent.module.js.map\n","import {isScrollable as $cc38e7bd3fc7b213$export$2bb74740c4e19def} from \"./isScrollable.mjs\";\n\n/*\n * Copyright 2024 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 */ \nfunction $a40c673dc9f6d9c7$export$94ed1c92c7beeb22(node, checkForOverflow) {\n const scrollParents = [];\n while(node && node !== document.documentElement){\n if ((0, $cc38e7bd3fc7b213$export$2bb74740c4e19def)(node, checkForOverflow)) scrollParents.push(node);\n node = node.parentElement;\n }\n return scrollParents;\n}\n\n\nexport {$a40c673dc9f6d9c7$export$94ed1c92c7beeb22 as getScrollParents};\n//# sourceMappingURL=getScrollParents.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useState as $hQ5Hp$useState} from \"react\";\n\n/*\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\nlet $ef06256079686ba0$var$descriptionId = 0;\nconst $ef06256079686ba0$var$descriptionNodes = new Map();\nfunction $ef06256079686ba0$export$f8aeda7b10753fa1(description) {\n let [id, setId] = (0, $hQ5Hp$useState)();\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (!description) return;\n let desc = $ef06256079686ba0$var$descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${$ef06256079686ba0$var$descriptionId++}`;\n setId(id);\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {\n refCount: 0,\n element: node\n };\n $ef06256079686ba0$var$descriptionNodes.set(description, desc);\n } else setId(desc.element.id);\n desc.refCount++;\n return ()=>{\n if (desc && --desc.refCount === 0) {\n desc.element.remove();\n $ef06256079686ba0$var$descriptionNodes.delete(description);\n }\n };\n }, [\n description\n ]);\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n\n\nexport {$ef06256079686ba0$export$f8aeda7b10753fa1 as useDescription};\n//# sourceMappingURL=useDescription.module.js.map\n","import {useEffectEvent as $8ae05eaa5c114e9c$export$7f54fc3180508a52} from \"./useEffectEvent.mjs\";\nimport {useEffect as $ceQd6$useEffect} from \"react\";\n\n/*\n * Copyright 2021 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\nfunction $e9faafb641e167db$export$90fc3a17d93f704c(ref, event, handler, options) {\n let handleEvent = (0, $8ae05eaa5c114e9c$export$7f54fc3180508a52)(handler);\n let isDisabled = handler == null;\n (0, $ceQd6$useEffect)(()=>{\n if (isDisabled || !ref.current) return;\n let element = ref.current;\n element.addEventListener(event, handleEvent, options);\n return ()=>{\n element.removeEventListener(event, handleEvent, options);\n };\n }, [\n ref,\n event,\n options,\n isDisabled,\n handleEvent\n ]);\n}\n\n\nexport {$e9faafb641e167db$export$90fc3a17d93f704c as useEvent};\n//# sourceMappingURL=useEvent.module.js.map\n","import {getScrollParents as $a40c673dc9f6d9c7$export$94ed1c92c7beeb22} from \"./getScrollParents.mjs\";\n\n/*\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 */ \nfunction $2f04cbc44ee30ce0$export$53a0910f038337bd(scrollView, element) {\n let offsetX = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, 'left');\n let offsetY = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, 'top');\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n // Account for top/left border offsetting the scroll top/Left + scroll padding\n let { borderTopWidth: borderTopWidth, borderLeftWidth: borderLeftWidth, scrollPaddingTop: scrollPaddingTop, scrollPaddingRight: scrollPaddingRight, scrollPaddingBottom: scrollPaddingBottom, scrollPaddingLeft: scrollPaddingLeft } = getComputedStyle(scrollView);\n let borderAdjustedX = x + parseInt(borderLeftWidth, 10);\n let borderAdjustedY = y + parseInt(borderTopWidth, 10);\n // Ignore end/bottom border via clientHeight/Width instead of offsetHeight/Width\n let maxX = borderAdjustedX + scrollView.clientWidth;\n let maxY = borderAdjustedY + scrollView.clientHeight;\n // Get scroll padding values as pixels - defaults to 0 if no scroll padding\n // is used.\n let scrollPaddingTopNumber = parseInt(scrollPaddingTop, 10) || 0;\n let scrollPaddingBottomNumber = parseInt(scrollPaddingBottom, 10) || 0;\n let scrollPaddingRightNumber = parseInt(scrollPaddingRight, 10) || 0;\n let scrollPaddingLeftNumber = parseInt(scrollPaddingLeft, 10) || 0;\n if (offsetX <= x + scrollPaddingLeftNumber) x = offsetX - parseInt(borderLeftWidth, 10) - scrollPaddingLeftNumber;\n else if (offsetX + width > maxX - scrollPaddingRightNumber) x += offsetX + width - maxX + scrollPaddingRightNumber;\n if (offsetY <= borderAdjustedY + scrollPaddingTopNumber) y = offsetY - parseInt(borderTopWidth, 10) - scrollPaddingTopNumber;\n else if (offsetY + height > maxY - scrollPaddingBottomNumber) y += offsetY + height - maxY + scrollPaddingBottomNumber;\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */ function $2f04cbc44ee30ce0$var$relativeOffset(ancestor, child, axis) {\n const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n let sum = 0;\n while(child.offsetParent){\n sum += child[prop];\n if (child.offsetParent === ancestor) break;\n else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent;\n }\n return sum;\n}\nfunction $2f04cbc44ee30ce0$export$c826860796309d1b(targetElement, opts) {\n if (targetElement && document.contains(targetElement)) {\n let root = document.scrollingElement || document.documentElement;\n let isScrollPrevented = window.getComputedStyle(root).overflow === 'hidden';\n // If scrolling is not currently prevented then we aren’t in a overlay nor is a overlay open, just use element.scrollIntoView to bring the element into view\n if (!isScrollPrevented) {\n var // use scrollIntoView({block: 'nearest'}) instead of .focus to check if the element is fully in view or not since .focus()\n // won't cause a scroll if the element is already focused and doesn't behave consistently when an element is partially out of view horizontally vs vertically\n _targetElement_scrollIntoView;\n let { left: originalLeft, top: originalTop } = targetElement.getBoundingClientRect();\n targetElement === null || targetElement === void 0 ? void 0 : (_targetElement_scrollIntoView = targetElement.scrollIntoView) === null || _targetElement_scrollIntoView === void 0 ? void 0 : _targetElement_scrollIntoView.call(targetElement, {\n block: 'nearest'\n });\n let { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();\n // Account for sub pixel differences from rounding\n if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {\n var _opts_containingElement_scrollIntoView, _opts_containingElement, _targetElement_scrollIntoView1;\n opts === null || opts === void 0 ? void 0 : (_opts_containingElement = opts.containingElement) === null || _opts_containingElement === void 0 ? void 0 : (_opts_containingElement_scrollIntoView = _opts_containingElement.scrollIntoView) === null || _opts_containingElement_scrollIntoView === void 0 ? void 0 : _opts_containingElement_scrollIntoView.call(_opts_containingElement, {\n block: 'center',\n inline: 'center'\n });\n (_targetElement_scrollIntoView1 = targetElement.scrollIntoView) === null || _targetElement_scrollIntoView1 === void 0 ? void 0 : _targetElement_scrollIntoView1.call(targetElement, {\n block: 'nearest'\n });\n }\n } else {\n let scrollParents = (0, $a40c673dc9f6d9c7$export$94ed1c92c7beeb22)(targetElement);\n // If scrolling is prevented, we don't want to scroll the body since it might move the overlay partially offscreen and the user can't scroll it back into view.\n for (let scrollParent of scrollParents)$2f04cbc44ee30ce0$export$53a0910f038337bd(scrollParent, targetElement);\n }\n }\n}\n\n\nexport {$2f04cbc44ee30ce0$export$53a0910f038337bd as scrollIntoView, $2f04cbc44ee30ce0$export$c826860796309d1b as scrollIntoViewport};\n//# sourceMappingURL=scrollIntoView.module.js.map\n","import {isAndroid as $c87311424ea30a05$export$a11b0059900ceec8} from \"./platform.mjs\";\n\n/*\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 */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n // JAWS/NVDA with Firefox.\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\nexport {$6a7db85432448f7f$export$60278871457622de as isVirtualClick, $6a7db85432448f7f$export$29bf1b5f2c56cf63 as isVirtualPointerEvent};\n//# sourceMappingURL=isVirtualEvent.module.js.map\n","/*\n * Copyright 2024 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 */ // Custom event names for updating the autocomplete's aria-activedecendant.\nconst $5671b20cf9b562b2$export$447a38995de2c711 = 'react-aria-clear-focus';\nconst $5671b20cf9b562b2$export$831c820ad60f9d12 = 'react-aria-focus';\nconst $5671b20cf9b562b2$export$9db568f6321ad9dc = 'react-aria-update-activedescendant';\n\n\nexport {$5671b20cf9b562b2$export$447a38995de2c711 as CLEAR_FOCUS_EVENT, $5671b20cf9b562b2$export$831c820ad60f9d12 as FOCUS_EVENT, $5671b20cf9b562b2$export$9db568f6321ad9dc as UPDATE_ACTIVEDESCENDANT};\n//# sourceMappingURL=constants.module.js.map\n","import {isMac as $c87311424ea30a05$export$9ac100e40613ea10} from \"./platform.mjs\";\n\n/*\n * Copyright 2024 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 */ \nfunction $21f1aa98acb08317$export$16792effe837dba3(e) {\n if ((0, $c87311424ea30a05$export$9ac100e40613ea10)()) return e.metaKey;\n return e.ctrlKey;\n}\n\n\nexport {$21f1aa98acb08317$export$16792effe837dba3 as isCtrlKeyPressed};\n//# sourceMappingURL=keyboard.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {flushSync as $jJMAe$flushSync} from \"react-dom\";\nimport {useState as $jJMAe$useState, useCallback as $jJMAe$useCallback} from \"react\";\n\n/*\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\n\nfunction $d3f049242431219c$export$6d3443f2c48bfc20(ref, isReady = true) {\n let [isEntering, setEntering] = (0, $jJMAe$useState)(true);\n let isAnimationReady = isEntering && isReady;\n // There are two cases for entry animations:\n // 1. CSS @keyframes. The `animation` property is set during the isEntering state, and it is removed after the animation finishes.\n // 2. CSS transitions. The initial styles are applied during the isEntering state, and removed immediately, causing the transition to occur.\n //\n // In the second case, cancel any transitions that were triggered prior to the isEntering = false state (when the transition is supposed to start).\n // This can happen when isReady starts as false (e.g. popovers prior to placement calculation).\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (isAnimationReady && ref.current && 'getAnimations' in ref.current) {\n for (let animation of ref.current.getAnimations())if (animation instanceof CSSTransition) animation.cancel();\n }\n }, [\n ref,\n isAnimationReady\n ]);\n $d3f049242431219c$var$useAnimation(ref, isAnimationReady, (0, $jJMAe$useCallback)(()=>setEntering(false), []));\n return isAnimationReady;\n}\nfunction $d3f049242431219c$export$45fda7c47f93fd48(ref, isOpen) {\n let [exitState, setExitState] = (0, $jJMAe$useState)(isOpen ? 'open' : 'closed');\n switch(exitState){\n case 'open':\n // If isOpen becomes false, set the state to exiting.\n if (!isOpen) setExitState('exiting');\n break;\n case 'closed':\n case 'exiting':\n // If we are exiting and isOpen becomes true, the animation was interrupted.\n // Reset the state to open.\n if (isOpen) setExitState('open');\n break;\n }\n let isExiting = exitState === 'exiting';\n $d3f049242431219c$var$useAnimation(ref, isExiting, (0, $jJMAe$useCallback)(()=>{\n // Set the state to closed, which will cause the element to be unmounted.\n setExitState((state)=>state === 'exiting' ? 'closed' : state);\n }, []));\n return isExiting;\n}\nfunction $d3f049242431219c$var$useAnimation(ref, isActive, onEnd) {\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (isActive && ref.current) {\n if (!('getAnimations' in ref.current)) {\n // JSDOM\n onEnd();\n return;\n }\n let animations = ref.current.getAnimations();\n if (animations.length === 0) {\n onEnd();\n return;\n }\n let canceled = false;\n Promise.all(animations.map((a)=>a.finished)).then(()=>{\n if (!canceled) (0, $jJMAe$flushSync)(()=>{\n onEnd();\n });\n }).catch(()=>{});\n return ()=>{\n canceled = true;\n };\n }\n }, [\n ref,\n isActive,\n onEnd\n ]);\n}\n\n\nexport {$d3f049242431219c$export$6d3443f2c48bfc20 as useEnterAnimation, $d3f049242431219c$export$45fda7c47f93fd48 as useExitAnimation};\n//# sourceMappingURL=animation.module.js.map\n","import {useState as $3whtM$useState, useRef as $3whtM$useRef, useEffect as $3whtM$useEffect, useCallback as $3whtM$useCallback} from \"react\";\n\n/*\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 */ \nfunction $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {\n let [stateValue, setStateValue] = (0, $3whtM$useState)(value || defaultValue);\n let isControlledRef = (0, $3whtM$useRef)(value !== undefined);\n let isControlled = value !== undefined;\n (0, $3whtM$useEffect)(()=>{\n let wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n isControlledRef.current = isControlled;\n }, [\n isControlled\n ]);\n let currentValue = isControlled ? value : stateValue;\n let setValue = (0, $3whtM$useCallback)((value, ...args)=>{\n let onChangeCaller = (value, ...onChangeArgs)=>{\n if (onChange) {\n if (!Object.is(currentValue, value)) onChange(value, ...onChangeArgs);\n }\n if (!isControlled) // If uncontrolled, mutate the currentValue local variable so that\n // calling setState multiple times with the same value only emits onChange once.\n // We do not use a ref for this because we specifically _do_ want the value to\n // reset every render, and assigning to a ref in render breaks aborted suspended renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n currentValue = value;\n };\n if (typeof value === 'function') {\n console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs)=>{\n let interceptedValue = value(isControlled ? currentValue : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) return interceptedValue;\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) setStateValue(value);\n onChangeCaller(value, ...args);\n }\n }, [\n isControlled,\n currentValue,\n onChange\n ]);\n return [\n currentValue,\n setValue\n ];\n}\n\n\nexport {$458b0a5536c1a7cf$export$40bfa8c7b0832715 as useControlledState};\n//# sourceMappingURL=useControlledState.module.js.map\n","/*\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 * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */ function $9446cca9a3875146$export$7d15b64cf5a3a4c4(value, min = -Infinity, max = Infinity) {\n let newValue = Math.min(Math.max(value, min), max);\n return newValue;\n}\nfunction $9446cca9a3875146$export$e1a7b8e69ef6c52f(value, step) {\n let roundedValue = value;\n let stepString = step.toString();\n let pointIndex = stepString.indexOf('.');\n let precision = pointIndex >= 0 ? stepString.length - pointIndex : 0;\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n roundedValue = Math.round(roundedValue * pow) / pow;\n }\n return roundedValue;\n}\nfunction $9446cca9a3875146$export$cb6e0bb50bc19463(value, min, max, step) {\n min = Number(min);\n max = Number(max);\n let remainder = (value - (isNaN(min) ? 0 : min)) % step;\n let snappedValue = $9446cca9a3875146$export$e1a7b8e69ef6c52f(Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder, step);\n if (!isNaN(min)) {\n if (snappedValue < min) snappedValue = min;\n else if (!isNaN(max) && snappedValue > max) snappedValue = min + Math.floor($9446cca9a3875146$export$e1a7b8e69ef6c52f((max - min) / step, step)) * step;\n } else if (!isNaN(max) && snappedValue > max) snappedValue = Math.floor($9446cca9a3875146$export$e1a7b8e69ef6c52f(max / step, step)) * step;\n // correct floating point behavior by rounding to step precision\n snappedValue = $9446cca9a3875146$export$e1a7b8e69ef6c52f(snappedValue, step);\n return snappedValue;\n}\nfunction $9446cca9a3875146$export$b6268554fba451f(value, digits, base = 10) {\n const pow = Math.pow(base, digits);\n return Math.round(value * pow) / pow;\n}\n\n\nexport {$9446cca9a3875146$export$7d15b64cf5a3a4c4 as clamp, $9446cca9a3875146$export$e1a7b8e69ef6c52f as roundToStepPrecision, $9446cca9a3875146$export$cb6e0bb50bc19463 as snapValueToStep, $9446cca9a3875146$export$b6268554fba451f as toFixedNumber};\n//# sourceMappingURL=number.module.js.map\n","import {useObjectRef as $iETbY$useObjectRef, mergeRefs as $iETbY$mergeRefs, mergeProps as $iETbY$mergeProps, useLayoutEffect as $iETbY$useLayoutEffect} from \"@react-aria/utils\";\nimport $iETbY$react, {useMemo as $iETbY$useMemo, useContext as $iETbY$useContext, useState as $iETbY$useState, useRef as $iETbY$useRef, useCallback as $iETbY$useCallback} from \"react\";\n\n/*\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\nconst $64fa3d84918910a7$export$c62b8e45d58ddad9 = Symbol('default');\nfunction $64fa3d84918910a7$export$2881499e37b75b9a({ values: values, children: children }) {\n for (let [Context, value] of values)// @ts-ignore\n children = /*#__PURE__*/ (0, $iETbY$react).createElement(Context.Provider, {\n value: value\n }, children);\n return children;\n}\nfunction $64fa3d84918910a7$export$4d86445c2cf5e3(props) {\n let { className: className, style: style, children: children, defaultClassName: defaultClassName, defaultChildren: defaultChildren, defaultStyle: defaultStyle, values: values } = props;\n return (0, $iETbY$useMemo)(()=>{\n let computedClassName;\n let computedStyle;\n let computedChildren;\n if (typeof className === 'function') computedClassName = className({\n ...values,\n defaultClassName: defaultClassName\n });\n else computedClassName = className;\n if (typeof style === 'function') computedStyle = style({\n ...values,\n defaultStyle: defaultStyle || {}\n });\n else computedStyle = style;\n if (typeof children === 'function') computedChildren = children({\n ...values,\n defaultChildren: defaultChildren\n });\n else if (children == null) computedChildren = defaultChildren;\n else computedChildren = children;\n return {\n className: computedClassName !== null && computedClassName !== void 0 ? computedClassName : defaultClassName,\n style: computedStyle || defaultStyle ? {\n ...defaultStyle,\n ...computedStyle\n } : undefined,\n children: computedChildren !== null && computedChildren !== void 0 ? computedChildren : defaultChildren,\n 'data-rac': ''\n };\n }, [\n className,\n style,\n children,\n defaultClassName,\n defaultChildren,\n defaultStyle,\n values\n ]);\n}\nfunction $64fa3d84918910a7$export$c245e6201fed2f75(// https://stackoverflow.com/questions/60898079/typescript-type-t-or-function-t-usage\nvalue, wrap) {\n return (renderProps)=>wrap(typeof value === 'function' ? value(renderProps) : value, renderProps);\n}\nfunction $64fa3d84918910a7$export$fabf2dc03a41866e(context, slot) {\n let ctx = (0, $iETbY$useContext)(context);\n if (slot === null) // An explicit `null` slot means don't use context.\n return null;\n if (ctx && typeof ctx === 'object' && 'slots' in ctx && ctx.slots) {\n let availableSlots = new Intl.ListFormat().format(Object.keys(ctx.slots).map((p)=>`\"${p}\"`));\n if (!slot && !ctx.slots[$64fa3d84918910a7$export$c62b8e45d58ddad9]) throw new Error(`A slot prop is required. Valid slot names are ${availableSlots}.`);\n let slotKey = slot || $64fa3d84918910a7$export$c62b8e45d58ddad9;\n if (!ctx.slots[slotKey]) // @ts-ignore\n throw new Error(`Invalid slot \"${slot}\". Valid slot names are ${availableSlots}.`);\n return ctx.slots[slotKey];\n }\n // @ts-ignore\n return ctx;\n}\nfunction $64fa3d84918910a7$export$29f1550f4b0d4415(props, ref, context) {\n let ctx = $64fa3d84918910a7$export$fabf2dc03a41866e(context, props.slot) || {};\n // @ts-ignore - TS says \"Type 'unique symbol' cannot be used as an index type.\" but not sure why.\n let { ref: contextRef, ...contextProps } = ctx;\n let mergedRef = (0, $iETbY$useObjectRef)((0, $iETbY$useMemo)(()=>(0, $iETbY$mergeRefs)(ref, contextRef), [\n ref,\n contextRef\n ]));\n let mergedProps = (0, $iETbY$mergeProps)(contextProps, props);\n // mergeProps does not merge `style`. Adding this there might be a breaking change.\n if ('style' in contextProps && contextProps.style && 'style' in props && props.style) {\n if (typeof contextProps.style === 'function' || typeof props.style === 'function') // @ts-ignore\n mergedProps.style = (renderProps)=>{\n let contextStyle = typeof contextProps.style === 'function' ? contextProps.style(renderProps) : contextProps.style;\n let defaultStyle = {\n ...renderProps.defaultStyle,\n ...contextStyle\n };\n let style = typeof props.style === 'function' ? props.style({\n ...renderProps,\n defaultStyle: defaultStyle\n }) : props.style;\n return {\n ...defaultStyle,\n ...style\n };\n };\n else // @ts-ignore\n mergedProps.style = {\n ...contextProps.style,\n ...props.style\n };\n }\n return [\n mergedProps,\n mergedRef\n ];\n}\nfunction $64fa3d84918910a7$export$9d4c57ee4c6ffdd8() {\n // Assume we do have the slot in the initial render.\n let [hasSlot, setHasSlot] = (0, $iETbY$useState)(true);\n let hasRun = (0, $iETbY$useRef)(false);\n // A callback ref which will run when the slotted element mounts.\n // This should happen before the useLayoutEffect below.\n let ref = (0, $iETbY$useCallback)((el)=>{\n hasRun.current = true;\n setHasSlot(!!el);\n }, []);\n // If the callback hasn't been called, then reset to false.\n (0, $iETbY$useLayoutEffect)(()=>{\n if (!hasRun.current) setHasSlot(false);\n }, []);\n return [\n ref,\n hasSlot\n ];\n}\nfunction $64fa3d84918910a7$export$ef03459518577ad4(props) {\n const prefix = /^(data-.*)$/;\n let filteredProps = {};\n for(const prop in props)if (!prefix.test(prop)) filteredProps[prop] = props[prop];\n return filteredProps;\n}\n\n\nexport {$64fa3d84918910a7$export$c62b8e45d58ddad9 as DEFAULT_SLOT, $64fa3d84918910a7$export$2881499e37b75b9a as Provider, $64fa3d84918910a7$export$4d86445c2cf5e3 as useRenderProps, $64fa3d84918910a7$export$c245e6201fed2f75 as composeRenderProps, $64fa3d84918910a7$export$fabf2dc03a41866e as useSlottedContext, $64fa3d84918910a7$export$29f1550f4b0d4415 as useContextProps, $64fa3d84918910a7$export$9d4c57ee4c6ffdd8 as useSlot, $64fa3d84918910a7$export$ef03459518577ad4 as removeDataAttributes};\n//# sourceMappingURL=utils.module.js.map\n","/*\n * Copyright 2024 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 */ class $23b9f4fcf0fe224b$export$d68d59712b04d9d1 {\n get childNodes() {\n throw new Error('childNodes is not supported');\n }\n clone() {\n let node = new $23b9f4fcf0fe224b$export$d68d59712b04d9d1(this.type, this.key);\n node.value = this.value;\n node.level = this.level;\n node.hasChildNodes = this.hasChildNodes;\n node.rendered = this.rendered;\n node.textValue = this.textValue;\n node['aria-label'] = this['aria-label'];\n node.index = this.index;\n node.parentKey = this.parentKey;\n node.prevKey = this.prevKey;\n node.nextKey = this.nextKey;\n node.firstChildKey = this.firstChildKey;\n node.lastChildKey = this.lastChildKey;\n node.props = this.props;\n node.render = this.render;\n return node;\n }\n constructor(type, key){\n this.value = null;\n this.level = 0;\n this.hasChildNodes = false;\n this.rendered = null;\n this.textValue = '';\n this['aria-label'] = undefined;\n this.index = 0;\n this.parentKey = null;\n this.prevKey = null;\n this.nextKey = null;\n this.firstChildKey = null;\n this.lastChildKey = null;\n this.props = {};\n this.type = type;\n this.key = key;\n }\n}\nclass $23b9f4fcf0fe224b$export$408d25a4e12db025 {\n get size() {\n return this.keyMap.size;\n }\n getKeys() {\n return this.keyMap.keys();\n }\n *[Symbol.iterator]() {\n let node = this.firstKey != null ? this.keyMap.get(this.firstKey) : undefined;\n while(node){\n yield node;\n node = node.nextKey != null ? this.keyMap.get(node.nextKey) : undefined;\n }\n }\n getChildren(key) {\n let keyMap = this.keyMap;\n return {\n *[Symbol.iterator] () {\n let parent = keyMap.get(key);\n let node = (parent === null || parent === void 0 ? void 0 : parent.firstChildKey) != null ? keyMap.get(parent.firstChildKey) : null;\n while(node){\n yield node;\n node = node.nextKey != null ? keyMap.get(node.nextKey) : undefined;\n }\n }\n };\n }\n getKeyBefore(key) {\n let node = this.keyMap.get(key);\n if (!node) return null;\n if (node.prevKey != null) {\n node = this.keyMap.get(node.prevKey);\n while(node && node.type !== 'item' && node.lastChildKey != null)node = this.keyMap.get(node.lastChildKey);\n var _node_key;\n return (_node_key = node === null || node === void 0 ? void 0 : node.key) !== null && _node_key !== void 0 ? _node_key : null;\n }\n return node.parentKey;\n }\n getKeyAfter(key) {\n let node = this.keyMap.get(key);\n if (!node) return null;\n if (node.type !== 'item' && node.firstChildKey != null) return node.firstChildKey;\n while(node){\n if (node.nextKey != null) return node.nextKey;\n if (node.parentKey != null) node = this.keyMap.get(node.parentKey);\n else return null;\n }\n return null;\n }\n getFirstKey() {\n return this.firstKey;\n }\n getLastKey() {\n let node = this.lastKey != null ? this.keyMap.get(this.lastKey) : null;\n while((node === null || node === void 0 ? void 0 : node.lastChildKey) != null)node = this.keyMap.get(node.lastChildKey);\n var _node_key;\n return (_node_key = node === null || node === void 0 ? void 0 : node.key) !== null && _node_key !== void 0 ? _node_key : null;\n }\n getItem(key) {\n var _this_keyMap_get;\n return (_this_keyMap_get = this.keyMap.get(key)) !== null && _this_keyMap_get !== void 0 ? _this_keyMap_get : null;\n }\n at() {\n throw new Error('Not implemented');\n }\n clone() {\n // We need to clone using this.constructor so that subclasses have the right prototype.\n // TypeScript isn't happy about this yet.\n // https://github.com/microsoft/TypeScript/issues/3841\n let Constructor = this.constructor;\n let collection = new Constructor();\n collection.keyMap = new Map(this.keyMap);\n collection.firstKey = this.firstKey;\n collection.lastKey = this.lastKey;\n return collection;\n }\n addNode(node) {\n if (this.frozen) throw new Error('Cannot add a node to a frozen collection');\n this.keyMap.set(node.key, node);\n }\n removeNode(key) {\n if (this.frozen) throw new Error('Cannot remove a node to a frozen collection');\n this.keyMap.delete(key);\n }\n commit(firstKey, lastKey, isSSR = false) {\n if (this.frozen) throw new Error('Cannot commit a frozen collection');\n this.firstKey = firstKey;\n this.lastKey = lastKey;\n this.frozen = !isSSR;\n }\n // TODO: this is pretty specific to menu, will need to check if it is generic enough\n // Will need to handle varying levels I assume but will revisit after I get searchable menu working for base menu\n // TODO: an alternative is to simply walk the collection and add all item nodes that match the filter and any sections/separators we encounter\n // to an array, then walk that new array and fix all the next/Prev keys while adding them to the new collection\n filter(filterFn) {\n let newCollection = new $23b9f4fcf0fe224b$export$408d25a4e12db025();\n // This tracks the absolute last node we've visited in the collection when filtering, used for setting up the filteredCollection's lastKey and\n // for updating the next/prevKey for every non-filtered node.\n let lastNode = null;\n for (let node of this){\n if (node.type === 'section' && node.hasChildNodes) {\n let clonedSection = node.clone();\n let lastChildInSection = null;\n for (let child of this.getChildren(node.key))if (filterFn(child.textValue) || child.type === 'header') {\n let clonedChild = child.clone();\n // eslint-disable-next-line max-depth\n if (lastChildInSection == null) clonedSection.firstChildKey = clonedChild.key;\n // eslint-disable-next-line max-depth\n if (newCollection.firstKey == null) newCollection.firstKey = clonedSection.key;\n // eslint-disable-next-line max-depth\n if (lastChildInSection && lastChildInSection.parentKey === clonedChild.parentKey) {\n lastChildInSection.nextKey = clonedChild.key;\n clonedChild.prevKey = lastChildInSection.key;\n } else clonedChild.prevKey = null;\n clonedChild.nextKey = null;\n newCollection.addNode(clonedChild);\n lastChildInSection = clonedChild;\n }\n // Add newly filtered section to collection if it has any valid child nodes, otherwise remove it and its header if any\n if (lastChildInSection) {\n if (lastChildInSection.type !== 'header') {\n clonedSection.lastChildKey = lastChildInSection.key;\n // If the old prev section was filtered out, will need to attach to whatever came before\n // eslint-disable-next-line max-depth\n if (lastNode == null) clonedSection.prevKey = null;\n else if (lastNode.type === 'section' || lastNode.type === 'separator') {\n lastNode.nextKey = clonedSection.key;\n clonedSection.prevKey = lastNode.key;\n }\n clonedSection.nextKey = null;\n lastNode = clonedSection;\n newCollection.addNode(clonedSection);\n } else {\n if (newCollection.firstKey === clonedSection.key) newCollection.firstKey = null;\n newCollection.removeNode(lastChildInSection.key);\n }\n }\n } else if (node.type === 'separator') {\n // will need to check if previous section key exists, if it does then we add the separator to the collection.\n // After the full collection is created we'll need to remove it it is the last node in the section (aka no following section after the separator)\n let clonedSeparator = node.clone();\n clonedSeparator.nextKey = null;\n if ((lastNode === null || lastNode === void 0 ? void 0 : lastNode.type) === 'section') {\n lastNode.nextKey = clonedSeparator.key;\n clonedSeparator.prevKey = lastNode.key;\n lastNode = clonedSeparator;\n newCollection.addNode(clonedSeparator);\n }\n } else if (filterFn(node.textValue)) {\n let clonedNode = node.clone();\n if (newCollection.firstKey == null) newCollection.firstKey = clonedNode.key;\n if (lastNode != null && lastNode.type !== 'section' && lastNode.type !== 'separator' && lastNode.parentKey === clonedNode.parentKey) {\n lastNode.nextKey = clonedNode.key;\n clonedNode.prevKey = lastNode.key;\n } else clonedNode.prevKey = null;\n clonedNode.nextKey = null;\n newCollection.addNode(clonedNode);\n lastNode = clonedNode;\n }\n }\n if ((lastNode === null || lastNode === void 0 ? void 0 : lastNode.type) === 'separator' && lastNode.nextKey === null) {\n let lastSection;\n if (lastNode.prevKey != null) {\n lastSection = newCollection.getItem(lastNode.prevKey);\n lastSection.nextKey = null;\n }\n newCollection.removeNode(lastNode.key);\n lastNode = lastSection;\n }\n newCollection.lastKey = (lastNode === null || lastNode === void 0 ? void 0 : lastNode.key) || null;\n return newCollection;\n }\n constructor(){\n this.keyMap = new Map();\n this.firstKey = null;\n this.lastKey = null;\n this.frozen = false;\n }\n}\n\n\nexport {$23b9f4fcf0fe224b$export$d68d59712b04d9d1 as CollectionNode, $23b9f4fcf0fe224b$export$408d25a4e12db025 as BaseCollection};\n//# sourceMappingURL=BaseCollection.module.js.map\n","import {CollectionNode as $23b9f4fcf0fe224b$export$d68d59712b04d9d1} from \"./BaseCollection.mjs\";\n\n/*\n * Copyright 2024 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 */ \nclass $681cc3c98f569e39$export$410b0c854570d131 {\n *[Symbol.iterator]() {\n let node = this.firstChild;\n while(node){\n yield node;\n node = node.nextSibling;\n }\n }\n get firstChild() {\n return this._firstChild;\n }\n set firstChild(firstChild) {\n this._firstChild = firstChild;\n this.ownerDocument.markDirty(this);\n }\n get lastChild() {\n return this._lastChild;\n }\n set lastChild(lastChild) {\n this._lastChild = lastChild;\n this.ownerDocument.markDirty(this);\n }\n get previousSibling() {\n return this._previousSibling;\n }\n set previousSibling(previousSibling) {\n this._previousSibling = previousSibling;\n this.ownerDocument.markDirty(this);\n }\n get nextSibling() {\n return this._nextSibling;\n }\n set nextSibling(nextSibling) {\n this._nextSibling = nextSibling;\n this.ownerDocument.markDirty(this);\n }\n get parentNode() {\n return this._parentNode;\n }\n set parentNode(parentNode) {\n this._parentNode = parentNode;\n this.ownerDocument.markDirty(this);\n }\n get isConnected() {\n var _this_parentNode;\n return ((_this_parentNode = this.parentNode) === null || _this_parentNode === void 0 ? void 0 : _this_parentNode.isConnected) || false;\n }\n appendChild(child) {\n this.ownerDocument.startTransaction();\n if (child.parentNode) child.parentNode.removeChild(child);\n if (this.firstChild == null) this.firstChild = child;\n if (this.lastChild) {\n this.lastChild.nextSibling = child;\n child.index = this.lastChild.index + 1;\n child.previousSibling = this.lastChild;\n } else {\n child.previousSibling = null;\n child.index = 0;\n }\n child.parentNode = this;\n child.nextSibling = null;\n this.lastChild = child;\n this.ownerDocument.markDirty(this);\n if (child.hasSetProps) // Only add the node to the collection if we already received props for it.\n // Otherwise wait until then so we have the correct id for the node.\n this.ownerDocument.addNode(child);\n this.ownerDocument.endTransaction();\n this.ownerDocument.queueUpdate();\n }\n insertBefore(newNode, referenceNode) {\n if (referenceNode == null) return this.appendChild(newNode);\n this.ownerDocument.startTransaction();\n if (newNode.parentNode) newNode.parentNode.removeChild(newNode);\n newNode.nextSibling = referenceNode;\n newNode.previousSibling = referenceNode.previousSibling;\n newNode.index = referenceNode.index;\n if (this.firstChild === referenceNode) this.firstChild = newNode;\n else if (referenceNode.previousSibling) referenceNode.previousSibling.nextSibling = newNode;\n referenceNode.previousSibling = newNode;\n newNode.parentNode = referenceNode.parentNode;\n let node = referenceNode;\n while(node){\n node.index++;\n node = node.nextSibling;\n }\n if (newNode.hasSetProps) this.ownerDocument.addNode(newNode);\n this.ownerDocument.endTransaction();\n this.ownerDocument.queueUpdate();\n }\n removeChild(child) {\n if (child.parentNode !== this || !this.ownerDocument.isMounted) return;\n this.ownerDocument.startTransaction();\n let node = child.nextSibling;\n while(node){\n node.index--;\n node = node.nextSibling;\n }\n if (child.nextSibling) child.nextSibling.previousSibling = child.previousSibling;\n if (child.previousSibling) child.previousSibling.nextSibling = child.nextSibling;\n if (this.firstChild === child) this.firstChild = child.nextSibling;\n if (this.lastChild === child) this.lastChild = child.previousSibling;\n child.parentNode = null;\n child.nextSibling = null;\n child.previousSibling = null;\n child.index = 0;\n this.ownerDocument.removeNode(child);\n this.ownerDocument.endTransaction();\n this.ownerDocument.queueUpdate();\n }\n addEventListener() {}\n removeEventListener() {}\n constructor(ownerDocument){\n this._firstChild = null;\n this._lastChild = null;\n this._previousSibling = null;\n this._nextSibling = null;\n this._parentNode = null;\n this.ownerDocument = ownerDocument;\n }\n}\nclass $681cc3c98f569e39$export$dc064fe9e59310fd extends $681cc3c98f569e39$export$410b0c854570d131 {\n get index() {\n return this._index;\n }\n set index(index) {\n this._index = index;\n this.ownerDocument.markDirty(this);\n }\n get level() {\n if (this.parentNode instanceof $681cc3c98f569e39$export$dc064fe9e59310fd) return this.parentNode.level + (this.node.type === 'item' ? 1 : 0);\n return 0;\n }\n updateNode() {\n var _this_previousSibling, _this_nextSibling, _this_firstChild, _this_lastChild;\n let node = this.ownerDocument.getMutableNode(this);\n node.index = this.index;\n node.level = this.level;\n node.parentKey = this.parentNode instanceof $681cc3c98f569e39$export$dc064fe9e59310fd ? this.parentNode.node.key : null;\n var _this_previousSibling_node_key;\n node.prevKey = (_this_previousSibling_node_key = (_this_previousSibling = this.previousSibling) === null || _this_previousSibling === void 0 ? void 0 : _this_previousSibling.node.key) !== null && _this_previousSibling_node_key !== void 0 ? _this_previousSibling_node_key : null;\n var _this_nextSibling_node_key;\n node.nextKey = (_this_nextSibling_node_key = (_this_nextSibling = this.nextSibling) === null || _this_nextSibling === void 0 ? void 0 : _this_nextSibling.node.key) !== null && _this_nextSibling_node_key !== void 0 ? _this_nextSibling_node_key : null;\n node.hasChildNodes = !!this.firstChild;\n var _this_firstChild_node_key;\n node.firstChildKey = (_this_firstChild_node_key = (_this_firstChild = this.firstChild) === null || _this_firstChild === void 0 ? void 0 : _this_firstChild.node.key) !== null && _this_firstChild_node_key !== void 0 ? _this_firstChild_node_key : null;\n var _this_lastChild_node_key;\n node.lastChildKey = (_this_lastChild_node_key = (_this_lastChild = this.lastChild) === null || _this_lastChild === void 0 ? void 0 : _this_lastChild.node.key) !== null && _this_lastChild_node_key !== void 0 ? _this_lastChild_node_key : null;\n }\n setProps(obj, ref, rendered, render) {\n let node = this.ownerDocument.getMutableNode(this);\n let { value: value, textValue: textValue, id: id, ...props } = obj;\n props.ref = ref;\n node.props = props;\n node.rendered = rendered;\n node.render = render;\n node.value = value;\n node.textValue = textValue || (typeof props.children === 'string' ? props.children : '') || obj['aria-label'] || '';\n if (id != null && id !== node.key) {\n if (this.hasSetProps) throw new Error('Cannot change the id of an item');\n node.key = id;\n }\n // If this is the first time props have been set, end the transaction started in the constructor\n // so this node can be emitted.\n if (!this.hasSetProps) {\n this.ownerDocument.addNode(this);\n this.ownerDocument.endTransaction();\n this.hasSetProps = true;\n }\n this.ownerDocument.queueUpdate();\n }\n get style() {\n return {};\n }\n hasAttribute() {}\n setAttribute() {}\n setAttributeNS() {}\n removeAttribute() {}\n constructor(type, ownerDocument){\n super(ownerDocument), this.nodeType = 8 // COMMENT_NODE (we'd use ELEMENT_NODE but React DevTools will fail to get its dimensions)\n , this._index = 0, this.hasSetProps = false;\n this.node = new (0, $23b9f4fcf0fe224b$export$d68d59712b04d9d1)(type, `react-aria-${++ownerDocument.nodeId}`);\n // Start a transaction so that no updates are emitted from the collection\n // until the props for this node are set. We don't know the real id for the\n // node until then, so we need to avoid emitting collections in an inconsistent state.\n this.ownerDocument.startTransaction();\n }\n}\nclass $681cc3c98f569e39$export$b34a105447964f9f extends $681cc3c98f569e39$export$410b0c854570d131 {\n get isConnected() {\n return this.isMounted;\n }\n createElement(type) {\n return new $681cc3c98f569e39$export$dc064fe9e59310fd(type, this);\n }\n /**\n * Lazily gets a mutable instance of a Node. If the node has already\n * been cloned during this update cycle, it just returns the existing one.\n */ getMutableNode(element) {\n let node = element.node;\n if (!this.mutatedNodes.has(element)) {\n node = element.node.clone();\n this.mutatedNodes.add(element);\n element.node = node;\n }\n this.markDirty(element);\n return node;\n }\n getMutableCollection() {\n if (!this.isSSR && !this.collectionMutated) {\n this.collection = this.collection.clone();\n this.collectionMutated = true;\n }\n return this.collection;\n }\n markDirty(node) {\n this.dirtyNodes.add(node);\n }\n startTransaction() {\n this.transactionCount++;\n }\n endTransaction() {\n this.transactionCount--;\n }\n addNode(element) {\n let collection = this.getMutableCollection();\n if (!collection.getItem(element.node.key)) {\n collection.addNode(element.node);\n for (let child of element)this.addNode(child);\n }\n this.markDirty(element);\n }\n removeNode(node) {\n for (let child of node)this.removeNode(child);\n let collection = this.getMutableCollection();\n collection.removeNode(node.node.key);\n this.markDirty(node);\n }\n /** Finalizes the collection update, updating all nodes and freezing the collection. */ getCollection() {\n if (this.transactionCount > 0) return this.collection;\n this.updateCollection();\n return this.collection;\n }\n updateCollection() {\n for (let element of this.dirtyNodes)if (element instanceof $681cc3c98f569e39$export$dc064fe9e59310fd && element.isConnected) element.updateNode();\n this.dirtyNodes.clear();\n if (this.mutatedNodes.size || this.collectionMutated) {\n var _this_firstChild, _this_lastChild;\n let collection = this.getMutableCollection();\n for (let element of this.mutatedNodes)if (element.isConnected) collection.addNode(element.node);\n var _this_firstChild_node_key, _this_lastChild_node_key;\n collection.commit((_this_firstChild_node_key = (_this_firstChild = this.firstChild) === null || _this_firstChild === void 0 ? void 0 : _this_firstChild.node.key) !== null && _this_firstChild_node_key !== void 0 ? _this_firstChild_node_key : null, (_this_lastChild_node_key = (_this_lastChild = this.lastChild) === null || _this_lastChild === void 0 ? void 0 : _this_lastChild.node.key) !== null && _this_lastChild_node_key !== void 0 ? _this_lastChild_node_key : null, this.isSSR);\n this.mutatedNodes.clear();\n }\n this.collectionMutated = false;\n }\n queueUpdate() {\n // Don't emit any updates if there is a transaction in progress.\n // queueUpdate should be called again after the transaction.\n if (this.dirtyNodes.size === 0 || this.transactionCount > 0) return;\n for (let fn of this.subscriptions)fn();\n }\n subscribe(fn) {\n this.subscriptions.add(fn);\n return ()=>this.subscriptions.delete(fn);\n }\n resetAfterSSR() {\n if (this.isSSR) {\n this.isSSR = false;\n this.firstChild = null;\n this.lastChild = null;\n this.nodeId = 0;\n }\n }\n constructor(collection){\n // @ts-ignore\n super(null), this.nodeType = 11 // DOCUMENT_FRAGMENT_NODE\n , this.ownerDocument = this, this.dirtyNodes = new Set(), this.isSSR = false, this.nodeId = 0, this.nodesByProps = new WeakMap(), this.isMounted = true, this.mutatedNodes = new Set(), this.subscriptions = new Set(), this.transactionCount = 0;\n this.collection = collection;\n this.collectionMutated = true;\n }\n}\n\n\nexport {$681cc3c98f569e39$export$410b0c854570d131 as BaseNode, $681cc3c98f569e39$export$dc064fe9e59310fd as ElementNode, $681cc3c98f569e39$export$b34a105447964f9f as Document};\n//# sourceMappingURL=Document.module.js.map\n","import {useMemo as $luMFQ$useMemo, cloneElement as $luMFQ$cloneElement} from \"react\";\n\n/*\n * Copyright 2024 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 */ \nfunction $e948873055cbafe4$export$727c8fc270210f13(props) {\n let { children: children, items: items, idScope: idScope, addIdAndValue: addIdAndValue, dependencies: dependencies = [] } = props;\n // Invalidate the cache whenever the parent value changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let cache = (0, $luMFQ$useMemo)(()=>new WeakMap(), dependencies);\n return (0, $luMFQ$useMemo)(()=>{\n if (items && typeof children === 'function') {\n let res = [];\n for (let item of items){\n let rendered = cache.get(item);\n if (!rendered) {\n rendered = children(item);\n var _rendered_props_id, _ref;\n // @ts-ignore\n let key = (_ref = (_rendered_props_id = rendered.props.id) !== null && _rendered_props_id !== void 0 ? _rendered_props_id : item.key) !== null && _ref !== void 0 ? _ref : item.id;\n if (key == null) throw new Error('Could not determine key for item');\n if (idScope) key = idScope + ':' + key;\n // Note: only works if wrapped Item passes through id...\n rendered = (0, $luMFQ$cloneElement)(rendered, addIdAndValue ? {\n key: key,\n id: key,\n value: item\n } : {\n key: key\n });\n cache.set(item, rendered);\n }\n res.push(rendered);\n }\n return res;\n } else if (typeof children !== 'function') return children;\n }, [\n children,\n items,\n cache,\n idScope,\n addIdAndValue\n ]);\n}\n\n\nexport {$e948873055cbafe4$export$727c8fc270210f13 as useCachedChildren};\n//# sourceMappingURL=useCachedChildren.module.js.map\n","import {createPortal as $8SdCi$createPortal} from \"react-dom\";\nimport $8SdCi$react, {createContext as $8SdCi$createContext, useContext as $8SdCi$useContext, forwardRef as $8SdCi$forwardRef} from \"react\";\nimport {useIsSSR as $8SdCi$useIsSSR} from \"@react-aria/ssr\";\n\n/*\n * Copyright 2024 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\n\n// React doesn't understand the <template> element, which doesn't have children like a normal element.\n// It will throw an error during hydration when it expects the firstChild to contain content rendered\n// on the server, when in reality, the browser will have placed this inside the `content` document fragment.\n// This monkey patches the firstChild property for our special hidden template elements to work around this error.\n// See https://github.com/facebook/react/issues/19932\nif (typeof HTMLTemplateElement !== 'undefined') {\n const getFirstChild = Object.getOwnPropertyDescriptor(Node.prototype, 'firstChild').get;\n Object.defineProperty(HTMLTemplateElement.prototype, 'firstChild', {\n configurable: true,\n enumerable: true,\n get: function() {\n if (this.dataset.reactAriaHidden) return this.content.firstChild;\n else return getFirstChild.call(this);\n }\n });\n}\nconst $f39a9eba43920ace$export$94b6d0abf7d33e8c = /*#__PURE__*/ (0, $8SdCi$createContext)(false);\n// Portal to nowhere\nconst $f39a9eba43920ace$var$hiddenFragment = typeof DocumentFragment !== 'undefined' ? new DocumentFragment() : null;\nfunction $f39a9eba43920ace$export$8dc98ba7eadeaa56(props) {\n let isHidden = (0, $8SdCi$useContext)($f39a9eba43920ace$export$94b6d0abf7d33e8c);\n let isSSR = (0, $8SdCi$useIsSSR)();\n if (isHidden) // Don't hide again if we are already hidden.\n return /*#__PURE__*/ (0, $8SdCi$react).createElement((0, $8SdCi$react).Fragment, null, props.children);\n let children = /*#__PURE__*/ (0, $8SdCi$react).createElement($f39a9eba43920ace$export$94b6d0abf7d33e8c.Provider, {\n value: true\n }, props.children);\n // In SSR, portals are not supported by React. Instead, render into a <template>\n // element, which the browser will never display to the user. In addition, the\n // content is not part of the DOM tree, so it won't affect ids or other accessibility attributes.\n return isSSR ? /*#__PURE__*/ (0, $8SdCi$react).createElement(\"template\", {\n \"data-react-aria-hidden\": true\n }, children) : /*#__PURE__*/ (0, $8SdCi$createPortal)(children, $f39a9eba43920ace$var$hiddenFragment);\n}\nfunction $f39a9eba43920ace$export$86427a43e3e48ebb(fn) {\n let Wrapper = (props, ref)=>{\n let isHidden = (0, $8SdCi$useContext)($f39a9eba43920ace$export$94b6d0abf7d33e8c);\n if (isHidden) return null;\n return fn(props, ref);\n };\n // @ts-ignore - for react dev tools\n Wrapper.displayName = fn.displayName || fn.name;\n return (0, $8SdCi$forwardRef)(Wrapper);\n}\nfunction $f39a9eba43920ace$export$b5d7cc18bb8d2b59() {\n return (0, $8SdCi$useContext)($f39a9eba43920ace$export$94b6d0abf7d33e8c);\n}\n\n\nexport {$f39a9eba43920ace$export$94b6d0abf7d33e8c as HiddenContext, $f39a9eba43920ace$export$8dc98ba7eadeaa56 as Hidden, $f39a9eba43920ace$export$86427a43e3e48ebb as createHideableComponent, $f39a9eba43920ace$export$b5d7cc18bb8d2b59 as useIsHidden};\n//# sourceMappingURL=Hidden.module.js.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","/**\n * @license React\n * use-sync-external-store-shim.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n function useSyncExternalStore$2(subscribe, getSnapshot) {\n didWarnOld18Alpha ||\n void 0 === React.startTransition ||\n ((didWarnOld18Alpha = !0),\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"\n ));\n var value = getSnapshot();\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n objectIs(value, cachedValue) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n }\n cachedValue = useState({\n inst: { value: value, getSnapshot: getSnapshot }\n });\n var inst = cachedValue[0].inst,\n forceUpdate = cachedValue[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n }\n function checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n }\n function useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue,\n didWarnOld18Alpha = !1,\n didWarnUncachedGetSnapshot = !1,\n shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\n exports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import {BaseCollection as $23b9f4fcf0fe224b$export$408d25a4e12db025} from \"./BaseCollection.mjs\";\nimport {Document as $681cc3c98f569e39$export$b34a105447964f9f} from \"./Document.mjs\";\nimport {useCachedChildren as $e948873055cbafe4$export$727c8fc270210f13} from \"./useCachedChildren.mjs\";\nimport {Hidden as $f39a9eba43920ace$export$8dc98ba7eadeaa56} from \"./Hidden.mjs\";\nimport {createPortal as $95feo$createPortal} from \"react-dom\";\nimport $95feo$react, {createContext as $95feo$createContext, useContext as $95feo$useContext, useRef as $95feo$useRef, useCallback as $95feo$useCallback, useState as $95feo$useState, forwardRef as $95feo$forwardRef, useMemo as $95feo$useMemo} from \"react\";\nimport {useIsSSR as $95feo$useIsSSR} from \"@react-aria/ssr\";\nimport {useLayoutEffect as $95feo$useLayoutEffect} from \"@react-aria/utils\";\nimport {useSyncExternalStore as $95feo$useSyncExternalStore} from \"use-sync-external-store/shim/index.js\";\n\n/*\n * Copyright 2024 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\n\n\n\n\n\n\n\nconst $e1995378a142960e$var$ShallowRenderContext = /*#__PURE__*/ (0, $95feo$createContext)(false);\nconst $e1995378a142960e$var$CollectionDocumentContext = /*#__PURE__*/ (0, $95feo$createContext)(null);\nfunction $e1995378a142960e$export$bf788dd355e3a401(props) {\n // If a document was provided above us, we're already in a hidden tree. Just render the content.\n let doc = (0, $95feo$useContext)($e1995378a142960e$var$CollectionDocumentContext);\n if (doc) // The React types prior to 18 did not allow returning ReactNode from components\n // even though the actual implementation since React 16 did.\n // We must return ReactElement so that TS does not complain that <CollectionBuilder>\n // is not a valid JSX element with React 16 and 17 types.\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/20544\n return props.content;\n // Otherwise, render a hidden copy of the children so that we can build the collection before constructing the state.\n // This should always come before the real DOM content so we have built the collection by the time it renders during SSR.\n // This is fine. CollectionDocumentContext never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let { collection: collection, document: document } = $e1995378a142960e$var$useCollectionDocument(props.createCollection);\n return /*#__PURE__*/ (0, $95feo$react).createElement((0, $95feo$react).Fragment, null, /*#__PURE__*/ (0, $95feo$react).createElement((0, $f39a9eba43920ace$export$8dc98ba7eadeaa56), null, /*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$CollectionDocumentContext.Provider, {\n value: document\n }, props.content)), /*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$CollectionInner, {\n render: props.children,\n collection: collection\n }));\n}\nfunction $e1995378a142960e$var$CollectionInner({ collection: collection, render: render }) {\n return render(collection);\n}\n// React 16 and 17 don't support useSyncExternalStore natively, and the shim provided by React does not support getServerSnapshot.\n// This wrapper uses the shim, but additionally calls getServerSnapshot during SSR (according to SSRProvider).\nfunction $e1995378a142960e$var$useSyncExternalStoreFallback(subscribe, getSnapshot, getServerSnapshot) {\n let isSSR = (0, $95feo$useIsSSR)();\n let isSSRRef = (0, $95feo$useRef)(isSSR);\n // This is read immediately inside the wrapper, which also runs during render.\n // We just need a ref to avoid invalidating the callback itself, which\n // would cause React to re-run the callback more than necessary.\n // eslint-disable-next-line rulesdir/pure-render\n isSSRRef.current = isSSR;\n let getSnapshotWrapper = (0, $95feo$useCallback)(()=>{\n return isSSRRef.current ? getServerSnapshot() : getSnapshot();\n }, [\n getSnapshot,\n getServerSnapshot\n ]);\n return (0, $95feo$useSyncExternalStore)(subscribe, getSnapshotWrapper);\n}\nconst $e1995378a142960e$var$useSyncExternalStore = typeof (0, $95feo$react)['useSyncExternalStore'] === 'function' ? (0, $95feo$react)['useSyncExternalStore'] : $e1995378a142960e$var$useSyncExternalStoreFallback;\nfunction $e1995378a142960e$var$useCollectionDocument(createCollection) {\n // The document instance is mutable, and should never change between renders.\n // useSyncExternalStore is used to subscribe to updates, which vends immutable Collection objects.\n let [document] = (0, $95feo$useState)(()=>new (0, $681cc3c98f569e39$export$b34a105447964f9f)((createCollection === null || createCollection === void 0 ? void 0 : createCollection()) || new (0, $23b9f4fcf0fe224b$export$408d25a4e12db025)()));\n let subscribe = (0, $95feo$useCallback)((fn)=>document.subscribe(fn), [\n document\n ]);\n let getSnapshot = (0, $95feo$useCallback)(()=>{\n let collection = document.getCollection();\n if (document.isSSR) // After SSR is complete, reset the document to empty so it is ready for React to render the portal into.\n // We do this _after_ getting the collection above so that the collection still has content in it from SSR\n // during the current render, before React has finished the client render.\n document.resetAfterSSR();\n return collection;\n }, [\n document\n ]);\n let getServerSnapshot = (0, $95feo$useCallback)(()=>{\n document.isSSR = true;\n return document.getCollection();\n }, [\n document\n ]);\n let collection = $e1995378a142960e$var$useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n (0, $95feo$useLayoutEffect)(()=>{\n document.isMounted = true;\n return ()=>{\n // Mark unmounted so we can skip all of the collection updates caused by \n // React calling removeChild on every item in the collection.\n document.isMounted = false;\n };\n }, [\n document\n ]);\n return {\n collection: collection,\n document: document\n };\n}\nconst $e1995378a142960e$var$SSRContext = /*#__PURE__*/ (0, $95feo$createContext)(null);\nfunction $e1995378a142960e$var$useSSRCollectionNode(Type, props, ref, rendered, children, render) {\n // During SSR, portals are not supported, so the collection children will be wrapped in an SSRContext.\n // Since SSR occurs only once, we assume that the elements are rendered in order and never re-render.\n // Therefore we can create elements in our collection document during render so that they are in the\n // collection by the time we need to use the collection to render to the real DOM.\n // After hydration, we switch to client rendering using the portal.\n let itemRef = (0, $95feo$useCallback)((element)=>{\n element === null || element === void 0 ? void 0 : element.setProps(props, ref, rendered, render);\n }, [\n props,\n ref,\n rendered,\n render\n ]);\n let parentNode = (0, $95feo$useContext)($e1995378a142960e$var$SSRContext);\n if (parentNode) {\n // Guard against double rendering in strict mode.\n let element = parentNode.ownerDocument.nodesByProps.get(props);\n if (!element) {\n element = parentNode.ownerDocument.createElement(Type);\n element.setProps(props, ref, rendered, render);\n parentNode.appendChild(element);\n parentNode.ownerDocument.updateCollection();\n parentNode.ownerDocument.nodesByProps.set(props, element);\n }\n return children ? /*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$SSRContext.Provider, {\n value: element\n }, children) : null;\n }\n // @ts-ignore\n return /*#__PURE__*/ (0, $95feo$react).createElement(Type, {\n ref: itemRef\n }, children);\n}\nfunction $e1995378a142960e$export$18af5c7a9e9b3664(type, render) {\n let Component = ({ node: node })=>render(node.props, node.props.ref, node);\n let Result = (0, $95feo$forwardRef)((props, ref)=>{\n let isShallow = (0, $95feo$useContext)($e1995378a142960e$var$ShallowRenderContext);\n if (!isShallow) {\n if (render.length >= 3) throw new Error(render.name + ' cannot be rendered outside a collection.');\n return render(props, ref);\n }\n return $e1995378a142960e$var$useSSRCollectionNode(type, props, ref, 'children' in props ? props.children : null, null, (node)=>/*#__PURE__*/ (0, $95feo$react).createElement(Component, {\n node: node\n }));\n });\n // @ts-ignore\n Result.displayName = render.name;\n return Result;\n}\nfunction $e1995378a142960e$export$e953bb1cd0f19726(type, render, useChildren = $e1995378a142960e$var$useCollectionChildren) {\n let Component = ({ node: node })=>render(node.props, node.props.ref, node);\n let Result = (0, $95feo$forwardRef)((props, ref)=>{\n let children = useChildren(props);\n var _useSSRCollectionNode;\n return (_useSSRCollectionNode = $e1995378a142960e$var$useSSRCollectionNode(type, props, ref, null, children, (node)=>/*#__PURE__*/ (0, $95feo$react).createElement(Component, {\n node: node\n }))) !== null && _useSSRCollectionNode !== void 0 ? _useSSRCollectionNode : /*#__PURE__*/ (0, $95feo$react).createElement((0, $95feo$react).Fragment, null);\n });\n // @ts-ignore\n Result.displayName = render.name;\n return Result;\n}\nfunction $e1995378a142960e$var$useCollectionChildren(options) {\n return (0, $e948873055cbafe4$export$727c8fc270210f13)({\n ...options,\n addIdAndValue: true\n });\n}\nconst $e1995378a142960e$var$CollectionContext = /*#__PURE__*/ (0, $95feo$createContext)(null);\nfunction $e1995378a142960e$export$fb8073518f34e6ec(props) {\n let ctx = (0, $95feo$useContext)($e1995378a142960e$var$CollectionContext);\n let dependencies = ((ctx === null || ctx === void 0 ? void 0 : ctx.dependencies) || []).concat(props.dependencies);\n let idScope = props.idScope || (ctx === null || ctx === void 0 ? void 0 : ctx.idScope);\n let children = $e1995378a142960e$var$useCollectionChildren({\n ...props,\n idScope: idScope,\n dependencies: dependencies\n });\n let doc = (0, $95feo$useContext)($e1995378a142960e$var$CollectionDocumentContext);\n if (doc) children = /*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$CollectionRoot, null, children);\n // Propagate dependencies and idScope to child collections.\n ctx = (0, $95feo$useMemo)(()=>({\n dependencies: dependencies,\n idScope: idScope\n }), [\n idScope,\n ...dependencies\n ]);\n return /*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$CollectionContext.Provider, {\n value: ctx\n }, children);\n}\nfunction $e1995378a142960e$var$CollectionRoot({ children: children }) {\n let doc = (0, $95feo$useContext)($e1995378a142960e$var$CollectionDocumentContext);\n let wrappedChildren = (0, $95feo$useMemo)(()=>/*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$CollectionDocumentContext.Provider, {\n value: null\n }, /*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$ShallowRenderContext.Provider, {\n value: true\n }, children)), [\n children\n ]);\n // During SSR, we render the content directly, and append nodes to the document during render.\n // The collection children return null so that nothing is actually rendered into the HTML.\n return (0, $95feo$useIsSSR)() ? /*#__PURE__*/ (0, $95feo$react).createElement($e1995378a142960e$var$SSRContext.Provider, {\n value: doc\n }, wrappedChildren) : /*#__PURE__*/ (0, $95feo$createPortal)(wrappedChildren, doc);\n}\n\n\nexport {$e1995378a142960e$export$bf788dd355e3a401 as CollectionBuilder, $e1995378a142960e$export$18af5c7a9e9b3664 as createLeafComponent, $e1995378a142960e$export$e953bb1cd0f19726 as createBranchComponent, $e1995378a142960e$export$fb8073518f34e6ec as Collection};\n//# sourceMappingURL=CollectionBuilder.module.js.map\n","import {isIOS as $7R18e$isIOS, getOwnerDocument as $7R18e$getOwnerDocument, runAfterTransition as $7R18e$runAfterTransition} from \"@react-aria/utils\";\n\n/*\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// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet $14c0b72509d70225$var$state = 'default';\nlet $14c0b72509d70225$var$savedUserSelect = '';\nlet $14c0b72509d70225$var$modifiedElementMap = new WeakMap();\nfunction $14c0b72509d70225$export$16a4697467175487(target) {\n if ((0, $7R18e$isIOS)()) {\n if ($14c0b72509d70225$var$state === 'default') {\n const documentObject = (0, $7R18e$getOwnerDocument)(target);\n $14c0b72509d70225$var$savedUserSelect = documentObject.documentElement.style.webkitUserSelect;\n documentObject.documentElement.style.webkitUserSelect = 'none';\n }\n $14c0b72509d70225$var$state = 'disabled';\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n $14c0b72509d70225$var$modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\nfunction $14c0b72509d70225$export$b0d6fa1ab32e3295(target) {\n if ((0, $7R18e$isIOS)()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if ($14c0b72509d70225$var$state !== 'disabled') return;\n $14c0b72509d70225$var$state = 'restoring';\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(()=>{\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n (0, $7R18e$runAfterTransition)(()=>{\n // Avoid race conditions\n if ($14c0b72509d70225$var$state === 'restoring') {\n const documentObject = (0, $7R18e$getOwnerDocument)(target);\n if (documentObject.documentElement.style.webkitUserSelect === 'none') documentObject.documentElement.style.webkitUserSelect = $14c0b72509d70225$var$savedUserSelect || '';\n $14c0b72509d70225$var$savedUserSelect = '';\n $14c0b72509d70225$var$state = 'default';\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n {\n if (target && $14c0b72509d70225$var$modifiedElementMap.has(target)) {\n let targetOldUserSelect = $14c0b72509d70225$var$modifiedElementMap.get(target);\n if (target.style.userSelect === 'none') target.style.userSelect = targetOldUserSelect;\n if (target.getAttribute('style') === '') target.removeAttribute('style');\n $14c0b72509d70225$var$modifiedElementMap.delete(target);\n }\n }\n}\n\n\nexport {$14c0b72509d70225$export$16a4697467175487 as disableTextSelection, $14c0b72509d70225$export$b0d6fa1ab32e3295 as restoreTextSelection};\n//# sourceMappingURL=textSelection.module.js.map\n","import $3aeG1$react from \"react\";\n\n/*\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 */ \nconst $ae1eeba8b9eafd08$export$5165eccb35aaadb5 = (0, $3aeG1$react).createContext({\n register: ()=>{}\n});\n$ae1eeba8b9eafd08$export$5165eccb35aaadb5.displayName = 'PressResponderContext';\n\n\nexport {$ae1eeba8b9eafd08$export$5165eccb35aaadb5 as PressResponderContext};\n//# sourceMappingURL=context.module.js.map\n","function _class_apply_descriptor_get(receiver, descriptor) {\n if (descriptor.get) return descriptor.get.call(receiver);\n\n return descriptor.value;\n}\nexport { _class_apply_descriptor_get as _ };\n","function _class_extract_field_descriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n\n return privateMap.get(receiver);\n}\nexport { _class_extract_field_descriptor as _ };\n","import { _ as _class_apply_descriptor_get } from \"./_class_apply_descriptor_get.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_get(receiver, privateMap) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"get\");\n return _class_apply_descriptor_get(receiver, descriptor);\n}\nexport { _class_private_field_get as _ };\n","function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import { _ as _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nfunction _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n","function _class_apply_descriptor_set(receiver, descriptor, value) {\n if (descriptor.set) descriptor.set.call(receiver, value);\n else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}\nexport { _class_apply_descriptor_set as _ };\n","import { _ as _class_apply_descriptor_set } from \"./_class_apply_descriptor_set.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_set(receiver, privateMap, value) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"set\");\n _class_apply_descriptor_set(receiver, descriptor, value);\n return value;\n}\nexport { _class_private_field_set as _ };\n","import {disableTextSelection as $14c0b72509d70225$export$16a4697467175487, restoreTextSelection as $14c0b72509d70225$export$b0d6fa1ab32e3295} from \"./textSelection.mjs\";\nimport {PressResponderContext as $ae1eeba8b9eafd08$export$5165eccb35aaadb5} from \"./context.mjs\";\nimport {_ as $7mdmh$_} from \"@swc/helpers/_/_class_private_field_get\";\nimport {_ as $7mdmh$_1} from \"@swc/helpers/_/_class_private_field_init\";\nimport {_ as $7mdmh$_2} from \"@swc/helpers/_/_class_private_field_set\";\nimport {mergeProps as $7mdmh$mergeProps, useSyncRef as $7mdmh$useSyncRef, useGlobalListeners as $7mdmh$useGlobalListeners, useEffectEvent as $7mdmh$useEffectEvent, getOwnerDocument as $7mdmh$getOwnerDocument, chain as $7mdmh$chain, isMac as $7mdmh$isMac, openLink as $7mdmh$openLink, isVirtualClick as $7mdmh$isVirtualClick, focusWithoutScrolling as $7mdmh$focusWithoutScrolling, isVirtualPointerEvent as $7mdmh$isVirtualPointerEvent, getOwnerWindow as $7mdmh$getOwnerWindow} from \"@react-aria/utils\";\nimport {useContext as $7mdmh$useContext, useState as $7mdmh$useState, useRef as $7mdmh$useRef, useMemo as $7mdmh$useMemo, useEffect as $7mdmh$useEffect} from \"react\";\n\n/*\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\n\n\n\n\nfunction $f6c31cce2adf654f$var$usePressResponderContext(props) {\n // Consume context from <PressResponder> and merge with props.\n let context = (0, $7mdmh$useContext)((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5));\n if (context) {\n let { register: register, ...contextProps } = context;\n props = (0, $7mdmh$mergeProps)(contextProps, props);\n register();\n }\n (0, $7mdmh$useSyncRef)(context, props.ref);\n return props;\n}\nvar $f6c31cce2adf654f$var$_shouldStopPropagation = /*#__PURE__*/ new WeakMap();\nclass $f6c31cce2adf654f$var$PressEvent {\n continuePropagation() {\n (0, $7mdmh$_2)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, false);\n }\n get shouldStopPropagation() {\n return (0, $7mdmh$_)(this, $f6c31cce2adf654f$var$_shouldStopPropagation);\n }\n constructor(type, pointerType, originalEvent, state){\n (0, $7mdmh$_1)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, {\n writable: true,\n value: void 0\n });\n (0, $7mdmh$_2)(this, $f6c31cce2adf654f$var$_shouldStopPropagation, true);\n var _state_target;\n let currentTarget = (_state_target = state === null || state === void 0 ? void 0 : state.target) !== null && _state_target !== void 0 ? _state_target : originalEvent.currentTarget;\n const rect = currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.getBoundingClientRect();\n let x, y = 0;\n let clientX, clientY = null;\n if (originalEvent.clientX != null && originalEvent.clientY != null) {\n clientX = originalEvent.clientX;\n clientY = originalEvent.clientY;\n }\n if (rect) {\n if (clientX != null && clientY != null) {\n x = clientX - rect.left;\n y = clientY - rect.top;\n } else {\n x = rect.width / 2;\n y = rect.height / 2;\n }\n }\n this.type = type;\n this.pointerType = pointerType;\n this.target = originalEvent.currentTarget;\n this.shiftKey = originalEvent.shiftKey;\n this.metaKey = originalEvent.metaKey;\n this.ctrlKey = originalEvent.ctrlKey;\n this.altKey = originalEvent.altKey;\n this.x = x;\n this.y = y;\n }\n}\nconst $f6c31cce2adf654f$var$LINK_CLICKED = Symbol('linkClicked');\nfunction $f6c31cce2adf654f$export$45712eceda6fad21(props) {\n let { onPress: onPress, onPressChange: onPressChange, onPressStart: onPressStart, onPressEnd: onPressEnd, onPressUp: onPressUp, isDisabled: isDisabled, isPressed: isPressedProp, preventFocusOnPress: preventFocusOnPress, shouldCancelOnPointerExit: shouldCancelOnPointerExit, allowTextSelectionOnPress: allowTextSelectionOnPress, // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, ...domProps } = $f6c31cce2adf654f$var$usePressResponderContext(props);\n let [isPressed, setPressed] = (0, $7mdmh$useState)(false);\n let ref = (0, $7mdmh$useRef)({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n isTriggeringEvent: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n let { addGlobalListener: addGlobalListener, removeAllGlobalListeners: removeAllGlobalListeners } = (0, $7mdmh$useGlobalListeners)();\n let triggerPressStart = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled || state.didFirePressStart) return false;\n let shouldStopPropagation = true;\n state.isTriggeringEvent = true;\n if (onPressStart) {\n let event = new $f6c31cce2adf654f$var$PressEvent('pressstart', pointerType, originalEvent);\n onPressStart(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(true);\n state.isTriggeringEvent = false;\n state.didFirePressStart = true;\n setPressed(true);\n return shouldStopPropagation;\n });\n let triggerPressEnd = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType, wasPressed = true)=>{\n let state = ref.current;\n if (!state.didFirePressStart) return false;\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n state.isTriggeringEvent = true;\n let shouldStopPropagation = true;\n if (onPressEnd) {\n let event = new $f6c31cce2adf654f$var$PressEvent('pressend', pointerType, originalEvent);\n onPressEnd(event);\n shouldStopPropagation = event.shouldStopPropagation;\n }\n if (onPressChange) onPressChange(false);\n setPressed(false);\n if (onPress && wasPressed && !isDisabled) {\n let event = new $f6c31cce2adf654f$var$PressEvent('press', pointerType, originalEvent);\n onPress(event);\n shouldStopPropagation && (shouldStopPropagation = event.shouldStopPropagation);\n }\n state.isTriggeringEvent = false;\n return shouldStopPropagation;\n });\n let triggerPressUp = (0, $7mdmh$useEffectEvent)((originalEvent, pointerType)=>{\n let state = ref.current;\n if (isDisabled) return false;\n if (onPressUp) {\n state.isTriggeringEvent = true;\n let event = new $f6c31cce2adf654f$var$PressEvent('pressup', pointerType, originalEvent);\n onPressUp(event);\n state.isTriggeringEvent = false;\n return event.shouldStopPropagation;\n }\n return true;\n });\n let cancel = (0, $7mdmh$useEffectEvent)((e)=>{\n let state = ref.current;\n if (state.isPressed && state.target) {\n if (state.isOverTarget && state.pointerType != null) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n }\n });\n let cancelOnPointerExit = (0, $7mdmh$useEffectEvent)((e)=>{\n if (shouldCancelOnPointerExit) cancel(e);\n });\n let pressProps = (0, $7mdmh$useMemo)(()=>{\n let state = ref.current;\n let pressProps = {\n onKeyDown (e) {\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target)) {\n var _state_metaKeyEvents;\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n let shouldStopPropagation = true;\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n shouldStopPropagation = triggerPressStart(e, 'keyboard');\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred. Make it capturing so that it will trigger\n // before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.\n let originalTarget = e.currentTarget;\n let pressUp = (e)=>{\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e, originalTarget) && !e.repeat && originalTarget.contains(e.target) && state.target) triggerPressUp($f6c31cce2adf654f$var$createEvent(state.target, e), 'keyboard');\n };\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'keyup', (0, $7mdmh$chain)(pressUp, onKeyUp), true);\n }\n if (shouldStopPropagation) e.stopPropagation();\n // Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.\n // macOS has a bug where keyup events are not fired while the Meta key is down.\n // When the Meta key itself is released we will get an event for that, and we'll act as if\n // all of these other keys were released as well.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1393524\n // https://bugs.webkit.org/show_bug.cgi?id=55291\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1299553\n if (e.metaKey && (0, $7mdmh$isMac)()) (_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.set(e.key, e.nativeEvent);\n } else if (e.key === 'Meta') state.metaKeyEvents = new Map();\n },\n onClick (e) {\n if (e && !e.currentTarget.contains(e.target)) return;\n if (e && e.button === 0 && !state.isTriggeringEvent && !(0, $7mdmh$openLink).isOpening) {\n let shouldStopPropagation = true;\n if (isDisabled) e.preventDefault();\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === 'virtual' || (0, $7mdmh$isVirtualClick)(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) (0, $7mdmh$focusWithoutScrolling)(e.currentTarget);\n let stopPressStart = triggerPressStart(e, 'virtual');\n let stopPressUp = triggerPressUp(e, 'virtual');\n let stopPressEnd = triggerPressEnd(e, 'virtual');\n shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;\n }\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n if (shouldStopPropagation) e.stopPropagation();\n }\n }\n };\n let onKeyUp = (e)=>{\n var _state_metaKeyEvents;\n if (state.isPressed && state.target && $f6c31cce2adf654f$var$isValidKeyboardEvent(e, state.target)) {\n var _state_metaKeyEvents1;\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();\n let target = e.target;\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n // If a link was triggered with a key other than Enter, open the URL ourselves.\n // This means the link has a role override, and the default browser behavior\n // only applies when using the Enter key.\n if (e.key !== 'Enter' && $f6c31cce2adf654f$var$isHTMLAnchorLink(state.target) && state.target.contains(target) && !e[$f6c31cce2adf654f$var$LINK_CLICKED]) {\n // Store a hidden property on the event so we only trigger link click once,\n // even if there are multiple usePress instances attached to the element.\n e[$f6c31cce2adf654f$var$LINK_CLICKED] = true;\n (0, $7mdmh$openLink)(state.target, e, false);\n }\n state.isPressed = false;\n (_state_metaKeyEvents1 = state.metaKeyEvents) === null || _state_metaKeyEvents1 === void 0 ? void 0 : _state_metaKeyEvents1.delete(e.key);\n } else if (e.key === 'Meta' && ((_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.size)) {\n var _state_target;\n // If we recorded keydown events that occurred while the Meta key was pressed,\n // and those haven't received keyup events already, fire keyup events ourselves.\n // See comment above for more info about the macOS bug causing this.\n let events = state.metaKeyEvents;\n state.metaKeyEvents = undefined;\n for (let event of events.values())(_state_target = state.target) === null || _state_target === void 0 ? void 0 : _state_target.dispatchEvent(new KeyboardEvent('keyup', event));\n }\n };\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e)=>{\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if ((0, $7mdmh$isVirtualPointerEvent)(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if ($f6c31cce2adf654f$var$shouldPreventDefaultDown(e.currentTarget)) e.preventDefault();\n state.pointerType = e.pointerType;\n let shouldStopPropagation = true;\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n if (!isDisabled && !preventFocusOnPress) (0, $7mdmh$focusWithoutScrolling)(e.currentTarget);\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n // Release pointer capture so that touch interactions can leave the original target.\n // This enables onPointerLeave and onPointerEnter to fire.\n let target = e.target;\n if ('releasePointerCapture' in target) target.releasePointerCapture(e.pointerId);\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'pointerup', onPointerUp, false);\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'pointercancel', onPointerCancel, false);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseDown = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if ($f6c31cce2adf654f$var$shouldPreventDefaultDown(e.currentTarget)) e.preventDefault();\n e.stopPropagation();\n }\n };\n pressProps.onPointerUp = (e)=>{\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target) || state.pointerType === 'virtual') return;\n // Only handle left clicks\n if (e.button === 0) triggerPressUp(e, state.pointerType || e.pointerType);\n };\n pressProps.onPointerEnter = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && !state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n triggerPressStart($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n }\n };\n pressProps.onPointerLeave = (e)=>{\n if (e.pointerId === state.activePointerId && state.target && state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit(e);\n }\n };\n let onPointerUp = (e)=>{\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0 && state.target) {\n if (state.target.contains(e.target) && state.pointerType != null) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n else if (state.isOverTarget && state.pointerType != null) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n // Prevent subsequent touchend event from triggering onClick on unrelated elements on Android. See below.\n // Both 'touch' and 'pen' pointerTypes trigger onTouchEnd, but 'mouse' does not.\n if ('ontouchend' in state.target && e.pointerType !== 'mouse') addGlobalListener(state.target, 'touchend', onTouchEnd, {\n once: true\n });\n }\n };\n // This is a workaround for an Android Chrome/Firefox issue where click events are fired on an incorrect element\n // if the original target is removed during onPointerUp (before onClick).\n // https://github.com/adobe/react-spectrum/issues/1513\n // https://issues.chromium.org/issues/40732224\n // Note: this event must be registered directly on the element, not via React props in order to work.\n // https://github.com/facebook/react/issues/9809\n let onTouchEnd = (e)=>{\n // Don't preventDefault if we actually want the default (e.g. submit/link click).\n if ($f6c31cce2adf654f$var$shouldPreventDefaultUp(e.currentTarget)) e.preventDefault();\n };\n let onPointerCancel = (e)=>{\n cancel(e);\n };\n pressProps.onDragStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e)=>{\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if ($f6c31cce2adf654f$var$shouldPreventDefaultDown(e.currentTarget)) e.preventDefault();\n if (state.ignoreEmulatedMouseEvents) {\n e.stopPropagation();\n return;\n }\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = (0, $7mdmh$isVirtualClick)(e.nativeEvent) ? 'virtual' : 'mouse';\n if (!isDisabled && !preventFocusOnPress) (0, $7mdmh$focusWithoutScrolling)(e.currentTarget);\n let shouldStopPropagation = triggerPressStart(e, state.pointerType);\n if (shouldStopPropagation) e.stopPropagation();\n addGlobalListener((0, $7mdmh$getOwnerDocument)(e.currentTarget), 'mouseup', onMouseUp, false);\n };\n pressProps.onMouseEnter = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart(e, state.pointerType);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseLeave = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n let shouldStopPropagation = true;\n if (state.isPressed && !state.ignoreEmulatedMouseEvents && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);\n cancelOnPointerExit(e);\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onMouseUp = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) triggerPressUp(e, state.pointerType || 'mouse');\n };\n let onMouseUp = (e)=>{\n // Only handle left clicks\n if (e.button !== 0) return;\n state.isPressed = false;\n removeAllGlobalListeners();\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n if (state.target && $f6c31cce2adf654f$var$isOverTarget(e, state.target) && state.pointerType != null) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n else if (state.target && state.isOverTarget && state.pointerType != null) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isOverTarget = false;\n };\n pressProps.onTouchStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n let touch = $f6c31cce2adf654f$var$getTouchFromEvent(e.nativeEvent);\n if (!touch) return;\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) (0, $7mdmh$focusWithoutScrolling)(e.currentTarget);\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n let shouldStopPropagation = triggerPressStart($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n if (shouldStopPropagation) e.stopPropagation();\n addGlobalListener((0, $7mdmh$getOwnerWindow)(e.currentTarget), 'scroll', onScroll, true);\n };\n pressProps.onTouchMove = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = true;\n shouldStopPropagation = triggerPressStart($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget && state.pointerType != null) {\n state.isOverTarget = false;\n shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType, false);\n cancelOnPointerExit($f6c31cce2adf654f$var$createTouchEvent(state.target, e));\n }\n if (shouldStopPropagation) e.stopPropagation();\n };\n pressProps.onTouchEnd = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (!state.isPressed) {\n e.stopPropagation();\n return;\n }\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n let shouldStopPropagation = true;\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget) && state.pointerType != null) {\n triggerPressUp($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget && state.pointerType != null) shouldStopPropagation = triggerPressEnd($f6c31cce2adf654f$var$createTouchEvent(state.target, e), state.pointerType, false);\n if (shouldStopPropagation) e.stopPropagation();\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (state.target && !allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n removeAllGlobalListeners();\n };\n pressProps.onTouchCancel = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n if (state.isPressed) cancel($f6c31cce2adf654f$var$createTouchEvent(state.target, e));\n };\n let onScroll = (e)=>{\n if (state.isPressed && e.target.contains(state.target)) cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n };\n pressProps.onDragStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n cancel(e);\n };\n }\n return pressProps;\n }, [\n addGlobalListener,\n isDisabled,\n preventFocusOnPress,\n removeAllGlobalListeners,\n allowTextSelectionOnPress,\n cancel,\n cancelOnPointerExit,\n triggerPressEnd,\n triggerPressStart,\n triggerPressUp\n ]);\n // Remove user-select: none in case component unmounts immediately after pressStart\n (0, $7mdmh$useEffect)(()=>{\n return ()=>{\n var _ref_current_target;\n if (!allowTextSelectionOnPress) // eslint-disable-next-line react-hooks/exhaustive-deps\n (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)((_ref_current_target = ref.current.target) !== null && _ref_current_target !== void 0 ? _ref_current_target : undefined);\n };\n }, [\n allowTextSelectionOnPress\n ]);\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: (0, $7mdmh$mergeProps)(domProps, pressProps)\n };\n}\nfunction $f6c31cce2adf654f$var$isHTMLAnchorLink(target) {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\nfunction $f6c31cce2adf654f$var$isValidKeyboardEvent(event, currentTarget) {\n const { key: key, code: code } = event;\n const element = currentTarget;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') && !(element instanceof (0, $7mdmh$getOwnerWindow)(element).HTMLInputElement && !$f6c31cce2adf654f$var$isValidInputKey(element, key) || element instanceof (0, $7mdmh$getOwnerWindow)(element).HTMLTextAreaElement || element.isContentEditable) && // Links should only trigger with Enter key\n !((role === 'link' || !role && $f6c31cce2adf654f$var$isHTMLAnchorLink(element)) && key !== 'Enter');\n}\nfunction $f6c31cce2adf654f$var$getTouchFromEvent(event) {\n const { targetTouches: targetTouches } = event;\n if (targetTouches.length > 0) return targetTouches[0];\n return null;\n}\nfunction $f6c31cce2adf654f$var$getTouchById(event, pointerId) {\n const changedTouches = event.changedTouches;\n for(let i = 0; i < changedTouches.length; i++){\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) return touch;\n }\n return null;\n}\nfunction $f6c31cce2adf654f$var$createTouchEvent(target, e) {\n let clientX = 0;\n let clientY = 0;\n if (e.targetTouches && e.targetTouches.length === 1) {\n clientX = e.targetTouches[0].clientX;\n clientY = e.targetTouches[0].clientY;\n }\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX: clientX,\n clientY: clientY\n };\n}\nfunction $f6c31cce2adf654f$var$createEvent(target, e) {\n let clientX = e.clientX;\n let clientY = e.clientY;\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey,\n clientX: clientX,\n clientY: clientY\n };\n}\nfunction $f6c31cce2adf654f$var$getPointClientRect(point) {\n let offsetX = 0;\n let offsetY = 0;\n if (point.width !== undefined) offsetX = point.width / 2;\n else if (point.radiusX !== undefined) offsetX = point.radiusX;\n if (point.height !== undefined) offsetY = point.height / 2;\n else if (point.radiusY !== undefined) offsetY = point.radiusY;\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\nfunction $f6c31cce2adf654f$var$areRectanglesOverlapping(a, b) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) return false;\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) return false;\n return true;\n}\nfunction $f6c31cce2adf654f$var$isOverTarget(point, target) {\n let rect = target.getBoundingClientRect();\n let pointRect = $f6c31cce2adf654f$var$getPointClientRect(point);\n return $f6c31cce2adf654f$var$areRectanglesOverlapping(rect, pointRect);\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultDown(target) {\n // We cannot prevent default if the target is a draggable element.\n return !(target instanceof HTMLElement) || !target.hasAttribute('draggable');\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultUp(target) {\n if (target instanceof HTMLInputElement) return false;\n if (target instanceof HTMLButtonElement) return target.type !== 'submit' && target.type !== 'reset';\n if ($f6c31cce2adf654f$var$isHTMLAnchorLink(target)) return false;\n return true;\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(target, key) {\n if (target instanceof HTMLInputElement) return !$f6c31cce2adf654f$var$isValidInputKey(target, key);\n return $f6c31cce2adf654f$var$shouldPreventDefaultUp(target);\n}\nconst $f6c31cce2adf654f$var$nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\nfunction $f6c31cce2adf654f$var$isValidInputKey(target, key) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === 'checkbox' || target.type === 'radio' ? key === ' ' : $f6c31cce2adf654f$var$nonTextInputTypes.has(target.type);\n}\n\n\nexport {$f6c31cce2adf654f$export$45712eceda6fad21 as usePress};\n//# sourceMappingURL=usePress.module.js.map\n","import {PressResponderContext as $ae1eeba8b9eafd08$export$5165eccb35aaadb5} from \"./context.mjs\";\nimport {useObjectRef as $87RPk$useObjectRef, mergeProps as $87RPk$mergeProps, useSyncRef as $87RPk$useSyncRef} from \"@react-aria/utils\";\nimport $87RPk$react, {useRef as $87RPk$useRef, useContext as $87RPk$useContext, useEffect as $87RPk$useEffect, useMemo as $87RPk$useMemo} from \"react\";\n\n/*\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\n\nconst $f1ab8c75478c6f73$export$3351871ee4b288b8 = /*#__PURE__*/ (0, $87RPk$react).forwardRef(({ children: children, ...props }, ref)=>{\n let isRegistered = (0, $87RPk$useRef)(false);\n let prevContext = (0, $87RPk$useContext)((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5));\n ref = (0, $87RPk$useObjectRef)(ref || (prevContext === null || prevContext === void 0 ? void 0 : prevContext.ref));\n let context = (0, $87RPk$mergeProps)(prevContext || {}, {\n ...props,\n ref: ref,\n register () {\n isRegistered.current = true;\n if (prevContext) prevContext.register();\n }\n });\n (0, $87RPk$useSyncRef)(prevContext, ref);\n (0, $87RPk$useEffect)(()=>{\n if (!isRegistered.current) {\n console.warn(\"A PressResponder was rendered without a pressable child. Either call the usePress hook, or wrap your DOM node with <Pressable> component.\");\n isRegistered.current = true; // only warn once in strict mode.\n }\n }, []);\n return /*#__PURE__*/ (0, $87RPk$react).createElement((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5).Provider, {\n value: context\n }, children);\n});\nfunction $f1ab8c75478c6f73$export$cf75428e0b9ed1ea({ children: children }) {\n let context = (0, $87RPk$useMemo)(()=>({\n register: ()=>{}\n }), []);\n return /*#__PURE__*/ (0, $87RPk$react).createElement((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5).Provider, {\n value: context\n }, children);\n}\n\n\nexport {$f1ab8c75478c6f73$export$3351871ee4b288b8 as PressResponder, $f1ab8c75478c6f73$export$cf75428e0b9ed1ea as ClearPressResponder};\n//# sourceMappingURL=PressResponder.module.js.map\n","import {useRef as $6dfIe$useRef, useCallback as $6dfIe$useCallback} from \"react\";\nimport {useLayoutEffect as $6dfIe$useLayoutEffect, useEffectEvent as $6dfIe$useEffectEvent} from \"@react-aria/utils\";\n\n/*\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\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n isDefaultPrevented() {\n return this.nativeEvent.defaultPrevented;\n }\n preventDefault() {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n stopPropagation() {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = ()=>true;\n }\n isPropagationStopped() {\n return false;\n }\n persist() {}\n constructor(type, nativeEvent){\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target;\n this.currentTarget = nativeEvent.currentTarget;\n this.relatedTarget = nativeEvent.relatedTarget;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n let stateRef = (0, $6dfIe$useRef)({\n isFocused: false,\n observer: null\n });\n // Clean up MutationObserver on unmount. See below.\n (0, $6dfIe$useLayoutEffect)(()=>{\n const state = stateRef.current;\n return ()=>{\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n let dispatchBlur = (0, $6dfIe$useEffectEvent)((e)=>{\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n });\n // This function is called during a React onFocus event.\n return (0, $6dfIe$useCallback)((e)=>{\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n stateRef.current.isFocused = true;\n let target = e.target;\n let onBlurHandler = (e)=>{\n stateRef.current.isFocused = false;\n if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36('blur', e));\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n target.addEventListener('focusout', onBlurHandler, {\n once: true\n });\n stateRef.current.observer = new MutationObserver(()=>{\n if (stateRef.current.isFocused && target.disabled) {\n var _stateRef_current_observer;\n (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();\n let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', {\n relatedTarget: relatedTargetEl\n }));\n target.dispatchEvent(new FocusEvent('focusout', {\n bubbles: true,\n relatedTarget: relatedTargetEl\n }));\n }\n });\n stateRef.current.observer.observe(target, {\n attributes: true,\n attributeFilter: [\n 'disabled'\n ]\n });\n }\n }, [\n dispatchBlur\n ]);\n}\n\n\nexport {$8a9cb279dc87e130$export$905e7fc544a71f36 as SyntheticFocusEvent, $8a9cb279dc87e130$export$715c682d09d639cc as useSyntheticBlurEvent};\n//# sourceMappingURL=utils.module.js.map\n","import {useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useCallback as $hf0lj$useCallback} from \"react\";\nimport {getOwnerDocument as $hf0lj$getOwnerDocument} from \"@react-aria/utils\";\n\n/*\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n const onBlur = (0, $hf0lj$useCallback)((e)=>{\n if (e.target === e.currentTarget) {\n if (onBlurProp) onBlurProp(e);\n if (onFocusChange) onFocusChange(false);\n return true;\n }\n }, [\n onBlurProp,\n onFocusChange\n ]);\n const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n const onFocus = (0, $hf0lj$useCallback)((e)=>{\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n const ownerDocument = (0, $hf0lj$getOwnerDocument)(e.target);\n if (e.target === e.currentTarget && ownerDocument.activeElement === e.target) {\n if (onFocusProp) onFocusProp(e);\n if (onFocusChange) onFocusChange(true);\n onSyntheticFocus(e);\n }\n }, [\n onFocusChange,\n onFocusProp,\n onSyntheticFocus\n ]);\n return {\n focusProps: {\n onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n }\n };\n}\n\n\nexport {$a1ea59d68270f0dd$export$f8168d8dd8fd66e6 as useFocus};\n//# sourceMappingURL=useFocus.module.js.map\n","import {isMac as $28AnR$isMac, isVirtualClick as $28AnR$isVirtualClick, getOwnerWindow as $28AnR$getOwnerWindow, getOwnerDocument as $28AnR$getOwnerDocument} from \"@react-aria/utils\";\nimport {useState as $28AnR$useState, useEffect as $28AnR$useEffect} from \"react\";\nimport {useIsSSR as $28AnR$useIsSSR} from \"@react-aria/ssr\";\n\n/*\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || !(0, $28AnR$isMac)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n if ($507fabe10e71c6fb$var$isValidKey(e)) {\n $507fabe10e71c6fb$var$currentModality = 'keyboard';\n $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n $507fabe10e71c6fb$var$currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n if ((0, $28AnR$isVirtualClick)(e)) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$currentModality = 'virtual';\n }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) return;\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n $507fabe10e71c6fb$var$currentModality = 'virtual';\n $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n }\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $28AnR$getOwnerWindow)(element))) return;\n const windowObject = (0, $28AnR$getOwnerWindow)(element);\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function() {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n } else {\n documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n }\n // Add unmount handler\n windowObject.addEventListener('beforeunload', ()=>{\n $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n }, {\n once: true\n });\n $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n focus: focus\n });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n const windowObject = (0, $28AnR$getOwnerWindow)(element);\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n if (typeof PointerEvent !== 'undefined') {\n documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n } else {\n documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n }\n $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n const documentObject = (0, $28AnR$getOwnerDocument)(element);\n let loadListener;\n if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n else {\n loadListener = ()=>{\n $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n };\n documentObject.addEventListener('DOMContentLoaded', loadListener);\n }\n return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n $507fabe10e71c6fb$var$currentModality = modality;\n $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n let [modality, setModality] = (0, $28AnR$useState)($507fabe10e71c6fb$var$currentModality);\n (0, $28AnR$useEffect)(()=>{\n let handler = ()=>{\n setModality($507fabe10e71c6fb$var$currentModality);\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n }, []);\n return (0, $28AnR$useIsSSR)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n var _e_target;\n const IHTMLInputElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n const IHTMLElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n const IKeyboardEvent = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n isTextInput = isTextInput || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(e === null || e === void 0 ? void 0 : (_e_target = e.target) === null || _e_target === void 0 ? void 0 : _e_target.type) || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLTextAreaElement || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLElement && (e === null || e === void 0 ? void 0 : e.target.isContentEditable);\n return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n let [isFocusVisibleState, setFocusVisible] = (0, $28AnR$useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n setFocusVisible(isFocusVisible);\n }, [\n isTextInput\n ], {\n isTextInput: isTextInput\n });\n return {\n isFocusVisible: isFocusVisibleState\n };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n (0, $28AnR$useEffect)(()=>{\n let handler = (modality, e)=>{\n if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n\nexport {$507fabe10e71c6fb$export$d90243b58daecda7 as hasSetupGlobalListeners, $507fabe10e71c6fb$export$2f1888112f558a7d as addWindowFocusTracking, $507fabe10e71c6fb$export$b9b3dfddab17db27 as isFocusVisible, $507fabe10e71c6fb$export$630ff653c5ada6a9 as getInteractionModality, $507fabe10e71c6fb$export$8397ddfc504fdb9a as setInteractionModality, $507fabe10e71c6fb$export$98e20ec92f614cfe as useInteractionModality, $507fabe10e71c6fb$export$ffd9e5021c1fb2d6 as useFocusVisible, $507fabe10e71c6fb$export$ec71b4b83ac08ec3 as useFocusVisibleListener};\n//# sourceMappingURL=useFocusVisible.module.js.map\n","import {useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useRef as $3b9Q0$useRef, useCallback as $3b9Q0$useCallback} from \"react\";\n\n/*\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n let state = (0, $3b9Q0$useRef)({\n isFocusWithin: false\n });\n let onBlur = (0, $3b9Q0$useCallback)((e)=>{\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n state.current.isFocusWithin = false;\n if (onBlurWithin) onBlurWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [\n onBlurWithin,\n onFocusWithinChange,\n state\n ]);\n let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n let onFocus = (0, $3b9Q0$useCallback)((e)=>{\n // Double check that document.activeElement actually matches e.target in case a previously chained\n // focus handler already moved focus somewhere else.\n if (!state.current.isFocusWithin && document.activeElement === e.target) {\n if (onFocusWithin) onFocusWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(true);\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [\n onFocusWithin,\n onFocusWithinChange,\n onSyntheticFocus\n ]);\n if (isDisabled) return {\n focusWithinProps: {\n // These should not have been null, that would conflict in mergeProps\n onFocus: undefined,\n onBlur: undefined\n }\n };\n return {\n focusWithinProps: {\n onFocus: onFocus,\n onBlur: onBlur\n }\n };\n}\n\n\nexport {$9ab94262bd0047c7$export$420e68273165f4ec as useFocusWithin};\n//# sourceMappingURL=useFocusWithin.module.js.map\n","import {useState as $AWxnT$useState, useRef as $AWxnT$useRef, useEffect as $AWxnT$useEffect, useMemo as $AWxnT$useMemo} from \"react\";\n\n/*\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(()=>{\n $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n if (typeof document === 'undefined') return;\n if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n else document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n $6179b936705e76d3$var$hoverCount++;\n return ()=>{\n $6179b936705e76d3$var$hoverCount--;\n if ($6179b936705e76d3$var$hoverCount > 0) return;\n if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n else document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n let [isHovered, setHovered] = (0, $AWxnT$useState)(false);\n let state = (0, $AWxnT$useRef)({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n (0, $AWxnT$useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, $AWxnT$useMemo)(()=>{\n let triggerHoverStart = (event, pointerType)=>{\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n if (onHoverStart) onHoverStart({\n type: 'hoverstart',\n target: target,\n pointerType: pointerType\n });\n if (onHoverChange) onHoverChange(true);\n setHovered(true);\n };\n let triggerHoverEnd = (event, pointerType)=>{\n state.pointerType = '';\n state.target = null;\n if (pointerType === 'touch' || !state.isHovered) return;\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) onHoverEnd({\n type: 'hoverend',\n target: target,\n pointerType: pointerType\n });\n if (onHoverChange) onHoverChange(false);\n setHovered(false);\n };\n let hoverProps = {};\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e)=>{\n if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n triggerHoverStart(e, e.pointerType);\n };\n hoverProps.onPointerLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n };\n } else {\n hoverProps.onTouchStart = ()=>{\n state.ignoreEmulatedMouseEvents = true;\n };\n hoverProps.onMouseEnter = (e)=>{\n if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n state.ignoreEmulatedMouseEvents = false;\n };\n hoverProps.onMouseLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n };\n }\n return {\n hoverProps: hoverProps,\n triggerHoverEnd: triggerHoverEnd\n };\n }, [\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled,\n state\n ]);\n (0, $AWxnT$useEffect)(()=>{\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) triggerHoverEnd({\n currentTarget: state.target\n }, state.pointerType);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled\n ]);\n return {\n hoverProps: hoverProps,\n isHovered: isHovered\n };\n}\n\n\nexport {$6179b936705e76d3$export$ae780daf29e6d456 as useHover};\n//# sourceMappingURL=useHover.module.js.map\n","import {useEffectEvent as $ispOf$useEffectEvent, getOwnerDocument as $ispOf$getOwnerDocument} from \"@react-aria/utils\";\nimport {useRef as $ispOf$useRef, useEffect as $ispOf$useEffect} from \"react\";\n\n/*\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 */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\nfunction $e0b6e0b68ec7f50f$export$872b660ac5a1ff98(props) {\n let { ref: ref, onInteractOutside: onInteractOutside, isDisabled: isDisabled, onInteractOutsideStart: onInteractOutsideStart } = props;\n let stateRef = (0, $ispOf$useRef)({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false\n });\n let onPointerDown = (0, $ispOf$useEffectEvent)((e)=>{\n if (onInteractOutside && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) {\n if (onInteractOutsideStart) onInteractOutsideStart(e);\n stateRef.current.isPointerDown = true;\n }\n });\n let triggerInteractOutside = (0, $ispOf$useEffectEvent)((e)=>{\n if (onInteractOutside) onInteractOutside(e);\n });\n (0, $ispOf$useEffect)(()=>{\n let state = stateRef.current;\n if (isDisabled) return;\n const element = ref.current;\n const documentObject = (0, $ispOf$getOwnerDocument)(element);\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e)=>{\n if (state.isPointerDown && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) triggerInteractOutside(e);\n state.isPointerDown = false;\n };\n // changing these to capture phase fixed combobox\n documentObject.addEventListener('pointerdown', onPointerDown, true);\n documentObject.addEventListener('pointerup', onPointerUp, true);\n return ()=>{\n documentObject.removeEventListener('pointerdown', onPointerDown, true);\n documentObject.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e)=>{\n if (state.ignoreEmulatedMouseEvents) state.ignoreEmulatedMouseEvents = false;\n else if (state.isPointerDown && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) triggerInteractOutside(e);\n state.isPointerDown = false;\n };\n let onTouchEnd = (e)=>{\n state.ignoreEmulatedMouseEvents = true;\n if (state.isPointerDown && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) triggerInteractOutside(e);\n state.isPointerDown = false;\n };\n documentObject.addEventListener('mousedown', onPointerDown, true);\n documentObject.addEventListener('mouseup', onMouseUp, true);\n documentObject.addEventListener('touchstart', onPointerDown, true);\n documentObject.addEventListener('touchend', onTouchEnd, true);\n return ()=>{\n documentObject.removeEventListener('mousedown', onPointerDown, true);\n documentObject.removeEventListener('mouseup', onMouseUp, true);\n documentObject.removeEventListener('touchstart', onPointerDown, true);\n documentObject.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [\n ref,\n isDisabled,\n onPointerDown,\n triggerInteractOutside\n ]);\n}\nfunction $e0b6e0b68ec7f50f$var$isValidEvent(event, ref) {\n if (event.button > 0) return false;\n if (event.target) {\n // if the event target is no longer in the document, ignore\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) return false;\n // If the target is within a top layer element (e.g. toasts), ignore.\n if (event.target.closest('[data-react-aria-top-layer]')) return false;\n }\n return ref.current && !ref.current.contains(event.target);\n}\n\n\nexport {$e0b6e0b68ec7f50f$export$872b660ac5a1ff98 as useInteractOutside};\n//# sourceMappingURL=useInteractOutside.module.js.map\n","/*\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 */ function $93925083ecbb358c$export$48d1ea6320830260(handler) {\n if (!handler) return undefined;\n let shouldStopPropagation = true;\n return (e)=>{\n let event = {\n ...e,\n preventDefault () {\n e.preventDefault();\n },\n isDefaultPrevented () {\n return e.isDefaultPrevented();\n },\n stopPropagation () {\n if (shouldStopPropagation) console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n else shouldStopPropagation = true;\n },\n continuePropagation () {\n shouldStopPropagation = false;\n },\n isPropagationStopped () {\n return shouldStopPropagation;\n }\n };\n handler(event);\n if (shouldStopPropagation) e.stopPropagation();\n };\n}\n\n\nexport {$93925083ecbb358c$export$48d1ea6320830260 as createEventHandler};\n//# sourceMappingURL=createEventHandler.module.js.map\n","import {createEventHandler as $93925083ecbb358c$export$48d1ea6320830260} from \"./createEventHandler.mjs\";\n\n/*\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 */ \nfunction $46d819fcbaf35654$export$8f71654801c2f7cd(props) {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: (0, $93925083ecbb358c$export$48d1ea6320830260)(props.onKeyDown),\n onKeyUp: (0, $93925083ecbb358c$export$48d1ea6320830260)(props.onKeyUp)\n }\n };\n}\n\n\nexport {$46d819fcbaf35654$export$8f71654801c2f7cd as useKeyboard};\n//# sourceMappingURL=useKeyboard.module.js.map\n","import {usePress as $f6c31cce2adf654f$export$45712eceda6fad21} from \"./usePress.mjs\";\nimport {useGlobalListeners as $4k2kv$useGlobalListeners, useDescription as $4k2kv$useDescription, mergeProps as $4k2kv$mergeProps} from \"@react-aria/utils\";\nimport {useRef as $4k2kv$useRef} from \"react\";\n\n/*\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\n\nconst $8a26561d2877236e$var$DEFAULT_THRESHOLD = 500;\nfunction $8a26561d2877236e$export$c24ed0104d07eab9(props) {\n let { isDisabled: isDisabled, onLongPressStart: onLongPressStart, onLongPressEnd: onLongPressEnd, onLongPress: onLongPress, threshold: threshold = $8a26561d2877236e$var$DEFAULT_THRESHOLD, accessibilityDescription: accessibilityDescription } = props;\n const timeRef = (0, $4k2kv$useRef)(undefined);\n let { addGlobalListener: addGlobalListener, removeGlobalListener: removeGlobalListener } = (0, $4k2kv$useGlobalListeners)();\n let { pressProps: pressProps } = (0, $f6c31cce2adf654f$export$45712eceda6fad21)({\n isDisabled: isDisabled,\n onPressStart (e) {\n e.continuePropagation();\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n timeRef.current = setTimeout(()=>{\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {\n bubbles: true\n }));\n if (onLongPress) onLongPress({\n ...e,\n type: 'longpress'\n });\n timeRef.current = undefined;\n }, threshold);\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = (e)=>{\n e.preventDefault();\n };\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {\n once: true\n });\n addGlobalListener(window, 'pointerup', ()=>{\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(()=>{\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {\n once: true\n });\n }\n }\n },\n onPressEnd (e) {\n if (timeRef.current) clearTimeout(timeRef.current);\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n });\n let descriptionProps = (0, $4k2kv$useDescription)(onLongPress && !isDisabled ? accessibilityDescription : undefined);\n return {\n longPressProps: (0, $4k2kv$mergeProps)(pressProps, descriptionProps)\n };\n}\n\n\nexport {$8a26561d2877236e$export$c24ed0104d07eab9 as useLongPress};\n//# sourceMappingURL=useLongPress.module.js.map\n","import {getOwnerDocument as $jlOai$getOwnerDocument, runAfterTransition as $jlOai$runAfterTransition, focusWithoutScrolling as $jlOai$focusWithoutScrolling} from \"@react-aria/utils\";\nimport {getInteractionModality as $jlOai$getInteractionModality} from \"@react-aria/interactions\";\n\n/*\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\nfunction $6a99195332edec8b$export$80f3e147d781571c(element) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n const ownerDocument = (0, $jlOai$getOwnerDocument)(element);\n if ((0, $jlOai$getInteractionModality)() === 'virtual') {\n let lastFocusedElement = ownerDocument.activeElement;\n (0, $jlOai$runAfterTransition)(()=>{\n // If focus did not move and the element is still in the document, focus it.\n if (ownerDocument.activeElement === lastFocusedElement && element.isConnected) (0, $jlOai$focusWithoutScrolling)(element);\n });\n } else (0, $jlOai$focusWithoutScrolling)(element);\n}\n\n\nexport {$6a99195332edec8b$export$80f3e147d781571c as focusSafely};\n//# sourceMappingURL=focusSafely.module.js.map\n","import {getOwnerWindow as $djhjW$getOwnerWindow} from \"@react-aria/utils\";\n\n/*\n * Copyright 2021 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 */ \nfunction $645f2e67b85a24c9$var$isStyleVisible(element) {\n const windowObject = (0, $djhjW$getOwnerWindow)(element);\n if (!(element instanceof windowObject.HTMLElement) && !(element instanceof windowObject.SVGElement)) return false;\n let { display: display, visibility: visibility } = element.style;\n let isVisible = display !== 'none' && visibility !== 'hidden' && visibility !== 'collapse';\n if (isVisible) {\n const { getComputedStyle: getComputedStyle } = element.ownerDocument.defaultView;\n let { display: computedDisplay, visibility: computedVisibility } = getComputedStyle(element);\n isVisible = computedDisplay !== 'none' && computedVisibility !== 'hidden' && computedVisibility !== 'collapse';\n }\n return isVisible;\n}\nfunction $645f2e67b85a24c9$var$isAttributeVisible(element, childElement) {\n return !element.hasAttribute('hidden') && // Ignore HiddenSelect when tree walking.\n !element.hasAttribute('data-react-aria-prevent-focus') && (element.nodeName === 'DETAILS' && childElement && childElement.nodeName !== 'SUMMARY' ? element.hasAttribute('open') : true);\n}\nfunction $645f2e67b85a24c9$export$e989c0fffaa6b27a(element, childElement) {\n return element.nodeName !== '#comment' && $645f2e67b85a24c9$var$isStyleVisible(element) && $645f2e67b85a24c9$var$isAttributeVisible(element, childElement) && (!element.parentElement || $645f2e67b85a24c9$export$e989c0fffaa6b27a(element.parentElement, element));\n}\n\n\nexport {$645f2e67b85a24c9$export$e989c0fffaa6b27a as isElementVisible};\n//# sourceMappingURL=isElementVisible.module.js.map\n","import {focusSafely as $6a99195332edec8b$export$80f3e147d781571c} from \"./focusSafely.mjs\";\nimport {isElementVisible as $645f2e67b85a24c9$export$e989c0fffaa6b27a} from \"./isElementVisible.mjs\";\nimport {getInteractionModality as $cgawC$getInteractionModality} from \"@react-aria/interactions\";\nimport {useLayoutEffect as $cgawC$useLayoutEffect, getOwnerDocument as $cgawC$getOwnerDocument, isAndroid as $cgawC$isAndroid, isChrome as $cgawC$isChrome} from \"@react-aria/utils\";\nimport $cgawC$react, {useRef as $cgawC$useRef, useContext as $cgawC$useContext, useMemo as $cgawC$useMemo, useEffect as $cgawC$useEffect} from \"react\";\n\n/*\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\n\n\n\nconst $9bf71ea28793e738$var$FocusContext = /*#__PURE__*/ (0, $cgawC$react).createContext(null);\nconst $9bf71ea28793e738$var$RESTORE_FOCUS_EVENT = 'react-aria-focus-scope-restore';\nlet $9bf71ea28793e738$var$activeScope = null;\nfunction $9bf71ea28793e738$export$20e40289641fbbb6(props) {\n let { children: children, contain: contain, restoreFocus: restoreFocus, autoFocus: autoFocus } = props;\n let startRef = (0, $cgawC$useRef)(null);\n let endRef = (0, $cgawC$useRef)(null);\n let scopeRef = (0, $cgawC$useRef)([]);\n let { parentNode: parentNode } = (0, $cgawC$useContext)($9bf71ea28793e738$var$FocusContext) || {};\n // Create a tree node here so we can add children to it even before it is added to the tree.\n let node = (0, $cgawC$useMemo)(()=>new $9bf71ea28793e738$var$TreeNode({\n scopeRef: scopeRef\n }), [\n scopeRef\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n // If a new scope mounts outside the active scope, (e.g. DialogContainer launched from a menu),\n // use the active scope as the parent instead of the parent from context. Layout effects run bottom\n // up, so if the parent is not yet added to the tree, don't do this. Only the outer-most FocusScope\n // that is being added should get the activeScope as its parent.\n let parent = parentNode || $9bf71ea28793e738$export$d06fae2ee68b101e.root;\n if ($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parent.scopeRef) && $9bf71ea28793e738$var$activeScope && !$9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, parent.scopeRef)) {\n let activeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n if (activeNode) parent = activeNode;\n }\n // Add the node to the parent, and to the tree.\n parent.addChild(node);\n $9bf71ea28793e738$export$d06fae2ee68b101e.addNode(node);\n }, [\n node,\n parentNode\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n let node = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (node) node.contain = !!contain;\n }, [\n contain\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n var _startRef_current;\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = (_startRef_current = startRef.current) === null || _startRef_current === void 0 ? void 0 : _startRef_current.nextSibling;\n let nodes = [];\n let stopPropagation = (e)=>e.stopPropagation();\n while(node && node !== endRef.current){\n nodes.push(node);\n // Stop custom restore focus event from propagating to parent focus scopes.\n node.addEventListener($9bf71ea28793e738$var$RESTORE_FOCUS_EVENT, stopPropagation);\n node = node.nextSibling;\n }\n scopeRef.current = nodes;\n return ()=>{\n for (let node of nodes)node.removeEventListener($9bf71ea28793e738$var$RESTORE_FOCUS_EVENT, stopPropagation);\n };\n }, [\n children\n ]);\n $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restoreFocus, contain);\n $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain);\n $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain);\n $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus);\n // This needs to be an effect so that activeScope is updated after the FocusScope tree is complete.\n // It cannot be a useLayoutEffect because the parent of this node hasn't been attached in the tree yet.\n (0, $cgawC$useEffect)(()=>{\n const activeElement = (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined).activeElement;\n let scope = null;\n if ($9bf71ea28793e738$var$isElementInScope(activeElement, scopeRef.current)) {\n // We need to traverse the focusScope tree and find the bottom most scope that\n // contains the active element and set that as the activeScope.\n for (let node of $9bf71ea28793e738$export$d06fae2ee68b101e.traverse())if (node.scopeRef && $9bf71ea28793e738$var$isElementInScope(activeElement, node.scopeRef.current)) scope = node;\n if (scope === $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef)) $9bf71ea28793e738$var$activeScope = scope.scopeRef;\n }\n }, [\n scopeRef\n ]);\n // This layout effect cleanup is so that the tree node is removed synchronously with react before the RAF\n // in useRestoreFocus cleanup runs.\n (0, $cgawC$useLayoutEffect)(()=>{\n return ()=>{\n var _focusScopeTree_getTreeNode_parent, _focusScopeTree_getTreeNode;\n var _focusScopeTree_getTreeNode_parent_scopeRef;\n // Scope may have been re-parented.\n let parentScope = (_focusScopeTree_getTreeNode_parent_scopeRef = (_focusScopeTree_getTreeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : (_focusScopeTree_getTreeNode_parent = _focusScopeTree_getTreeNode.parent) === null || _focusScopeTree_getTreeNode_parent === void 0 ? void 0 : _focusScopeTree_getTreeNode_parent.scopeRef) !== null && _focusScopeTree_getTreeNode_parent_scopeRef !== void 0 ? _focusScopeTree_getTreeNode_parent_scopeRef : null;\n if ((scopeRef === $9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope(scopeRef, $9bf71ea28793e738$var$activeScope)) && (!parentScope || $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parentScope))) $9bf71ea28793e738$var$activeScope = parentScope;\n $9bf71ea28793e738$export$d06fae2ee68b101e.removeTreeNode(scopeRef);\n };\n }, [\n scopeRef\n ]);\n let focusManager = (0, $cgawC$useMemo)(()=>$9bf71ea28793e738$var$createFocusManagerForScope(scopeRef), []);\n let value = (0, $cgawC$useMemo)(()=>({\n focusManager: focusManager,\n parentNode: node\n }), [\n node,\n focusManager\n ]);\n return /*#__PURE__*/ (0, $cgawC$react).createElement($9bf71ea28793e738$var$FocusContext.Provider, {\n value: value\n }, /*#__PURE__*/ (0, $cgawC$react).createElement(\"span\", {\n \"data-focus-scope-start\": true,\n hidden: true,\n ref: startRef\n }), children, /*#__PURE__*/ (0, $cgawC$react).createElement(\"span\", {\n \"data-focus-scope-end\": true,\n hidden: true,\n ref: endRef\n }));\n}\nfunction $9bf71ea28793e738$export$10c5169755ce7bd7() {\n var _useContext;\n return (_useContext = (0, $cgawC$useContext)($9bf71ea28793e738$var$FocusContext)) === null || _useContext === void 0 ? void 0 : _useContext.focusManager;\n}\nfunction $9bf71ea28793e738$var$createFocusManagerForScope(scopeRef) {\n return {\n focusNext (opts = {}) {\n let scope = scopeRef.current;\n let { from: from, tabbable: tabbable, wrap: wrap, accept: accept } = opts;\n let node = from || (0, $cgawC$getOwnerDocument)(scope[0]).activeElement;\n let sentinel = scope[0].previousElementSibling;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode();\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusPrevious (opts = {}) {\n let scope = scopeRef.current;\n let { from: from, tabbable: tabbable, wrap: wrap, accept: accept } = opts;\n let node = from || (0, $cgawC$getOwnerDocument)(scope[0]).activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode();\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode();\n }\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode;\n },\n focusFirst (opts = {}) {\n let scope = scopeRef.current;\n let { tabbable: tabbable, accept: accept } = opts;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode();\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusLast (opts = {}) {\n let scope = scopeRef.current;\n let { tabbable: tabbable, accept: accept } = opts;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode();\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode;\n }\n };\n}\nconst $9bf71ea28793e738$var$focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable^=\"false\"])'\n];\nconst $9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR = $9bf71ea28793e738$var$focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n$9bf71ea28793e738$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst $9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR = $9bf71ea28793e738$var$focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\nfunction $9bf71ea28793e738$export$4c063cf1350e6fed(element) {\n return element.matches($9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR);\n}\nfunction $9bf71ea28793e738$var$getScopeRoot(scope) {\n return scope[0].parentElement;\n}\nfunction $9bf71ea28793e738$var$shouldContainFocus(scopeRef) {\n let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n while(scope && scope.scopeRef !== scopeRef){\n if (scope.contain) return false;\n scope = scope.parent;\n }\n return true;\n}\nfunction $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain) {\n let focusedNode = (0, $cgawC$useRef)(undefined);\n let raf = (0, $cgawC$useRef)(undefined);\n (0, $cgawC$useLayoutEffect)(()=>{\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = undefined;\n }\n return;\n }\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scope ? scope[0] : undefined);\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e)=>{\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !$9bf71ea28793e738$var$shouldContainFocus(scopeRef) || e.isComposing) return;\n let focusedElement = ownerDocument.activeElement;\n let scope = scopeRef.current;\n if (!scope || !$9bf71ea28793e738$var$isElementInScope(focusedElement, scope)) return;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: true\n }, scope);\n if (!focusedElement) return;\n walker.currentNode = focusedElement;\n let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n }\n e.preventDefault();\n if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);\n };\n let onFocus = (e)=>{\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) && $9bf71ea28793e738$var$isElementInScope(e.target, scopeRef.current)) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) focusedNode.current.focus();\n else if ($9bf71ea28793e738$var$activeScope && $9bf71ea28793e738$var$activeScope.current) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);\n } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef)) focusedNode.current = e.target;\n };\n let onBlur = (e)=>{\n // Firefox doesn't shift focus back to the Dialog properly without this\n if (raf.current) cancelAnimationFrame(raf.current);\n raf.current = requestAnimationFrame(()=>{\n // Patches infinite focus coersion loop for Android Talkback where the user isn't able to move the virtual cursor\n // if within a containing focus scope. Bug filed against Chrome: https://issuetracker.google.com/issues/384844019.\n // Note that this means focus can leave focus containing modals due to this, but it is isolated to Chrome Talkback.\n let modality = (0, $cgawC$getInteractionModality)();\n let shouldSkipFocusRestore = (modality === 'virtual' || modality === null) && (0, $cgawC$isAndroid)() && (0, $cgawC$isChrome)();\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (!shouldSkipFocusRestore && ownerDocument.activeElement && $9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(ownerDocument.activeElement, scopeRef)) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n if (ownerDocument.body.contains(e.target)) {\n var _focusedNode_current;\n focusedNode.current = e.target;\n (_focusedNode_current = focusedNode.current) === null || _focusedNode_current === void 0 ? void 0 : _focusedNode_current.focus();\n } else if ($9bf71ea28793e738$var$activeScope.current) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);\n }\n });\n };\n ownerDocument.addEventListener('keydown', onKeyDown, false);\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusin', onFocus, false));\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusout', onBlur, false));\n return ()=>{\n ownerDocument.removeEventListener('keydown', onKeyDown, false);\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusin', onFocus, false));\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusout', onBlur, false));\n };\n }, [\n scopeRef,\n contain\n ]);\n // This is a useLayoutEffect so it is guaranteed to run before our async synthetic blur\n (0, $cgawC$useLayoutEffect)(()=>{\n return ()=>{\n if (raf.current) cancelAnimationFrame(raf.current);\n };\n }, [\n raf\n ]);\n}\nfunction $9bf71ea28793e738$var$isElementInAnyScope(element) {\n return $9bf71ea28793e738$var$isElementInChildScope(element);\n}\nfunction $9bf71ea28793e738$var$isElementInScope(element, scope) {\n if (!element) return false;\n if (!scope) return false;\n return scope.some((node)=>node.contains(element));\n}\nfunction $9bf71ea28793e738$var$isElementInChildScope(element, scope = null) {\n // If the element is within a top layer element (e.g. toasts), always allow moving focus there.\n if (element instanceof Element && element.closest('[data-react-aria-top-layer]')) return true;\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let { scopeRef: s } of $9bf71ea28793e738$export$d06fae2ee68b101e.traverse($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope))){\n if (s && $9bf71ea28793e738$var$isElementInScope(element, s.current)) return true;\n }\n return false;\n}\nfunction $9bf71ea28793e738$export$1258395f99bf9cbf(element) {\n return $9bf71ea28793e738$var$isElementInChildScope(element, $9bf71ea28793e738$var$activeScope);\n}\nfunction $9bf71ea28793e738$var$isAncestorScope(ancestor, scope) {\n var _focusScopeTree_getTreeNode;\n let parent = (_focusScopeTree_getTreeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : _focusScopeTree_getTreeNode.parent;\n while(parent){\n if (parent.scopeRef === ancestor) return true;\n parent = parent.parent;\n }\n return false;\n}\nfunction $9bf71ea28793e738$var$focusElement(element, scroll = false) {\n if (element != null && !scroll) try {\n (0, $6a99195332edec8b$export$80f3e147d781571c)(element);\n } catch {\n // ignore\n }\n else if (element != null) try {\n element.focus();\n } catch {\n // ignore\n }\n}\nfunction $9bf71ea28793e738$var$getFirstInScope(scope, tabbable = true) {\n let sentinel = scope[0].previousElementSibling;\n let scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: tabbable\n }, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n scopeRoot = $9bf71ea28793e738$var$getScopeRoot(scope);\n walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(scopeRoot, {\n tabbable: false\n }, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n return nextNode;\n}\nfunction $9bf71ea28793e738$var$focusFirstInScope(scope, tabbable = true) {\n $9bf71ea28793e738$var$focusElement($9bf71ea28793e738$var$getFirstInScope(scope, tabbable));\n}\nfunction $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus) {\n const autoFocusRef = (0, $cgawC$react).useRef(autoFocus);\n (0, $cgawC$useEffect)(()=>{\n if (autoFocusRef.current) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined);\n if (!$9bf71ea28793e738$var$isElementInScope(ownerDocument.activeElement, $9bf71ea28793e738$var$activeScope.current) && scopeRef.current) $9bf71ea28793e738$var$focusFirstInScope(scopeRef.current);\n }\n autoFocusRef.current = false;\n }, [\n scopeRef\n ]);\n}\nfunction $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restore, contain) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n (0, $cgawC$useLayoutEffect)(()=>{\n if (restore || contain) return;\n let scope = scopeRef.current;\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scope ? scope[0] : undefined);\n let onFocus = (e)=>{\n let target = e.target;\n if ($9bf71ea28793e738$var$isElementInScope(target, scopeRef.current)) $9bf71ea28793e738$var$activeScope = scopeRef;\n else if (!$9bf71ea28793e738$var$isElementInAnyScope(target)) $9bf71ea28793e738$var$activeScope = null;\n };\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusin', onFocus, false));\n return ()=>{\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusin', onFocus, false));\n };\n }, [\n scopeRef,\n restore,\n contain\n ]);\n}\nfunction $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef) {\n let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n while(scope && scope.scopeRef !== scopeRef){\n if (scope.nodeToRestore) return false;\n scope = scope.parent;\n }\n return (scope === null || scope === void 0 ? void 0 : scope.scopeRef) === scopeRef;\n}\nfunction $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n // eslint-disable-next-line no-restricted-globals\n const nodeToRestoreRef = (0, $cgawC$useRef)(typeof document !== 'undefined' ? (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined).activeElement : null);\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n (0, $cgawC$useLayoutEffect)(()=>{\n let scope = scopeRef.current;\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scope ? scope[0] : undefined);\n if (!restoreFocus || contain) return;\n let onFocus = ()=>{\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) && $9bf71ea28793e738$var$isElementInScope(ownerDocument.activeElement, scopeRef.current)) $9bf71ea28793e738$var$activeScope = scopeRef;\n };\n ownerDocument.addEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.addEventListener('focusin', onFocus, false));\n return ()=>{\n ownerDocument.removeEventListener('focusin', onFocus, false);\n scope === null || scope === void 0 ? void 0 : scope.forEach((element)=>element.removeEventListener('focusin', onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n scopeRef,\n contain\n ]);\n (0, $cgawC$useLayoutEffect)(()=>{\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined);\n if (!restoreFocus) return;\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e)=>{\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || !$9bf71ea28793e738$var$shouldContainFocus(scopeRef) || e.isComposing) return;\n let focusedElement = ownerDocument.activeElement;\n if (!$9bf71ea28793e738$var$isElementInChildScope(focusedElement, scopeRef) || !$9bf71ea28793e738$var$shouldRestoreFocus(scopeRef)) return;\n let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (!treeNode) return;\n let nodeToRestore = treeNode.nodeToRestore;\n // Create a DOM tree walker that matches all tabbable elements\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(ownerDocument.body, {\n tabbable: true\n });\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n if (!nodeToRestore || !ownerDocument.body.contains(nodeToRestore) || nodeToRestore === ownerDocument.body) {\n nodeToRestore = undefined;\n treeNode.nodeToRestore = undefined;\n }\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !$9bf71ea28793e738$var$isElementInChildScope(nextElement, scopeRef)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n while ($9bf71ea28793e738$var$isElementInChildScope(nextElement, scopeRef));\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);\n else // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!$9bf71ea28793e738$var$isElementInAnyScope(nodeToRestore)) focusedElement.blur();\n else $9bf71ea28793e738$var$focusElement(nodeToRestore, true);\n }\n };\n if (!contain) ownerDocument.addEventListener('keydown', onKeyDown, true);\n return ()=>{\n if (!contain) ownerDocument.removeEventListener('keydown', onKeyDown, true);\n };\n }, [\n scopeRef,\n restoreFocus,\n contain\n ]);\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n (0, $cgawC$useLayoutEffect)(()=>{\n const ownerDocument = (0, $cgawC$getOwnerDocument)(scopeRef.current ? scopeRef.current[0] : undefined);\n if (!restoreFocus) return;\n let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (!treeNode) return;\n var _nodeToRestoreRef_current;\n treeNode.nodeToRestore = (_nodeToRestoreRef_current = nodeToRestoreRef.current) !== null && _nodeToRestoreRef_current !== void 0 ? _nodeToRestoreRef_current : undefined;\n return ()=>{\n let treeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n if (!treeNode) return;\n let nodeToRestore = treeNode.nodeToRestore;\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n if (restoreFocus && nodeToRestore && (ownerDocument.activeElement && $9bf71ea28793e738$var$isElementInChildScope(ownerDocument.activeElement, scopeRef) || ownerDocument.activeElement === ownerDocument.body && $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef))) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = $9bf71ea28793e738$export$d06fae2ee68b101e.clone();\n requestAnimationFrame(()=>{\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (ownerDocument.activeElement === ownerDocument.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while(treeNode){\n if (treeNode.nodeToRestore && treeNode.nodeToRestore.isConnected) {\n $9bf71ea28793e738$var$restoreFocusToElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while(treeNode){\n if (treeNode.scopeRef && treeNode.scopeRef.current && $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(treeNode.scopeRef)) {\n let node = $9bf71ea28793e738$var$getFirstInScope(treeNode.scopeRef.current, true);\n $9bf71ea28793e738$var$restoreFocusToElement(node);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [\n scopeRef,\n restoreFocus\n ]);\n}\nfunction $9bf71ea28793e738$var$restoreFocusToElement(node) {\n // Dispatch a custom event that parent elements can intercept to customize focus restoration.\n // For example, virtualized collection components reuse DOM elements, so the original element\n // might still exist in the DOM but representing a different item.\n if (node.dispatchEvent(new CustomEvent($9bf71ea28793e738$var$RESTORE_FOCUS_EVENT, {\n bubbles: true,\n cancelable: true\n }))) $9bf71ea28793e738$var$focusElement(node);\n}\nfunction $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, opts, scope) {\n let selector = (opts === null || opts === void 0 ? void 0 : opts.tabbable) ? $9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR : $9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR;\n let walker = (0, $cgawC$getOwnerDocument)(root).createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode (node) {\n var _opts_from;\n // Skip nodes inside the starting node.\n if (opts === null || opts === void 0 ? void 0 : (_opts_from = opts.from) === null || _opts_from === void 0 ? void 0 : _opts_from.contains(node)) return NodeFilter.FILTER_REJECT;\n if (node.matches(selector) && (0, $645f2e67b85a24c9$export$e989c0fffaa6b27a)(node) && (!scope || $9bf71ea28793e738$var$isElementInScope(node, scope)) && (!(opts === null || opts === void 0 ? void 0 : opts.accept) || opts.accept(node))) return NodeFilter.FILTER_ACCEPT;\n return NodeFilter.FILTER_SKIP;\n }\n });\n if (opts === null || opts === void 0 ? void 0 : opts.from) walker.currentNode = opts.from;\n return walker;\n}\nfunction $9bf71ea28793e738$export$c5251b9e124bf29(ref, defaultOptions = {}) {\n return {\n focusNext (opts = {}) {\n let root = ref.current;\n if (!root) return null;\n let { from: from, tabbable: tabbable = defaultOptions.tabbable, wrap: wrap = defaultOptions.wrap, accept: accept = defaultOptions.accept } = opts;\n let node = from || (0, $cgawC$getOwnerDocument)(root).activeElement;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n if (root.contains(node)) walker.currentNode = node;\n let nextNode = walker.nextNode();\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode();\n }\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusPrevious (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return null;\n let { from: from, tabbable: tabbable = defaultOptions.tabbable, wrap: wrap = defaultOptions.wrap, accept: accept = defaultOptions.accept } = opts;\n let node = from || (0, $cgawC$getOwnerDocument)(root).activeElement;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n if (root.contains(node)) walker.currentNode = node;\n else {\n let next = $9bf71ea28793e738$var$last(walker);\n if (next) $9bf71ea28793e738$var$focusElement(next, true);\n return next !== null && next !== void 0 ? next : null;\n }\n let previousNode = walker.previousNode();\n if (!previousNode && wrap) {\n walker.currentNode = root;\n let lastNode = $9bf71ea28793e738$var$last(walker);\n if (!lastNode) // couldn't wrap\n return null;\n previousNode = lastNode;\n }\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode !== null && previousNode !== void 0 ? previousNode : null;\n },\n focusFirst (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return null;\n let { tabbable: tabbable = defaultOptions.tabbable, accept: accept = defaultOptions.accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n let nextNode = walker.nextNode();\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusLast (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return null;\n let { tabbable: tabbable = defaultOptions.tabbable, accept: accept = defaultOptions.accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n let next = $9bf71ea28793e738$var$last(walker);\n if (next) $9bf71ea28793e738$var$focusElement(next, true);\n return next !== null && next !== void 0 ? next : null;\n }\n };\n}\nfunction $9bf71ea28793e738$var$last(walker) {\n let next = undefined;\n let last;\n do {\n last = walker.lastChild();\n if (last) next = last;\n }while (last);\n return next;\n}\nclass $9bf71ea28793e738$var$Tree {\n get size() {\n return this.fastMap.size;\n }\n getTreeNode(data) {\n return this.fastMap.get(data);\n }\n addTreeNode(scopeRef, parent, nodeToRestore) {\n let parentNode = this.fastMap.get(parent !== null && parent !== void 0 ? parent : null);\n if (!parentNode) return;\n let node = new $9bf71ea28793e738$var$TreeNode({\n scopeRef: scopeRef\n });\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) node.nodeToRestore = nodeToRestore;\n }\n addNode(node) {\n this.fastMap.set(node.scopeRef, node);\n }\n removeTreeNode(scopeRef) {\n // never remove the root\n if (scopeRef === null) return;\n let node = this.fastMap.get(scopeRef);\n if (!node) return;\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse())if (current !== node && node.nodeToRestore && current.nodeToRestore && node.scopeRef && node.scopeRef.current && $9bf71ea28793e738$var$isElementInScope(current.nodeToRestore, node.scopeRef.current)) current.nodeToRestore = node.nodeToRestore;\n let children = node.children;\n if (parentNode) {\n parentNode.removeChild(node);\n if (children.size > 0) children.forEach((child)=>parentNode && parentNode.addChild(child));\n }\n this.fastMap.delete(node.scopeRef);\n }\n // Pre Order Depth First\n *traverse(node = this.root) {\n if (node.scopeRef != null) yield node;\n if (node.children.size > 0) for (let child of node.children)yield* this.traverse(child);\n }\n clone() {\n var _node_parent;\n let newTree = new $9bf71ea28793e738$var$Tree();\n var _node_parent_scopeRef;\n for (let node of this.traverse())newTree.addTreeNode(node.scopeRef, (_node_parent_scopeRef = (_node_parent = node.parent) === null || _node_parent === void 0 ? void 0 : _node_parent.scopeRef) !== null && _node_parent_scopeRef !== void 0 ? _node_parent_scopeRef : null, node.nodeToRestore);\n return newTree;\n }\n constructor(){\n this.fastMap = new Map();\n this.root = new $9bf71ea28793e738$var$TreeNode({\n scopeRef: null\n });\n this.fastMap.set(null, this.root);\n }\n}\nclass $9bf71ea28793e738$var$TreeNode {\n addChild(node) {\n this.children.add(node);\n node.parent = this;\n }\n removeChild(node) {\n this.children.delete(node);\n node.parent = undefined;\n }\n constructor(props){\n this.children = new Set();\n this.contain = false;\n this.scopeRef = props.scopeRef;\n }\n}\nlet $9bf71ea28793e738$export$d06fae2ee68b101e = new $9bf71ea28793e738$var$Tree();\n\n\nexport {$9bf71ea28793e738$export$20e40289641fbbb6 as FocusScope, $9bf71ea28793e738$export$d06fae2ee68b101e as focusScopeTree, $9bf71ea28793e738$export$10c5169755ce7bd7 as useFocusManager, $9bf71ea28793e738$export$2d6ec8fc375ceafa as getFocusableTreeWalker, $9bf71ea28793e738$export$4c063cf1350e6fed as isFocusable, $9bf71ea28793e738$export$1258395f99bf9cbf as isElementInChildOfActiveScope, $9bf71ea28793e738$export$c5251b9e124bf29 as createFocusManager};\n//# sourceMappingURL=FocusScope.module.js.map\n","import {isFocusVisible as $isWE5$isFocusVisible, useFocusVisibleListener as $isWE5$useFocusVisibleListener, useFocus as $isWE5$useFocus, useFocusWithin as $isWE5$useFocusWithin} from \"@react-aria/interactions\";\nimport {useRef as $isWE5$useRef, useState as $isWE5$useState, useCallback as $isWE5$useCallback} from \"react\";\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n let state = (0, $isWE5$useRef)({\n isFocused: false,\n isFocusVisible: autoFocus || (0, $isWE5$isFocusVisible)()\n });\n let [isFocused, setFocused] = (0, $isWE5$useState)(false);\n let [isFocusVisibleState, setFocusVisible] = (0, $isWE5$useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n let updateState = (0, $isWE5$useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n let onFocusChange = (0, $isWE5$useCallback)((isFocused)=>{\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [\n updateState\n ]);\n (0, $isWE5$useFocusVisibleListener)((isFocusVisible)=>{\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {\n isTextInput: isTextInput\n });\n let { focusProps: focusProps } = (0, $isWE5$useFocus)({\n isDisabled: within,\n onFocusChange: onFocusChange\n });\n let { focusWithinProps: focusWithinProps } = (0, $isWE5$useFocusWithin)({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n return {\n isFocused: isFocused,\n isFocusVisible: isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n\n\nexport {$f7dceffc5ad7768b$export$4e328f61c538687f as useFocusRing};\n//# sourceMappingURL=useFocusRing.module.js.map\n","import {getFocusableTreeWalker as $9bf71ea28793e738$export$2d6ec8fc375ceafa} from \"./FocusScope.mjs\";\nimport {useLayoutEffect as $hGAaG$useLayoutEffect} from \"@react-aria/utils\";\nimport {useState as $hGAaG$useState} from \"react\";\n\n/*\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\n\nfunction $83013635b024ae3d$export$eac1895992b9f3d6(ref, options) {\n let isDisabled = options === null || options === void 0 ? void 0 : options.isDisabled;\n let [hasTabbableChild, setHasTabbableChild] = (0, $hGAaG$useState)(false);\n (0, $hGAaG$useLayoutEffect)(()=>{\n if ((ref === null || ref === void 0 ? void 0 : ref.current) && !isDisabled) {\n let update = ()=>{\n if (ref.current) {\n let walker = (0, $9bf71ea28793e738$export$2d6ec8fc375ceafa)(ref.current, {\n tabbable: true\n });\n setHasTabbableChild(!!walker.nextNode());\n }\n };\n update();\n // Update when new elements are inserted, or the tabIndex/disabled attribute updates.\n let observer = new MutationObserver(update);\n observer.observe(ref.current, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\n 'tabIndex',\n 'disabled'\n ]\n });\n return ()=>{\n // Disconnect mutation observer when a React update occurs on the top-level component\n // so we update synchronously after re-rendering. Otherwise React will emit act warnings\n // in tests since mutation observers fire asynchronously. The mutation observer is necessary\n // so we also update if a child component re-renders and adds/removes something tabbable.\n observer.disconnect();\n };\n }\n });\n return isDisabled ? false : hasTabbableChild;\n}\n\n\nexport {$83013635b024ae3d$export$eac1895992b9f3d6 as useHasTabbableChild};\n//# sourceMappingURL=useHasTabbableChild.module.js.map\n","/*\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 */ // https://en.wikipedia.org/wiki/Right-to-left\nconst $148a7a147e38ea7f$var$RTL_SCRIPTS = new Set([\n 'Arab',\n 'Syrc',\n 'Samr',\n 'Mand',\n 'Thaa',\n 'Mend',\n 'Nkoo',\n 'Adlm',\n 'Rohg',\n 'Hebr'\n]);\nconst $148a7a147e38ea7f$var$RTL_LANGS = new Set([\n 'ae',\n 'ar',\n 'arc',\n 'bcc',\n 'bqi',\n 'ckb',\n 'dv',\n 'fa',\n 'glk',\n 'he',\n 'ku',\n 'mzn',\n 'nqo',\n 'pnb',\n 'ps',\n 'sd',\n 'ug',\n 'ur',\n 'yi'\n]);\nfunction $148a7a147e38ea7f$export$702d680b21cbd764(localeString) {\n // If the Intl.Locale API is available, use it to get the locale's text direction.\n if (Intl.Locale) {\n let locale = new Intl.Locale(localeString).maximize();\n // Use the text info object to get the direction if possible.\n // @ts-ignore - this was implemented as a property by some browsers before it was standardized as a function.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getTextInfo\n let textInfo = typeof locale.getTextInfo === 'function' ? locale.getTextInfo() : locale.textInfo;\n if (textInfo) return textInfo.direction === 'rtl';\n // Fallback: guess using the script.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n if (locale.script) return $148a7a147e38ea7f$var$RTL_SCRIPTS.has(locale.script);\n }\n // If not, just guess by the language (first part of the locale)\n let lang = localeString.split('-')[0];\n return $148a7a147e38ea7f$var$RTL_LANGS.has(lang);\n}\n\n\nexport {$148a7a147e38ea7f$export$702d680b21cbd764 as isRTL};\n//# sourceMappingURL=utils.module.js.map\n","import {isRTL as $148a7a147e38ea7f$export$702d680b21cbd764} from \"./utils.mjs\";\nimport {useState as $ffhGL$useState, useEffect as $ffhGL$useEffect} from \"react\";\nimport {useIsSSR as $ffhGL$useIsSSR} from \"@react-aria/ssr\";\n\n/*\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\n\n// Locale passed from server by PackageLocalizationProvider.\nconst $1e5a04cdaf7d1af8$var$localeSymbol = Symbol.for('react-aria.i18n.locale');\nfunction $1e5a04cdaf7d1af8$export$f09106e7c6677ec5() {\n let locale = typeof window !== 'undefined' && window[$1e5a04cdaf7d1af8$var$localeSymbol] || typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage) || 'en-US';\n try {\n Intl.DateTimeFormat.supportedLocalesOf([\n locale\n ]);\n } catch {\n locale = 'en-US';\n }\n return {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? 'rtl' : 'ltr'\n };\n}\nlet $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\nlet $1e5a04cdaf7d1af8$var$listeners = new Set();\nfunction $1e5a04cdaf7d1af8$var$updateLocale() {\n $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\n for (let listener of $1e5a04cdaf7d1af8$var$listeners)listener($1e5a04cdaf7d1af8$var$currentLocale);\n}\nfunction $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a() {\n let isSSR = (0, $ffhGL$useIsSSR)();\n let [defaultLocale, setDefaultLocale] = (0, $ffhGL$useState)($1e5a04cdaf7d1af8$var$currentLocale);\n (0, $ffhGL$useEffect)(()=>{\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.addEventListener('languagechange', $1e5a04cdaf7d1af8$var$updateLocale);\n $1e5a04cdaf7d1af8$var$listeners.add(setDefaultLocale);\n return ()=>{\n $1e5a04cdaf7d1af8$var$listeners.delete(setDefaultLocale);\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.removeEventListener('languagechange', $1e5a04cdaf7d1af8$var$updateLocale);\n };\n }, []);\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) return {\n locale: 'en-US',\n direction: 'ltr'\n };\n return defaultLocale;\n}\n\n\nexport {$1e5a04cdaf7d1af8$export$f09106e7c6677ec5 as getDefaultLocale, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a as useDefaultLocale};\n//# sourceMappingURL=useDefaultLocale.module.js.map\n","import {isRTL as $148a7a147e38ea7f$export$702d680b21cbd764} from \"./utils.mjs\";\nimport {useDefaultLocale as $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a} from \"./useDefaultLocale.mjs\";\nimport $h9FiU$react, {useContext as $h9FiU$useContext} from \"react\";\n\n/*\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\n\nconst $18f2051aff69b9bf$var$I18nContext = /*#__PURE__*/ (0, $h9FiU$react).createContext(null);\nfunction $18f2051aff69b9bf$export$a54013f0d02a8f82(props) {\n let { locale: locale, children: children } = props;\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let value = (0, $h9FiU$react).useMemo(()=>{\n if (!locale) return defaultLocale;\n return {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? 'rtl' : 'ltr'\n };\n }, [\n defaultLocale,\n locale\n ]);\n return /*#__PURE__*/ (0, $h9FiU$react).createElement($18f2051aff69b9bf$var$I18nContext.Provider, {\n value: value\n }, children);\n}\nfunction $18f2051aff69b9bf$export$43bb16f9c6d9e3f7() {\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let context = (0, $h9FiU$useContext)($18f2051aff69b9bf$var$I18nContext);\n return context || defaultLocale;\n}\n\n\nexport {$18f2051aff69b9bf$export$a54013f0d02a8f82 as I18nProvider, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7 as useLocale};\n//# sourceMappingURL=context.module.js.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/*\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 */ const $5b160d28a433310d$var$localeSymbol = Symbol.for('react-aria.i18n.locale');\nconst $5b160d28a433310d$var$stringsSymbol = Symbol.for('react-aria.i18n.strings');\nlet $5b160d28a433310d$var$cachedGlobalStrings = undefined;\nclass $5b160d28a433310d$export$c17fa47878dc55b6 {\n /** Returns a localized string for the given key and locale. */ getStringForLocale(key, locale) {\n let strings = this.getStringsForLocale(locale);\n let string = strings[key];\n if (!string) throw new Error(`Could not find intl message ${key} in ${locale} locale`);\n return string;\n }\n /** Returns all localized strings for the given locale. */ getStringsForLocale(locale) {\n let strings = this.strings[locale];\n if (!strings) {\n strings = $5b160d28a433310d$var$getStringsForLocale(locale, this.strings, this.defaultLocale);\n this.strings[locale] = strings;\n }\n return strings;\n }\n static getGlobalDictionaryForPackage(packageName) {\n if (typeof window === 'undefined') return null;\n let locale = window[$5b160d28a433310d$var$localeSymbol];\n if ($5b160d28a433310d$var$cachedGlobalStrings === undefined) {\n let globalStrings = window[$5b160d28a433310d$var$stringsSymbol];\n if (!globalStrings) return null;\n $5b160d28a433310d$var$cachedGlobalStrings = {};\n for(let pkg in globalStrings)$5b160d28a433310d$var$cachedGlobalStrings[pkg] = new $5b160d28a433310d$export$c17fa47878dc55b6({\n [locale]: globalStrings[pkg]\n }, locale);\n }\n let dictionary = $5b160d28a433310d$var$cachedGlobalStrings === null || $5b160d28a433310d$var$cachedGlobalStrings === void 0 ? void 0 : $5b160d28a433310d$var$cachedGlobalStrings[packageName];\n if (!dictionary) throw new Error(`Strings for package \"${packageName}\" were not included by LocalizedStringProvider. Please add it to the list passed to createLocalizedStringDictionary.`);\n return dictionary;\n }\n constructor(messages, defaultLocale = 'en-US'){\n // Clone messages so we don't modify the original object.\n // Filter out entries with falsy values which may have been caused by applying optimize-locales-plugin.\n this.strings = Object.fromEntries(Object.entries(messages).filter(([, v])=>v));\n this.defaultLocale = defaultLocale;\n }\n}\nfunction $5b160d28a433310d$var$getStringsForLocale(locale, strings, defaultLocale = 'en-US') {\n // If there is an exact match, use it.\n if (strings[locale]) return strings[locale];\n // Attempt to find the closest match by language.\n // For example, if the locale is fr-CA (French Canadian), but there is only\n // an fr-FR (France) set of strings, use that.\n // This could be replaced with Intl.LocaleMatcher once it is supported.\n // https://github.com/tc39/proposal-intl-localematcher\n let language = $5b160d28a433310d$var$getLanguage(locale);\n if (strings[language]) return strings[language];\n for(let key in strings){\n if (key.startsWith(language + '-')) return strings[key];\n }\n // Nothing close, use english.\n return strings[defaultLocale];\n}\nfunction $5b160d28a433310d$var$getLanguage(locale) {\n // @ts-ignore\n if (Intl.Locale) // @ts-ignore\n return new Intl.Locale(locale).language;\n return locale.split('-')[0];\n}\n\n\nexport {$5b160d28a433310d$export$c17fa47878dc55b6 as LocalizedStringDictionary};\n//# sourceMappingURL=LocalizedStringDictionary.module.js.map\n","/*\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 */ const $6db58dc88e78b024$var$pluralRulesCache = new Map();\nconst $6db58dc88e78b024$var$numberFormatCache = new Map();\nclass $6db58dc88e78b024$export$2f817fcdc4b89ae0 {\n /** Formats a localized string for the given key with the provided variables. */ format(key, variables) {\n let message = this.strings.getStringForLocale(key, this.locale);\n return typeof message === 'function' ? message(variables, this) : message;\n }\n plural(count, options, type = 'cardinal') {\n let opt = options['=' + count];\n if (opt) return typeof opt === 'function' ? opt() : opt;\n let key = this.locale + ':' + type;\n let pluralRules = $6db58dc88e78b024$var$pluralRulesCache.get(key);\n if (!pluralRules) {\n pluralRules = new Intl.PluralRules(this.locale, {\n type: type\n });\n $6db58dc88e78b024$var$pluralRulesCache.set(key, pluralRules);\n }\n let selected = pluralRules.select(count);\n opt = options[selected] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n number(value) {\n let numberFormat = $6db58dc88e78b024$var$numberFormatCache.get(this.locale);\n if (!numberFormat) {\n numberFormat = new Intl.NumberFormat(this.locale);\n $6db58dc88e78b024$var$numberFormatCache.set(this.locale, numberFormat);\n }\n return numberFormat.format(value);\n }\n select(options, value) {\n let opt = options[value] || options.other;\n return typeof opt === 'function' ? opt() : opt;\n }\n constructor(locale, strings){\n this.locale = locale;\n this.strings = strings;\n }\n}\n\n\nexport {$6db58dc88e78b024$export$2f817fcdc4b89ae0 as LocalizedStringFormatter};\n//# sourceMappingURL=LocalizedStringFormatter.module.js.map\n","import {useLocale as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7} from \"./context.mjs\";\nimport {LocalizedStringDictionary as $6ksNp$LocalizedStringDictionary, LocalizedStringFormatter as $6ksNp$LocalizedStringFormatter} from \"@internationalized/string\";\nimport {useMemo as $6ksNp$useMemo} from \"react\";\n\n/*\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\n\nconst $fca6afa0e843324b$var$cache = new WeakMap();\nfunction $fca6afa0e843324b$var$getCachedDictionary(strings) {\n let dictionary = $fca6afa0e843324b$var$cache.get(strings);\n if (!dictionary) {\n dictionary = new (0, $6ksNp$LocalizedStringDictionary)(strings);\n $fca6afa0e843324b$var$cache.set(strings, dictionary);\n }\n return dictionary;\n}\nfunction $fca6afa0e843324b$export$87b761675e8eaa10(strings, packageName) {\n return packageName && (0, $6ksNp$LocalizedStringDictionary).getGlobalDictionaryForPackage(packageName) || $fca6afa0e843324b$var$getCachedDictionary(strings);\n}\nfunction $fca6afa0e843324b$export$f12b703ca79dfbb1(strings, packageName) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let dictionary = $fca6afa0e843324b$export$87b761675e8eaa10(strings, packageName);\n return (0, $6ksNp$useMemo)(()=>new (0, $6ksNp$LocalizedStringFormatter)(locale, dictionary), [\n locale,\n dictionary\n ]);\n}\n\n\nexport {$fca6afa0e843324b$export$87b761675e8eaa10 as useLocalizedStringDictionary, $fca6afa0e843324b$export$f12b703ca79dfbb1 as useLocalizedStringFormatter};\n//# sourceMappingURL=useLocalizedStringFormatter.module.js.map\n","import {useLocale as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7} from \"./context.mjs\";\n\n/*\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 */ \nlet $325a3faab7a68acd$var$cache = new Map();\nfunction $325a3faab7a68acd$export$a16aca283550c30d(options) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : '');\n if ($325a3faab7a68acd$var$cache.has(cacheKey)) return $325a3faab7a68acd$var$cache.get(cacheKey);\n let formatter = new Intl.Collator(locale, options);\n $325a3faab7a68acd$var$cache.set(cacheKey, formatter);\n return formatter;\n}\n\n\nexport {$325a3faab7a68acd$export$a16aca283550c30d as useCollator};\n//# sourceMappingURL=useCollator.module.js.map\n","import {mergeProps as $7JYt2$mergeProps} from \"@react-aria/utils\";\nimport $7JYt2$react, {useState as $7JYt2$useState, useMemo as $7JYt2$useMemo} from \"react\";\nimport {useFocusWithin as $7JYt2$useFocusWithin} from \"@react-aria/interactions\";\n\n/*\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\n\nconst $5c3e21d68f1c4674$var$styles = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px',\n whiteSpace: 'nowrap'\n};\nfunction $5c3e21d68f1c4674$export$a966af930f325cab(props = {}) {\n let { style: style, isFocusable: isFocusable } = props;\n let [isFocused, setFocused] = (0, $7JYt2$useState)(false);\n let { focusWithinProps: focusWithinProps } = (0, $7JYt2$useFocusWithin)({\n isDisabled: !isFocusable,\n onFocusWithinChange: (val)=>setFocused(val)\n });\n // If focused, don't hide the element.\n let combinedStyles = (0, $7JYt2$useMemo)(()=>{\n if (isFocused) return style;\n else if (style) return {\n ...$5c3e21d68f1c4674$var$styles,\n ...style\n };\n else return $5c3e21d68f1c4674$var$styles;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isFocused\n ]);\n return {\n visuallyHiddenProps: {\n ...focusWithinProps,\n style: combinedStyles\n }\n };\n}\nfunction $5c3e21d68f1c4674$export$439d29a4e110a164(props) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let { children: children, elementType: Element = 'div', isFocusable: isFocusable, style: style, ...otherProps } = props;\n let { visuallyHiddenProps: visuallyHiddenProps } = $5c3e21d68f1c4674$export$a966af930f325cab(props);\n return /*#__PURE__*/ (0, $7JYt2$react).createElement(Element, (0, $7JYt2$mergeProps)(otherProps, visuallyHiddenProps), children);\n}\n\n\nexport {$5c3e21d68f1c4674$export$a966af930f325cab as useVisuallyHidden, $5c3e21d68f1c4674$export$439d29a4e110a164 as VisuallyHidden};\n//# sourceMappingURL=VisuallyHidden.module.js.map\n","import {isWebKit as $fZVmS$isWebKit, clamp as $fZVmS$clamp} from \"@react-aria/utils\";\n\n/*\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 */ \nconst $edcf132a9284368a$var$AXIS = {\n top: 'top',\n bottom: 'top',\n left: 'left',\n right: 'left'\n};\nconst $edcf132a9284368a$var$FLIPPED_DIRECTION = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nconst $edcf132a9284368a$var$CROSS_AXIS = {\n top: 'left',\n left: 'top'\n};\nconst $edcf132a9284368a$var$AXIS_SIZE = {\n top: 'height',\n left: 'width'\n};\nconst $edcf132a9284368a$var$TOTAL_SIZE = {\n width: 'totalWidth',\n height: 'totalHeight'\n};\nconst $edcf132a9284368a$var$PARSED_PLACEMENT_CACHE = {};\nlet $edcf132a9284368a$var$visualViewport = typeof document !== 'undefined' ? window.visualViewport : null;\nfunction $edcf132a9284368a$var$getContainerDimensions(containerNode) {\n let width = 0, height = 0, totalWidth = 0, totalHeight = 0, top = 0, left = 0;\n let scroll = {};\n var _visualViewport_scale;\n let isPinchZoomedIn = ((_visualViewport_scale = $edcf132a9284368a$var$visualViewport === null || $edcf132a9284368a$var$visualViewport === void 0 ? void 0 : $edcf132a9284368a$var$visualViewport.scale) !== null && _visualViewport_scale !== void 0 ? _visualViewport_scale : 1) > 1;\n if (containerNode.tagName === 'BODY') {\n let documentElement = document.documentElement;\n totalWidth = documentElement.clientWidth;\n totalHeight = documentElement.clientHeight;\n var _visualViewport_width;\n width = (_visualViewport_width = $edcf132a9284368a$var$visualViewport === null || $edcf132a9284368a$var$visualViewport === void 0 ? void 0 : $edcf132a9284368a$var$visualViewport.width) !== null && _visualViewport_width !== void 0 ? _visualViewport_width : totalWidth;\n var _visualViewport_height;\n height = (_visualViewport_height = $edcf132a9284368a$var$visualViewport === null || $edcf132a9284368a$var$visualViewport === void 0 ? void 0 : $edcf132a9284368a$var$visualViewport.height) !== null && _visualViewport_height !== void 0 ? _visualViewport_height : totalHeight;\n scroll.top = documentElement.scrollTop || containerNode.scrollTop;\n scroll.left = documentElement.scrollLeft || containerNode.scrollLeft;\n // The goal of the below is to get a top/left value that represents the top/left of the visual viewport with\n // respect to the layout viewport origin. This combined with the scrollTop/scrollLeft will allow us to calculate\n // coordinates/values with respect to the visual viewport or with respect to the layout viewport.\n if ($edcf132a9284368a$var$visualViewport) {\n top = $edcf132a9284368a$var$visualViewport.offsetTop;\n left = $edcf132a9284368a$var$visualViewport.offsetLeft;\n }\n } else {\n ({ width: width, height: height, top: top, left: left } = $edcf132a9284368a$var$getOffset(containerNode));\n scroll.top = containerNode.scrollTop;\n scroll.left = containerNode.scrollLeft;\n totalWidth = width;\n totalHeight = height;\n }\n if ((0, $fZVmS$isWebKit)() && (containerNode.tagName === 'BODY' || containerNode.tagName === 'HTML') && isPinchZoomedIn) {\n // Safari will report a non-zero scrollTop/Left for the non-scrolling body/HTML element when pinch zoomed in unlike other browsers.\n // Set to zero for parity calculations so we get consistent positioning of overlays across all browsers.\n // Also switch to visualViewport.pageTop/pageLeft so that we still accomodate for scroll positioning for body/HTML elements that are actually scrollable\n // before pinch zoom happens\n scroll.top = 0;\n scroll.left = 0;\n var _visualViewport_pageTop;\n top = (_visualViewport_pageTop = $edcf132a9284368a$var$visualViewport === null || $edcf132a9284368a$var$visualViewport === void 0 ? void 0 : $edcf132a9284368a$var$visualViewport.pageTop) !== null && _visualViewport_pageTop !== void 0 ? _visualViewport_pageTop : 0;\n var _visualViewport_pageLeft;\n left = (_visualViewport_pageLeft = $edcf132a9284368a$var$visualViewport === null || $edcf132a9284368a$var$visualViewport === void 0 ? void 0 : $edcf132a9284368a$var$visualViewport.pageLeft) !== null && _visualViewport_pageLeft !== void 0 ? _visualViewport_pageLeft : 0;\n }\n return {\n width: width,\n height: height,\n totalWidth: totalWidth,\n totalHeight: totalHeight,\n scroll: scroll,\n top: top,\n left: left\n };\n}\nfunction $edcf132a9284368a$var$getScroll(node) {\n return {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n}\n// Determines the amount of space required when moving the overlay to ensure it remains in the boundary\nfunction $edcf132a9284368a$var$getDelta(axis, offset, size, // The dimensions of the boundary element that the popover is\n// positioned within (most of the time this is the <body>).\nboundaryDimensions, // The dimensions of the containing block element that the popover is\n// positioned relative to (e.g. parent with position: relative).\n// Usually this is the same as the boundary element, but if the popover\n// is portaled somewhere other than the body and has an ancestor with\n// position: relative/absolute, it will be different.\ncontainerDimensions, padding, containerOffsetWithBoundary) {\n var _containerDimensions_scroll_axis;\n let containerScroll = (_containerDimensions_scroll_axis = containerDimensions.scroll[axis]) !== null && _containerDimensions_scroll_axis !== void 0 ? _containerDimensions_scroll_axis : 0;\n // The height/width of the boundary. Matches the axis along which we are adjusting the overlay position\n let boundarySize = boundaryDimensions[$edcf132a9284368a$var$AXIS_SIZE[axis]];\n // Calculate the edges of the boundary (accomodating for the boundary padding) and the edges of the overlay.\n // Note that these values are with respect to the visual viewport (aka 0,0 is the top left of the viewport)\n let boundaryStartEdge = boundaryDimensions.scroll[$edcf132a9284368a$var$AXIS[axis]] + padding;\n let boundaryEndEdge = boundarySize + boundaryDimensions.scroll[$edcf132a9284368a$var$AXIS[axis]] - padding;\n let startEdgeOffset = offset - containerScroll + containerOffsetWithBoundary[axis] - boundaryDimensions[$edcf132a9284368a$var$AXIS[axis]];\n let endEdgeOffset = offset - containerScroll + size + containerOffsetWithBoundary[axis] - boundaryDimensions[$edcf132a9284368a$var$AXIS[axis]];\n // If any of the overlay edges falls outside of the boundary, shift the overlay the required amount to align one of the overlay's\n // edges with the closest boundary edge.\n if (startEdgeOffset < boundaryStartEdge) return boundaryStartEdge - startEdgeOffset;\n else if (endEdgeOffset > boundaryEndEdge) return Math.max(boundaryEndEdge - endEdgeOffset, boundaryStartEdge - startEdgeOffset);\n else return 0;\n}\nfunction $edcf132a9284368a$var$getMargins(node) {\n let style = window.getComputedStyle(node);\n return {\n top: parseInt(style.marginTop, 10) || 0,\n bottom: parseInt(style.marginBottom, 10) || 0,\n left: parseInt(style.marginLeft, 10) || 0,\n right: parseInt(style.marginRight, 10) || 0\n };\n}\nfunction $edcf132a9284368a$var$parsePlacement(input) {\n if ($edcf132a9284368a$var$PARSED_PLACEMENT_CACHE[input]) return $edcf132a9284368a$var$PARSED_PLACEMENT_CACHE[input];\n let [placement, crossPlacement] = input.split(' ');\n let axis = $edcf132a9284368a$var$AXIS[placement] || 'right';\n let crossAxis = $edcf132a9284368a$var$CROSS_AXIS[axis];\n if (!$edcf132a9284368a$var$AXIS[crossPlacement]) crossPlacement = 'center';\n let size = $edcf132a9284368a$var$AXIS_SIZE[axis];\n let crossSize = $edcf132a9284368a$var$AXIS_SIZE[crossAxis];\n $edcf132a9284368a$var$PARSED_PLACEMENT_CACHE[input] = {\n placement: placement,\n crossPlacement: crossPlacement,\n axis: axis,\n crossAxis: crossAxis,\n size: size,\n crossSize: crossSize\n };\n return $edcf132a9284368a$var$PARSED_PLACEMENT_CACHE[input];\n}\nfunction $edcf132a9284368a$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset) {\n let { placement: placement, crossPlacement: crossPlacement, axis: axis, crossAxis: crossAxis, size: size, crossSize: crossSize } = placementInfo;\n let position = {};\n var _childOffset_crossAxis;\n // button position\n position[crossAxis] = (_childOffset_crossAxis = childOffset[crossAxis]) !== null && _childOffset_crossAxis !== void 0 ? _childOffset_crossAxis : 0;\n var _childOffset_crossSize, _overlaySize_crossSize, _childOffset_crossSize1, _overlaySize_crossSize1;\n if (crossPlacement === 'center') // + (button size / 2) - (overlay size / 2)\n // at this point the overlay center should match the button center\n position[crossAxis] += (((_childOffset_crossSize = childOffset[crossSize]) !== null && _childOffset_crossSize !== void 0 ? _childOffset_crossSize : 0) - ((_overlaySize_crossSize = overlaySize[crossSize]) !== null && _overlaySize_crossSize !== void 0 ? _overlaySize_crossSize : 0)) / 2;\n else if (crossPlacement !== crossAxis) // + (button size) - (overlay size)\n // at this point the overlay bottom should match the button bottom\n position[crossAxis] += ((_childOffset_crossSize1 = childOffset[crossSize]) !== null && _childOffset_crossSize1 !== void 0 ? _childOffset_crossSize1 : 0) - ((_overlaySize_crossSize1 = overlaySize[crossSize]) !== null && _overlaySize_crossSize1 !== void 0 ? _overlaySize_crossSize1 : 0);\n /* else {\n the overlay top should match the button top\n } */ \n position[crossAxis] += crossOffset;\n // overlay top overlapping arrow with button bottom\n const minPosition = childOffset[crossAxis] - overlaySize[crossSize] + arrowSize + arrowBoundaryOffset;\n // overlay bottom overlapping arrow with button top\n const maxPosition = childOffset[crossAxis] + childOffset[crossSize] - arrowSize - arrowBoundaryOffset;\n position[crossAxis] = (0, $fZVmS$clamp)(position[crossAxis], minPosition, maxPosition);\n // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n if (placement === axis) {\n // If the container is positioned (non-static), then we use the container's actual\n // height, as `bottom` will be relative to this height. But if the container is static,\n // then it can only be the `document.body`, and `bottom` will be relative to _its_\n // container, which should be as large as boundaryDimensions.\n const containerHeight = isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[$edcf132a9284368a$var$TOTAL_SIZE[size]];\n position[$edcf132a9284368a$var$FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n } else position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n return position;\n}\nfunction $edcf132a9284368a$var$getMaxHeight(position, boundaryDimensions, containerOffsetWithBoundary, isContainerPositioned, margins, padding, overlayHeight, heightGrowthDirection) {\n const containerHeight = isContainerPositioned ? containerOffsetWithBoundary.height : boundaryDimensions[$edcf132a9284368a$var$TOTAL_SIZE.height];\n var _position_bottom;\n // For cases where position is set via \"bottom\" instead of \"top\", we need to calculate the true overlay top with respect to the boundary. Reverse calculate this with the same method\n // used in computePosition.\n let overlayTop = position.top != null ? containerOffsetWithBoundary.top + position.top : containerOffsetWithBoundary.top + (containerHeight - ((_position_bottom = position.bottom) !== null && _position_bottom !== void 0 ? _position_bottom : 0) - overlayHeight);\n var _boundaryDimensions_scroll_top, _margins_top, _margins_bottom, _boundaryDimensions_scroll_top1, _margins_top1, _margins_bottom1;\n let maxHeight = heightGrowthDirection !== 'top' ? // We want the distance between the top of the overlay to the bottom of the boundary\n Math.max(0, boundaryDimensions.height + boundaryDimensions.top + ((_boundaryDimensions_scroll_top = boundaryDimensions.scroll.top) !== null && _boundaryDimensions_scroll_top !== void 0 ? _boundaryDimensions_scroll_top : 0) - overlayTop // this is the top of the overlay\n - (((_margins_top = margins.top) !== null && _margins_top !== void 0 ? _margins_top : 0) + ((_margins_bottom = margins.bottom) !== null && _margins_bottom !== void 0 ? _margins_bottom : 0) + padding // save additional space for margin and padding\n )) : Math.max(0, overlayTop + overlayHeight // this is the bottom of the overlay\n - (boundaryDimensions.top + ((_boundaryDimensions_scroll_top1 = boundaryDimensions.scroll.top) !== null && _boundaryDimensions_scroll_top1 !== void 0 ? _boundaryDimensions_scroll_top1 : 0) // this is the top of the boundary\n ) - (((_margins_top1 = margins.top) !== null && _margins_top1 !== void 0 ? _margins_top1 : 0) + ((_margins_bottom1 = margins.bottom) !== null && _margins_bottom1 !== void 0 ? _margins_bottom1 : 0) + padding // save additional space for margin and padding\n ));\n return Math.min(boundaryDimensions.height - padding * 2, maxHeight);\n}\nfunction $edcf132a9284368a$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding, placementInfo) {\n let { placement: placement, axis: axis, size: size } = placementInfo;\n var _boundaryDimensions_scroll_axis, _margins_axis;\n if (placement === axis) return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - ((_boundaryDimensions_scroll_axis = boundaryDimensions.scroll[axis]) !== null && _boundaryDimensions_scroll_axis !== void 0 ? _boundaryDimensions_scroll_axis : 0) + containerOffsetWithBoundary[axis] - ((_margins_axis = margins[axis]) !== null && _margins_axis !== void 0 ? _margins_axis : 0) - margins[$edcf132a9284368a$var$FLIPPED_DIRECTION[axis]] - padding);\n var _margins_axis1;\n return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - ((_margins_axis1 = margins[axis]) !== null && _margins_axis1 !== void 0 ? _margins_axis1 : 0) - margins[$edcf132a9284368a$var$FLIPPED_DIRECTION[axis]] - padding);\n}\nfunction $edcf132a9284368a$export$6839422d1f33cee9(placementInput, childOffset, overlaySize, scrollSize, margins, padding, flip, boundaryDimensions, containerDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned, userSetMaxHeight, arrowSize, arrowBoundaryOffset) {\n let placementInfo = $edcf132a9284368a$var$parsePlacement(placementInput);\n let { size: size, crossAxis: crossAxis, crossSize: crossSize, placement: placement, crossPlacement: crossPlacement } = placementInfo;\n let position = $edcf132a9284368a$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset);\n let normalizedOffset = offset;\n let space = $edcf132a9284368a$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding + offset, placementInfo);\n // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n if (flip && scrollSize[size] > space) {\n let flippedPlacementInfo = $edcf132a9284368a$var$parsePlacement(`${$edcf132a9284368a$var$FLIPPED_DIRECTION[placement]} ${crossPlacement}`);\n let flippedPosition = $edcf132a9284368a$var$computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset);\n let flippedSpace = $edcf132a9284368a$var$getAvailableSpace(boundaryDimensions, containerOffsetWithBoundary, childOffset, margins, padding + offset, flippedPlacementInfo);\n // If the available space for the flipped position is greater than the original available space, flip.\n if (flippedSpace > space) {\n placementInfo = flippedPlacementInfo;\n position = flippedPosition;\n normalizedOffset = offset;\n }\n }\n // Determine the direction the height of the overlay can grow so that we can choose how to calculate the max height\n let heightGrowthDirection = 'bottom';\n if (placementInfo.axis === 'top') {\n if (placementInfo.placement === 'top') heightGrowthDirection = 'top';\n else if (placementInfo.placement === 'bottom') heightGrowthDirection = 'bottom';\n } else if (placementInfo.crossAxis === 'top') {\n if (placementInfo.crossPlacement === 'top') heightGrowthDirection = 'bottom';\n else if (placementInfo.crossPlacement === 'bottom') heightGrowthDirection = 'top';\n }\n let delta = $edcf132a9284368a$var$getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, containerDimensions, padding, containerOffsetWithBoundary);\n position[crossAxis] += delta;\n let maxHeight = $edcf132a9284368a$var$getMaxHeight(position, boundaryDimensions, containerOffsetWithBoundary, isContainerPositioned, margins, padding, overlaySize.height, heightGrowthDirection);\n if (userSetMaxHeight && userSetMaxHeight < maxHeight) maxHeight = userSetMaxHeight;\n overlaySize.height = Math.min(overlaySize.height, maxHeight);\n position = $edcf132a9284368a$var$computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned, arrowSize, arrowBoundaryOffset);\n delta = $edcf132a9284368a$var$getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, containerDimensions, padding, containerOffsetWithBoundary);\n position[crossAxis] += delta;\n let arrowPosition = {};\n // All values are transformed so that 0 is at the top/left of the overlay depending on the orientation\n // Prefer the arrow being in the center of the trigger/overlay anchor element\n // childOffset[crossAxis] + .5 * childOffset[crossSize] = absolute position with respect to the trigger's coordinate system that would place the arrow in the center of the trigger\n // position[crossAxis] - margins[AXIS[crossAxis]] = value use to transform the position to a value with respect to the overlay's coordinate system. A child element's (aka arrow) position absolute's \"0\"\n // is positioned after the margin of its parent (aka overlay) so we need to subtract it to get the proper coordinate transform\n let preferredArrowPosition = childOffset[crossAxis] + .5 * childOffset[crossSize] - position[crossAxis] - margins[$edcf132a9284368a$var$AXIS[crossAxis]];\n // Min/Max position limits for the arrow with respect to the overlay\n const arrowMinPosition = arrowSize / 2 + arrowBoundaryOffset;\n var _margins_left, _margins_right, _margins_top, _margins_bottom;\n // overlaySize[crossSize] - margins = true size of the overlay\n const overlayMargin = $edcf132a9284368a$var$AXIS[crossAxis] === 'left' ? ((_margins_left = margins.left) !== null && _margins_left !== void 0 ? _margins_left : 0) + ((_margins_right = margins.right) !== null && _margins_right !== void 0 ? _margins_right : 0) : ((_margins_top = margins.top) !== null && _margins_top !== void 0 ? _margins_top : 0) + ((_margins_bottom = margins.bottom) !== null && _margins_bottom !== void 0 ? _margins_bottom : 0);\n const arrowMaxPosition = overlaySize[crossSize] - overlayMargin - arrowSize / 2 - arrowBoundaryOffset;\n // Min/Max position limits for the arrow with respect to the trigger/overlay anchor element\n // Same margin accomodation done here as well as for the preferredArrowPosition\n const arrowOverlappingChildMinEdge = childOffset[crossAxis] + arrowSize / 2 - (position[crossAxis] + margins[$edcf132a9284368a$var$AXIS[crossAxis]]);\n const arrowOverlappingChildMaxEdge = childOffset[crossAxis] + childOffset[crossSize] - arrowSize / 2 - (position[crossAxis] + margins[$edcf132a9284368a$var$AXIS[crossAxis]]);\n // Clamp the arrow positioning so that it always is within the bounds of the anchor and the overlay\n const arrowPositionOverlappingChild = (0, $fZVmS$clamp)(preferredArrowPosition, arrowOverlappingChildMinEdge, arrowOverlappingChildMaxEdge);\n arrowPosition[crossAxis] = (0, $fZVmS$clamp)(arrowPositionOverlappingChild, arrowMinPosition, arrowMaxPosition);\n return {\n position: position,\n maxHeight: maxHeight,\n arrowOffsetLeft: arrowPosition.left,\n arrowOffsetTop: arrowPosition.top,\n placement: placementInfo.placement\n };\n}\nfunction $edcf132a9284368a$export$b3ceb0cbf1056d98(opts) {\n let { placement: placement, targetNode: targetNode, overlayNode: overlayNode, scrollNode: scrollNode, padding: padding, shouldFlip: shouldFlip, boundaryElement: boundaryElement, offset: offset, crossOffset: crossOffset, maxHeight: maxHeight, arrowSize: arrowSize = 0, arrowBoundaryOffset: arrowBoundaryOffset = 0 } = opts;\n let container = overlayNode instanceof HTMLElement ? $edcf132a9284368a$var$getContainingBlock(overlayNode) : document.documentElement;\n let isViewportContainer = container === document.documentElement;\n const containerPositionStyle = window.getComputedStyle(container).position;\n let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n let childOffset = isViewportContainer ? $edcf132a9284368a$var$getOffset(targetNode) : $edcf132a9284368a$var$getPosition(targetNode, container);\n if (!isViewportContainer) {\n let { marginTop: marginTop, marginLeft: marginLeft } = window.getComputedStyle(targetNode);\n childOffset.top += parseInt(marginTop, 10) || 0;\n childOffset.left += parseInt(marginLeft, 10) || 0;\n }\n let overlaySize = $edcf132a9284368a$var$getOffset(overlayNode);\n let margins = $edcf132a9284368a$var$getMargins(overlayNode);\n var _margins_left, _margins_right;\n overlaySize.width += ((_margins_left = margins.left) !== null && _margins_left !== void 0 ? _margins_left : 0) + ((_margins_right = margins.right) !== null && _margins_right !== void 0 ? _margins_right : 0);\n var _margins_top, _margins_bottom;\n overlaySize.height += ((_margins_top = margins.top) !== null && _margins_top !== void 0 ? _margins_top : 0) + ((_margins_bottom = margins.bottom) !== null && _margins_bottom !== void 0 ? _margins_bottom : 0);\n let scrollSize = $edcf132a9284368a$var$getScroll(scrollNode);\n let boundaryDimensions = $edcf132a9284368a$var$getContainerDimensions(boundaryElement);\n let containerDimensions = $edcf132a9284368a$var$getContainerDimensions(container);\n // If the container is the HTML element wrapping the body element, the retrieved scrollTop/scrollLeft will be equal to the\n // body element's scroll. Set the container's scroll values to 0 since the overlay's edge position value in getDelta don't then need to be further offset\n // by the container scroll since they are essentially the same containing element and thus in the same coordinate system\n let containerOffsetWithBoundary = boundaryElement.tagName === 'BODY' ? $edcf132a9284368a$var$getOffset(container) : $edcf132a9284368a$var$getPosition(container, boundaryElement);\n if (container.tagName === 'HTML' && boundaryElement.tagName === 'BODY') {\n containerDimensions.scroll.top = 0;\n containerDimensions.scroll.left = 0;\n }\n return $edcf132a9284368a$export$6839422d1f33cee9(placement, childOffset, overlaySize, scrollSize, margins, padding, shouldFlip, boundaryDimensions, containerDimensions, containerOffsetWithBoundary, offset, crossOffset, isContainerPositioned, maxHeight, arrowSize, arrowBoundaryOffset);\n}\nfunction $edcf132a9284368a$var$getOffset(node) {\n let { top: top, left: left, width: width, height: height } = node.getBoundingClientRect();\n let { scrollTop: scrollTop, scrollLeft: scrollLeft, clientTop: clientTop, clientLeft: clientLeft } = document.documentElement;\n return {\n top: top + scrollTop - clientTop,\n left: left + scrollLeft - clientLeft,\n width: width,\n height: height\n };\n}\nfunction $edcf132a9284368a$var$getPosition(node, parent) {\n let style = window.getComputedStyle(node);\n let offset;\n if (style.position === 'fixed') {\n let { top: top, left: left, width: width, height: height } = node.getBoundingClientRect();\n offset = {\n top: top,\n left: left,\n width: width,\n height: height\n };\n } else {\n offset = $edcf132a9284368a$var$getOffset(node);\n let parentOffset = $edcf132a9284368a$var$getOffset(parent);\n let parentStyle = window.getComputedStyle(parent);\n parentOffset.top += (parseInt(parentStyle.borderTopWidth, 10) || 0) - parent.scrollTop;\n parentOffset.left += (parseInt(parentStyle.borderLeftWidth, 10) || 0) - parent.scrollLeft;\n offset.top -= parentOffset.top;\n offset.left -= parentOffset.left;\n }\n offset.top -= parseInt(style.marginTop, 10) || 0;\n offset.left -= parseInt(style.marginLeft, 10) || 0;\n return offset;\n}\n// Returns the containing block of an element, which is the element that\n// this element will be positioned relative to.\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block\nfunction $edcf132a9284368a$var$getContainingBlock(node) {\n // The offsetParent of an element in most cases equals the containing block.\n // https://w3c.github.io/csswg-drafts/cssom-view/#dom-htmlelement-offsetparent\n let offsetParent = node.offsetParent;\n // The offsetParent algorithm terminates at the document body,\n // even if the body is not a containing block. Double check that\n // and use the documentElement if so.\n if (offsetParent && offsetParent === document.body && window.getComputedStyle(offsetParent).position === 'static' && !$edcf132a9284368a$var$isContainingBlock(offsetParent)) offsetParent = document.documentElement;\n // TODO(later): handle table elements?\n // The offsetParent can be null if the element has position: fixed, or a few other cases.\n // We have to walk up the tree manually in this case because fixed positioned elements\n // are still positioned relative to their containing block, which is not always the viewport.\n if (offsetParent == null) {\n offsetParent = node.parentElement;\n while(offsetParent && !$edcf132a9284368a$var$isContainingBlock(offsetParent))offsetParent = offsetParent.parentElement;\n }\n // Fall back to the viewport.\n return offsetParent || document.documentElement;\n}\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\nfunction $edcf132a9284368a$var$isContainingBlock(node) {\n let style = window.getComputedStyle(node);\n return style.transform !== 'none' || /transform|perspective/.test(style.willChange) || style.filter !== 'none' || style.contain === 'paint' || 'backdropFilter' in style && style.backdropFilter !== 'none' || 'WebkitBackdropFilter' in style && style.WebkitBackdropFilter !== 'none';\n}\n\n\nexport {$edcf132a9284368a$export$6839422d1f33cee9 as calculatePositionInternal, $edcf132a9284368a$export$b3ceb0cbf1056d98 as calculatePosition};\n//# sourceMappingURL=calculatePosition.module.js.map\n","import {useEffect as $dRVb8$useEffect} from \"react\";\n\n/*\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 */ \nconst $dd149f63282afbbf$export$f6211563215e3b37 = new WeakMap();\nfunction $dd149f63282afbbf$export$18fc8428861184da(opts) {\n let { triggerRef: triggerRef, isOpen: isOpen, onClose: onClose } = opts;\n (0, $dRVb8$useEffect)(()=>{\n if (!isOpen || onClose === null) return;\n let onScroll = (e)=>{\n // Ignore if scrolling an scrollable region outside the trigger's tree.\n let target = e.target;\n // window is not a Node and doesn't have contain, but window contains everything\n if (!triggerRef.current || target instanceof Node && !target.contains(triggerRef.current)) return;\n // Ignore scroll events on any input or textarea as the cursor position can cause it to scroll\n // such as in a combobox. Clicking the dropdown button places focus on the input, and if the\n // text inside the input extends beyond the 'end', then it will scroll so the cursor is visible at the end.\n if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) return;\n let onCloseHandler = onClose || $dd149f63282afbbf$export$f6211563215e3b37.get(triggerRef.current);\n if (onCloseHandler) onCloseHandler();\n };\n window.addEventListener('scroll', onScroll, true);\n return ()=>{\n window.removeEventListener('scroll', onScroll, true);\n };\n }, [\n isOpen,\n onClose,\n triggerRef\n ]);\n}\n\n\nexport {$dd149f63282afbbf$export$f6211563215e3b37 as onCloseMap, $dd149f63282afbbf$export$18fc8428861184da as useCloseOnScroll};\n//# sourceMappingURL=useCloseOnScroll.module.js.map\n","import {calculatePosition as $edcf132a9284368a$export$b3ceb0cbf1056d98} from \"./calculatePosition.mjs\";\nimport {useCloseOnScroll as $dd149f63282afbbf$export$18fc8428861184da} from \"./useCloseOnScroll.mjs\";\nimport {useState as $39EOa$useState, useRef as $39EOa$useRef, useEffect as $39EOa$useEffect, useCallback as $39EOa$useCallback} from \"react\";\nimport {useLayoutEffect as $39EOa$useLayoutEffect, useResizeObserver as $39EOa$useResizeObserver} from \"@react-aria/utils\";\nimport {useLocale as $39EOa$useLocale} from \"@react-aria/i18n\";\n\n/*\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\n\n\n\nlet $2a41e45df1593e64$var$visualViewport = typeof document !== 'undefined' ? window.visualViewport : null;\nfunction $2a41e45df1593e64$export$d39e1813b3bdd0e1(props) {\n let { direction: direction } = (0, $39EOa$useLocale)();\n let { arrowSize: arrowSize = 0, targetRef: targetRef, overlayRef: overlayRef, scrollRef: scrollRef = overlayRef, placement: placement = 'bottom', containerPadding: containerPadding = 12, shouldFlip: shouldFlip = true, boundaryElement: boundaryElement = typeof document !== 'undefined' ? document.body : null, offset: offset = 0, crossOffset: crossOffset = 0, shouldUpdatePosition: shouldUpdatePosition = true, isOpen: isOpen = true, onClose: onClose, maxHeight: maxHeight, arrowBoundaryOffset: arrowBoundaryOffset = 0 } = props;\n let [position, setPosition] = (0, $39EOa$useState)(null);\n let deps = [\n shouldUpdatePosition,\n placement,\n overlayRef.current,\n targetRef.current,\n scrollRef.current,\n containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n isOpen,\n direction,\n maxHeight,\n arrowBoundaryOffset,\n arrowSize\n ];\n // Note, the position freezing breaks if body sizes itself dynamicly with the visual viewport but that might\n // just be a non-realistic use case\n // Upon opening a overlay, record the current visual viewport scale so we can freeze the overlay styles\n let lastScale = (0, $39EOa$useRef)($2a41e45df1593e64$var$visualViewport === null || $2a41e45df1593e64$var$visualViewport === void 0 ? void 0 : $2a41e45df1593e64$var$visualViewport.scale);\n (0, $39EOa$useEffect)(()=>{\n if (isOpen) lastScale.current = $2a41e45df1593e64$var$visualViewport === null || $2a41e45df1593e64$var$visualViewport === void 0 ? void 0 : $2a41e45df1593e64$var$visualViewport.scale;\n }, [\n isOpen\n ]);\n let updatePosition = (0, $39EOa$useCallback)(()=>{\n if (shouldUpdatePosition === false || !isOpen || !overlayRef.current || !targetRef.current || !boundaryElement) return;\n if (($2a41e45df1593e64$var$visualViewport === null || $2a41e45df1593e64$var$visualViewport === void 0 ? void 0 : $2a41e45df1593e64$var$visualViewport.scale) !== lastScale.current) return;\n // Determine a scroll anchor based on the focused element.\n // This stores the offset of the anchor element from the scroll container\n // so it can be restored after repositioning. This way if the overlay height\n // changes, the focused element appears to stay in the same position.\n let anchor = null;\n if (scrollRef.current && scrollRef.current.contains(document.activeElement)) {\n var _document_activeElement;\n let anchorRect = (_document_activeElement = document.activeElement) === null || _document_activeElement === void 0 ? void 0 : _document_activeElement.getBoundingClientRect();\n let scrollRect = scrollRef.current.getBoundingClientRect();\n var _anchorRect_top;\n // Anchor from the top if the offset is in the top half of the scrollable element,\n // otherwise anchor from the bottom.\n anchor = {\n type: 'top',\n offset: ((_anchorRect_top = anchorRect === null || anchorRect === void 0 ? void 0 : anchorRect.top) !== null && _anchorRect_top !== void 0 ? _anchorRect_top : 0) - scrollRect.top\n };\n if (anchor.offset > scrollRect.height / 2) {\n anchor.type = 'bottom';\n var _anchorRect_bottom;\n anchor.offset = ((_anchorRect_bottom = anchorRect === null || anchorRect === void 0 ? void 0 : anchorRect.bottom) !== null && _anchorRect_bottom !== void 0 ? _anchorRect_bottom : 0) - scrollRect.bottom;\n }\n }\n // Always reset the overlay's previous max height if not defined by the user so that we can compensate for\n // RAC collections populating after a second render and properly set a correct max height + positioning when it populates.\n let overlay = overlayRef.current;\n if (!maxHeight && overlayRef.current) {\n var _window_visualViewport;\n overlay.style.top = '0px';\n overlay.style.bottom = '';\n var _window_visualViewport_height;\n overlay.style.maxHeight = ((_window_visualViewport_height = (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.height) !== null && _window_visualViewport_height !== void 0 ? _window_visualViewport_height : window.innerHeight) + 'px';\n }\n let position = (0, $edcf132a9284368a$export$b3ceb0cbf1056d98)({\n placement: $2a41e45df1593e64$var$translateRTL(placement, direction),\n overlayNode: overlayRef.current,\n targetNode: targetRef.current,\n scrollNode: scrollRef.current || overlayRef.current,\n padding: containerPadding,\n shouldFlip: shouldFlip,\n boundaryElement: boundaryElement,\n offset: offset,\n crossOffset: crossOffset,\n maxHeight: maxHeight,\n arrowSize: arrowSize,\n arrowBoundaryOffset: arrowBoundaryOffset\n });\n if (!position.position) return;\n // Modify overlay styles directly so positioning happens immediately without the need of a second render\n // This is so we don't have to delay autoFocus scrolling or delay applying preventScroll for popovers\n overlay.style.top = '';\n overlay.style.bottom = '';\n overlay.style.left = '';\n overlay.style.right = '';\n Object.keys(position.position).forEach((key)=>overlay.style[key] = position.position[key] + 'px');\n overlay.style.maxHeight = position.maxHeight != null ? position.maxHeight + 'px' : '';\n // Restore scroll position relative to anchor element.\n if (anchor && document.activeElement && scrollRef.current) {\n let anchorRect = document.activeElement.getBoundingClientRect();\n let scrollRect = scrollRef.current.getBoundingClientRect();\n let newOffset = anchorRect[anchor.type] - scrollRect[anchor.type];\n scrollRef.current.scrollTop += newOffset - anchor.offset;\n }\n // Trigger a set state for a second render anyway for arrow positioning\n setPosition(position);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n // Update position when anything changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n (0, $39EOa$useLayoutEffect)(updatePosition, deps);\n // Update position on window resize\n $2a41e45df1593e64$var$useResize(updatePosition);\n // Update position when the overlay changes size (might need to flip).\n (0, $39EOa$useResizeObserver)({\n ref: overlayRef,\n onResize: updatePosition\n });\n // Update position when the target changes size (might need to flip).\n (0, $39EOa$useResizeObserver)({\n ref: targetRef,\n onResize: updatePosition\n });\n // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n let isResizing = (0, $39EOa$useRef)(false);\n (0, $39EOa$useLayoutEffect)(()=>{\n let timeout;\n let onResize = ()=>{\n isResizing.current = true;\n clearTimeout(timeout);\n timeout = setTimeout(()=>{\n isResizing.current = false;\n }, 500);\n updatePosition();\n };\n // Only reposition the overlay if a scroll event happens immediately as a result of resize (aka the virtual keyboard has appears)\n // We don't want to reposition the overlay if the user has pinch zoomed in and is scrolling the viewport around.\n let onScroll = ()=>{\n if (isResizing.current) onResize();\n };\n $2a41e45df1593e64$var$visualViewport === null || $2a41e45df1593e64$var$visualViewport === void 0 ? void 0 : $2a41e45df1593e64$var$visualViewport.addEventListener('resize', onResize);\n $2a41e45df1593e64$var$visualViewport === null || $2a41e45df1593e64$var$visualViewport === void 0 ? void 0 : $2a41e45df1593e64$var$visualViewport.addEventListener('scroll', onScroll);\n return ()=>{\n $2a41e45df1593e64$var$visualViewport === null || $2a41e45df1593e64$var$visualViewport === void 0 ? void 0 : $2a41e45df1593e64$var$visualViewport.removeEventListener('resize', onResize);\n $2a41e45df1593e64$var$visualViewport === null || $2a41e45df1593e64$var$visualViewport === void 0 ? void 0 : $2a41e45df1593e64$var$visualViewport.removeEventListener('scroll', onScroll);\n };\n }, [\n updatePosition\n ]);\n let close = (0, $39EOa$useCallback)(()=>{\n if (!isResizing.current) onClose === null || onClose === void 0 ? void 0 : onClose();\n }, [\n onClose,\n isResizing\n ]);\n // When scrolling a parent scrollable region of the trigger (other than the body),\n // we hide the popover. Otherwise, its position would be incorrect.\n (0, $dd149f63282afbbf$export$18fc8428861184da)({\n triggerRef: targetRef,\n isOpen: isOpen,\n onClose: onClose && close\n });\n var _position_maxHeight, _position_placement;\n return {\n overlayProps: {\n style: {\n position: 'absolute',\n zIndex: 100000,\n ...position === null || position === void 0 ? void 0 : position.position,\n maxHeight: (_position_maxHeight = position === null || position === void 0 ? void 0 : position.maxHeight) !== null && _position_maxHeight !== void 0 ? _position_maxHeight : '100vh'\n }\n },\n placement: (_position_placement = position === null || position === void 0 ? void 0 : position.placement) !== null && _position_placement !== void 0 ? _position_placement : null,\n arrowProps: {\n 'aria-hidden': 'true',\n role: 'presentation',\n style: {\n left: position === null || position === void 0 ? void 0 : position.arrowOffsetLeft,\n top: position === null || position === void 0 ? void 0 : position.arrowOffsetTop\n }\n },\n updatePosition: updatePosition\n };\n}\nfunction $2a41e45df1593e64$var$useResize(onResize) {\n (0, $39EOa$useLayoutEffect)(()=>{\n window.addEventListener('resize', onResize, false);\n return ()=>{\n window.removeEventListener('resize', onResize, false);\n };\n }, [\n onResize\n ]);\n}\nfunction $2a41e45df1593e64$var$translateRTL(position, direction) {\n if (direction === 'rtl') return position.replace('start', 'right').replace('end', 'left');\n return position.replace('start', 'left').replace('end', 'right');\n}\n\n\nexport {$2a41e45df1593e64$export$d39e1813b3bdd0e1 as useOverlayPosition};\n//# sourceMappingURL=useOverlayPosition.module.js.map\n","import {isElementInChildOfActiveScope as $jtpZv$isElementInChildOfActiveScope} from \"@react-aria/focus\";\nimport {useEffect as $jtpZv$useEffect} from \"react\";\nimport {useInteractOutside as $jtpZv$useInteractOutside, useFocusWithin as $jtpZv$useFocusWithin} from \"@react-aria/interactions\";\n\n/*\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\n\nconst $a11501f3d1d39e6c$var$visibleOverlays = [];\nfunction $a11501f3d1d39e6c$export$ea8f71083e90600f(props, ref) {\n let { onClose: onClose, shouldCloseOnBlur: shouldCloseOnBlur, isOpen: isOpen, isDismissable: isDismissable = false, isKeyboardDismissDisabled: isKeyboardDismissDisabled = false, shouldCloseOnInteractOutside: shouldCloseOnInteractOutside } = props;\n // Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.\n (0, $jtpZv$useEffect)(()=>{\n if (isOpen) $a11501f3d1d39e6c$var$visibleOverlays.push(ref);\n return ()=>{\n let index = $a11501f3d1d39e6c$var$visibleOverlays.indexOf(ref);\n if (index >= 0) $a11501f3d1d39e6c$var$visibleOverlays.splice(index, 1);\n };\n }, [\n isOpen,\n ref\n ]);\n // Only hide the overlay when it is the topmost visible overlay in the stack\n let onHide = ()=>{\n if ($a11501f3d1d39e6c$var$visibleOverlays[$a11501f3d1d39e6c$var$visibleOverlays.length - 1] === ref && onClose) onClose();\n };\n let onInteractOutsideStart = (e)=>{\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {\n if ($a11501f3d1d39e6c$var$visibleOverlays[$a11501f3d1d39e6c$var$visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n };\n let onInteractOutside = (e)=>{\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target)) {\n if ($a11501f3d1d39e6c$var$visibleOverlays[$a11501f3d1d39e6c$var$visibleOverlays.length - 1] === ref) {\n e.stopPropagation();\n e.preventDefault();\n }\n onHide();\n }\n };\n // Handle the escape key\n let onKeyDown = (e)=>{\n if (e.key === 'Escape' && !isKeyboardDismissDisabled && !e.nativeEvent.isComposing) {\n e.stopPropagation();\n e.preventDefault();\n onHide();\n }\n };\n // Handle clicking outside the overlay to close it\n (0, $jtpZv$useInteractOutside)({\n ref: ref,\n onInteractOutside: isDismissable && isOpen ? onInteractOutside : undefined,\n onInteractOutsideStart: onInteractOutsideStart\n });\n let { focusWithinProps: focusWithinProps } = (0, $jtpZv$useFocusWithin)({\n isDisabled: !shouldCloseOnBlur,\n onBlurWithin: (e)=>{\n // Do not close if relatedTarget is null, which means focus is lost to the body.\n // That can happen when switching tabs, or due to a VoiceOver/Chrome bug with Control+Option+Arrow navigation.\n // Clicking on the body to close the overlay should already be handled by useInteractOutside.\n // https://github.com/adobe/react-spectrum/issues/4130\n // https://github.com/adobe/react-spectrum/issues/4922\n //\n // If focus is moving into a child focus scope (e.g. menu inside a dialog),\n // do not close the outer overlay. At this point, the active scope should\n // still be the outer overlay, since blur events run before focus.\n if (!e.relatedTarget || (0, $jtpZv$isElementInChildOfActiveScope)(e.relatedTarget)) return;\n if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget)) onClose === null || onClose === void 0 ? void 0 : onClose();\n }\n });\n let onPointerDownUnderlay = (e)=>{\n // fixes a firefox issue that starts text selection https://bugzilla.mozilla.org/show_bug.cgi?id=1675846\n if (e.target === e.currentTarget) e.preventDefault();\n };\n return {\n overlayProps: {\n onKeyDown: onKeyDown,\n ...focusWithinProps\n },\n underlayProps: {\n onPointerDown: onPointerDownUnderlay\n }\n };\n}\n\n\nexport {$a11501f3d1d39e6c$export$ea8f71083e90600f as useOverlay};\n//# sourceMappingURL=useOverlay.module.js.map\n","import {useLayoutEffect as $7mMvr$useLayoutEffect, isIOS as $7mMvr$isIOS, chain as $7mMvr$chain, getScrollParent as $7mMvr$getScrollParent} from \"@react-aria/utils\";\n\n/*\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 */ \nconst $49c51c25361d4cd2$var$visualViewport = typeof document !== 'undefined' && window.visualViewport;\n// HTML input types that do not cause the software keyboard to appear.\nconst $49c51c25361d4cd2$var$nonTextInputTypes = new Set([\n 'checkbox',\n 'radio',\n 'range',\n 'color',\n 'file',\n 'image',\n 'button',\n 'submit',\n 'reset'\n]);\n// The number of active usePreventScroll calls. Used to determine whether to revert back to the original page style/scroll position\nlet $49c51c25361d4cd2$var$preventScrollCount = 0;\nlet $49c51c25361d4cd2$var$restore;\nfunction $49c51c25361d4cd2$export$ee0f7cc6afcd1c18(options = {}) {\n let { isDisabled: isDisabled } = options;\n (0, $7mMvr$useLayoutEffect)(()=>{\n if (isDisabled) return;\n $49c51c25361d4cd2$var$preventScrollCount++;\n if ($49c51c25361d4cd2$var$preventScrollCount === 1) {\n if ((0, $7mMvr$isIOS)()) $49c51c25361d4cd2$var$restore = $49c51c25361d4cd2$var$preventScrollMobileSafari();\n else $49c51c25361d4cd2$var$restore = $49c51c25361d4cd2$var$preventScrollStandard();\n }\n return ()=>{\n $49c51c25361d4cd2$var$preventScrollCount--;\n if ($49c51c25361d4cd2$var$preventScrollCount === 0) $49c51c25361d4cd2$var$restore();\n };\n }, [\n isDisabled\n ]);\n}\n// For most browsers, all we need to do is set `overflow: hidden` on the root element, and\n// add some padding to prevent the page from shifting when the scrollbar is hidden.\nfunction $49c51c25361d4cd2$var$preventScrollStandard() {\n return (0, $7mMvr$chain)($49c51c25361d4cd2$var$setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`), $49c51c25361d4cd2$var$setStyle(document.documentElement, 'overflow', 'hidden'));\n}\n// Mobile Safari is a whole different beast. Even with overflow: hidden,\n// it still scrolls the page in many situations:\n//\n// 1. When the bottom toolbar and address bar are collapsed, page scrolling is always allowed.\n// 2. When the keyboard is visible, the viewport does not resize. Instead, the keyboard covers part of\n// it, so it becomes scrollable.\n// 3. When tapping on an input, the page always scrolls so that the input is centered in the visual viewport.\n// This may cause even fixed position elements to scroll off the screen.\n// 4. When using the next/previous buttons in the keyboard to navigate between inputs, the whole page always\n// scrolls, even if the input is inside a nested scrollable element that could be scrolled instead.\n//\n// In order to work around these cases, and prevent scrolling without jankiness, we do a few things:\n//\n// 1. Prevent default on `touchmove` events that are not in a scrollable element. This prevents touch scrolling\n// on the window.\n// 2. Set `overscroll-behavior: contain` on nested scrollable regions so they do not scroll the page when at\n// the top or bottom. Work around a bug where this does not work when the element does not actually overflow\n// by preventing default in a `touchmove` event.\n// 3. Prevent default on `touchend` events on input elements and handle focusing the element ourselves.\n// 4. When focusing an input, apply a transform to trick Safari into thinking the input is at the top\n// of the page, which prevents it from scrolling the page. After the input is focused, scroll the element\n// into view ourselves, without scrolling the whole page.\n// 5. Offset the body by the scroll position using a negative margin and scroll to the top. This should appear the\n// same visually, but makes the actual scroll position always zero. This is required to make all of the\n// above work or Safari will still try to scroll the page when focusing an input.\n// 6. As a last resort, handle window scroll events, and scroll back to the top. This can happen when attempting\n// to navigate to an input with the next/previous buttons that's outside a modal.\nfunction $49c51c25361d4cd2$var$preventScrollMobileSafari() {\n let scrollable;\n let restoreScrollableStyles;\n let onTouchStart = (e)=>{\n // Store the nearest scrollable parent element from the element that the user touched.\n scrollable = (0, $7mMvr$getScrollParent)(e.target, true);\n if (scrollable === document.documentElement && scrollable === document.body) return;\n // Prevent scrolling up when at the top and scrolling down when at the bottom\n // of a nested scrollable area, otherwise mobile Safari will start scrolling\n // the window instead.\n if (scrollable instanceof HTMLElement && window.getComputedStyle(scrollable).overscrollBehavior === 'auto') restoreScrollableStyles = $49c51c25361d4cd2$var$setStyle(scrollable, 'overscrollBehavior', 'contain');\n };\n let onTouchMove = (e)=>{\n // Prevent scrolling the window.\n if (!scrollable || scrollable === document.documentElement || scrollable === document.body) {\n e.preventDefault();\n return;\n }\n // overscroll-behavior should prevent scroll chaining, but currently does not\n // if the element doesn't actually overflow. https://bugs.webkit.org/show_bug.cgi?id=243452\n // This checks that both the width and height do not overflow, otherwise we might\n // block horizontal scrolling too. In that case, adding `touch-action: pan-x` to\n // the element will prevent vertical page scrolling. We can't add that automatically\n // because it must be set before the touchstart event.\n if (scrollable.scrollHeight === scrollable.clientHeight && scrollable.scrollWidth === scrollable.clientWidth) e.preventDefault();\n };\n let onTouchEnd = ()=>{\n if (restoreScrollableStyles) restoreScrollableStyles();\n };\n let onFocus = (e)=>{\n let target = e.target;\n if ($49c51c25361d4cd2$var$willOpenKeyboard(target)) {\n setupStyles();\n // Apply a transform to trick Safari into thinking the input is at the top of the page\n // so it doesn't try to scroll it into view.\n target.style.transform = 'translateY(-2000px)';\n requestAnimationFrame(()=>{\n target.style.transform = '';\n // This will have prevented the browser from scrolling the focused element into view,\n // so we need to do this ourselves in a way that doesn't cause the whole page to scroll.\n if ($49c51c25361d4cd2$var$visualViewport) {\n if ($49c51c25361d4cd2$var$visualViewport.height < window.innerHeight) // If the keyboard is already visible, do this after one additional frame\n // to wait for the transform to be removed.\n requestAnimationFrame(()=>{\n $49c51c25361d4cd2$var$scrollIntoView(target);\n });\n else // Otherwise, wait for the visual viewport to resize before scrolling so we can\n // measure the correct position to scroll to.\n $49c51c25361d4cd2$var$visualViewport.addEventListener('resize', ()=>$49c51c25361d4cd2$var$scrollIntoView(target), {\n once: true\n });\n }\n });\n }\n };\n let restoreStyles = null;\n let setupStyles = ()=>{\n if (restoreStyles) return;\n let onWindowScroll = ()=>{\n // Last resort. If the window scrolled, scroll it back to the top.\n // It should always be at the top because the body will have a negative margin (see below).\n window.scrollTo(0, 0);\n };\n // Record the original scroll position so we can restore it.\n // Then apply a negative margin to the body to offset it by the scroll position. This will\n // enable us to scroll the window to the top, which is required for the rest of this to work.\n let scrollX = window.pageXOffset;\n let scrollY = window.pageYOffset;\n restoreStyles = (0, $7mMvr$chain)($49c51c25361d4cd2$var$addEvent(window, 'scroll', onWindowScroll), $49c51c25361d4cd2$var$setStyle(document.documentElement, 'paddingRight', `${window.innerWidth - document.documentElement.clientWidth}px`), $49c51c25361d4cd2$var$setStyle(document.documentElement, 'overflow', 'hidden'), $49c51c25361d4cd2$var$setStyle(document.body, 'marginTop', `-${scrollY}px`), ()=>{\n window.scrollTo(scrollX, scrollY);\n });\n // Scroll to the top. The negative margin on the body will make this appear the same.\n window.scrollTo(0, 0);\n };\n let removeEvents = (0, $7mMvr$chain)($49c51c25361d4cd2$var$addEvent(document, 'touchstart', onTouchStart, {\n passive: false,\n capture: true\n }), $49c51c25361d4cd2$var$addEvent(document, 'touchmove', onTouchMove, {\n passive: false,\n capture: true\n }), $49c51c25361d4cd2$var$addEvent(document, 'touchend', onTouchEnd, {\n passive: false,\n capture: true\n }), $49c51c25361d4cd2$var$addEvent(document, 'focus', onFocus, true));\n return ()=>{\n // Restore styles and scroll the page back to where it was.\n restoreScrollableStyles === null || restoreScrollableStyles === void 0 ? void 0 : restoreScrollableStyles();\n restoreStyles === null || restoreStyles === void 0 ? void 0 : restoreStyles();\n removeEvents();\n };\n}\n// Sets a CSS property on an element, and returns a function to revert it to the previous value.\nfunction $49c51c25361d4cd2$var$setStyle(element, style, value) {\n let cur = element.style[style];\n element.style[style] = value;\n return ()=>{\n element.style[style] = cur;\n };\n}\n// Adds an event listener to an element, and returns a function to remove it.\nfunction $49c51c25361d4cd2$var$addEvent(target, event, handler, options) {\n // internal function, so it's ok to ignore the difficult to fix type error\n // @ts-ignore\n target.addEventListener(event, handler, options);\n return ()=>{\n // @ts-ignore\n target.removeEventListener(event, handler, options);\n };\n}\nfunction $49c51c25361d4cd2$var$scrollIntoView(target) {\n let root = document.scrollingElement || document.documentElement;\n let nextTarget = target;\n while(nextTarget && nextTarget !== root){\n // Find the parent scrollable element and adjust the scroll position if the target is not already in view.\n let scrollable = (0, $7mMvr$getScrollParent)(nextTarget);\n if (scrollable !== document.documentElement && scrollable !== document.body && scrollable !== nextTarget) {\n let scrollableTop = scrollable.getBoundingClientRect().top;\n let targetTop = nextTarget.getBoundingClientRect().top;\n if (targetTop > scrollableTop + nextTarget.clientHeight) scrollable.scrollTop += targetTop - scrollableTop;\n }\n nextTarget = scrollable.parentElement;\n }\n}\nfunction $49c51c25361d4cd2$var$willOpenKeyboard(target) {\n return target instanceof HTMLInputElement && !$49c51c25361d4cd2$var$nonTextInputTypes.has(target.type) || target instanceof HTMLTextAreaElement || target instanceof HTMLElement && target.isContentEditable;\n}\n\n\nexport {$49c51c25361d4cd2$export$ee0f7cc6afcd1c18 as usePreventScroll};\n//# sourceMappingURL=usePreventScroll.module.js.map\n","var $773d5888b972f1cf$exports = {};\n$773d5888b972f1cf$exports = {\n \"dismiss\": `\\u{62A}\\u{62C}\\u{627}\\u{647}\\u{644}`\n};\n\n\nexport {$773d5888b972f1cf$exports as default};\n//# sourceMappingURL=ar-AE.module.js.map\n","var $d11f19852b941573$exports = {};\n$d11f19852b941573$exports = {\n \"dismiss\": `\\u{41E}\\u{442}\\u{445}\\u{432}\\u{44A}\\u{440}\\u{43B}\\u{44F}\\u{43D}\\u{435}`\n};\n\n\nexport {$d11f19852b941573$exports as default};\n//# sourceMappingURL=bg-BG.module.js.map\n","var $b983974c2ee1efb3$exports = {};\n$b983974c2ee1efb3$exports = {\n \"dismiss\": `Odstranit`\n};\n\n\nexport {$b983974c2ee1efb3$exports as default};\n//# sourceMappingURL=cs-CZ.module.js.map\n","var $5809cc9d4e92de73$exports = {};\n$5809cc9d4e92de73$exports = {\n \"dismiss\": `Luk`\n};\n\n\nexport {$5809cc9d4e92de73$exports as default};\n//# sourceMappingURL=da-DK.module.js.map\n","var $c68c2e4fc74398d1$exports = {};\n$c68c2e4fc74398d1$exports = {\n \"dismiss\": `Schlie\\xdfen`\n};\n\n\nexport {$c68c2e4fc74398d1$exports as default};\n//# sourceMappingURL=de-DE.module.js.map\n","var $0898b4c153db2b77$exports = {};\n$0898b4c153db2b77$exports = {\n \"dismiss\": `\\u{391}\\u{3C0}\\u{3CC}\\u{3C1}\\u{3C1}\\u{3B9}\\u{3C8}\\u{3B7}`\n};\n\n\nexport {$0898b4c153db2b77$exports as default};\n//# sourceMappingURL=el-GR.module.js.map\n","var $6d74810286a15183$exports = {};\n$6d74810286a15183$exports = {\n \"dismiss\": `Dismiss`\n};\n\n\nexport {$6d74810286a15183$exports as default};\n//# sourceMappingURL=en-US.module.js.map\n","var $309d73dc65f78055$exports = {};\n$309d73dc65f78055$exports = {\n \"dismiss\": `Descartar`\n};\n\n\nexport {$309d73dc65f78055$exports as default};\n//# sourceMappingURL=es-ES.module.js.map\n","var $44ad94f7205cf593$exports = {};\n$44ad94f7205cf593$exports = {\n \"dismiss\": `L\\xf5peta`\n};\n\n\nexport {$44ad94f7205cf593$exports as default};\n//# sourceMappingURL=et-EE.module.js.map\n","var $7c28f5687f0779a9$exports = {};\n$7c28f5687f0779a9$exports = {\n \"dismiss\": `Hylk\\xe4\\xe4`\n};\n\n\nexport {$7c28f5687f0779a9$exports as default};\n//# sourceMappingURL=fi-FI.module.js.map\n","var $e6d75df4b68bd73a$exports = {};\n$e6d75df4b68bd73a$exports = {\n \"dismiss\": `Rejeter`\n};\n\n\nexport {$e6d75df4b68bd73a$exports as default};\n//# sourceMappingURL=fr-FR.module.js.map\n","var $87505c9dab186d0f$exports = {};\n$87505c9dab186d0f$exports = {\n \"dismiss\": `\\u{5D4}\\u{5EA}\\u{5E2}\\u{5DC}\\u{5DD}`\n};\n\n\nexport {$87505c9dab186d0f$exports as default};\n//# sourceMappingURL=he-IL.module.js.map\n","var $553439c3ffb3e492$exports = {};\n$553439c3ffb3e492$exports = {\n \"dismiss\": `Odbaci`\n};\n\n\nexport {$553439c3ffb3e492$exports as default};\n//# sourceMappingURL=hr-HR.module.js.map\n","var $74cf411061b983a2$exports = {};\n$74cf411061b983a2$exports = {\n \"dismiss\": `Elutas\\xedt\\xe1s`\n};\n\n\nexport {$74cf411061b983a2$exports as default};\n//# sourceMappingURL=hu-HU.module.js.map\n","var $e933f298574dc435$exports = {};\n$e933f298574dc435$exports = {\n \"dismiss\": `Ignora`\n};\n\n\nexport {$e933f298574dc435$exports as default};\n//# sourceMappingURL=it-IT.module.js.map\n","var $ac91fc9fe02f71f6$exports = {};\n$ac91fc9fe02f71f6$exports = {\n \"dismiss\": `\\u{9589}\\u{3058}\\u{308B}`\n};\n\n\nexport {$ac91fc9fe02f71f6$exports as default};\n//# sourceMappingURL=ja-JP.module.js.map\n","var $52b96f86422025af$exports = {};\n$52b96f86422025af$exports = {\n \"dismiss\": `\\u{BB34}\\u{C2DC}`\n};\n\n\nexport {$52b96f86422025af$exports as default};\n//# sourceMappingURL=ko-KR.module.js.map\n","var $c0d724c3e51dafa6$exports = {};\n$c0d724c3e51dafa6$exports = {\n \"dismiss\": `Atmesti`\n};\n\n\nexport {$c0d724c3e51dafa6$exports as default};\n//# sourceMappingURL=lt-LT.module.js.map\n","var $c92899672a3fe72e$exports = {};\n$c92899672a3fe72e$exports = {\n \"dismiss\": `Ner\\u{101}d\\u{12B}t`\n};\n\n\nexport {$c92899672a3fe72e$exports as default};\n//# sourceMappingURL=lv-LV.module.js.map\n","var $9f576b39d8e7a9d6$exports = {};\n$9f576b39d8e7a9d6$exports = {\n \"dismiss\": `Lukk`\n};\n\n\nexport {$9f576b39d8e7a9d6$exports as default};\n//# sourceMappingURL=nb-NO.module.js.map\n","var $9d025808aeec81a7$exports = {};\n$9d025808aeec81a7$exports = {\n \"dismiss\": `Negeren`\n};\n\n\nexport {$9d025808aeec81a7$exports as default};\n//# sourceMappingURL=nl-NL.module.js.map\n","var $fce709921e2c0fa6$exports = {};\n$fce709921e2c0fa6$exports = {\n \"dismiss\": `Zignoruj`\n};\n\n\nexport {$fce709921e2c0fa6$exports as default};\n//# sourceMappingURL=pl-PL.module.js.map\n","var $2599cf0c4ab37f59$exports = {};\n$2599cf0c4ab37f59$exports = {\n \"dismiss\": `Descartar`\n};\n\n\nexport {$2599cf0c4ab37f59$exports as default};\n//# sourceMappingURL=pt-BR.module.js.map\n","var $3c220ae7ef8a35fd$exports = {};\n$3c220ae7ef8a35fd$exports = {\n \"dismiss\": `Dispensar`\n};\n\n\nexport {$3c220ae7ef8a35fd$exports as default};\n//# sourceMappingURL=pt-PT.module.js.map\n","var $93562b5094072f54$exports = {};\n$93562b5094072f54$exports = {\n \"dismiss\": `Revocare`\n};\n\n\nexport {$93562b5094072f54$exports as default};\n//# sourceMappingURL=ro-RO.module.js.map\n","var $cd9e2abd0d06c7b4$exports = {};\n$cd9e2abd0d06c7b4$exports = {\n \"dismiss\": `\\u{41F}\\u{440}\\u{43E}\\u{43F}\\u{443}\\u{441}\\u{442}\\u{438}\\u{442}\\u{44C}`\n};\n\n\nexport {$cd9e2abd0d06c7b4$exports as default};\n//# sourceMappingURL=ru-RU.module.js.map\n","var $45375701f409adf1$exports = {};\n$45375701f409adf1$exports = {\n \"dismiss\": `Zru\\u{161}i\\u{165}`\n};\n\n\nexport {$45375701f409adf1$exports as default};\n//# sourceMappingURL=sk-SK.module.js.map\n","var $27fab53a576de9dd$exports = {};\n$27fab53a576de9dd$exports = {\n \"dismiss\": `Opusti`\n};\n\n\nexport {$27fab53a576de9dd$exports as default};\n//# sourceMappingURL=sl-SI.module.js.map\n","var $4438748d9952e7c7$exports = {};\n$4438748d9952e7c7$exports = {\n \"dismiss\": `Odbaci`\n};\n\n\nexport {$4438748d9952e7c7$exports as default};\n//# sourceMappingURL=sr-SP.module.js.map\n","var $0936d7347ef4da4c$exports = {};\n$0936d7347ef4da4c$exports = {\n \"dismiss\": `Avvisa`\n};\n\n\nexport {$0936d7347ef4da4c$exports as default};\n//# sourceMappingURL=sv-SE.module.js.map\n","var $29700c92185d38f8$exports = {};\n$29700c92185d38f8$exports = {\n \"dismiss\": `Kapat`\n};\n\n\nexport {$29700c92185d38f8$exports as default};\n//# sourceMappingURL=tr-TR.module.js.map\n","var $662ccaf2be4c25b3$exports = {};\n$662ccaf2be4c25b3$exports = {\n \"dismiss\": `\\u{421}\\u{43A}\\u{430}\\u{441}\\u{443}\\u{432}\\u{430}\\u{442}\\u{438}`\n};\n\n\nexport {$662ccaf2be4c25b3$exports as default};\n//# sourceMappingURL=uk-UA.module.js.map\n","var $d80a27deda7cdb3c$exports = {};\n$d80a27deda7cdb3c$exports = {\n \"dismiss\": `\\u{53D6}\\u{6D88}`\n};\n\n\nexport {$d80a27deda7cdb3c$exports as default};\n//# sourceMappingURL=zh-CN.module.js.map\n","var $2b2734393847c884$exports = {};\n$2b2734393847c884$exports = {\n \"dismiss\": `\\u{95DC}\\u{9589}`\n};\n\n\nexport {$2b2734393847c884$exports as default};\n//# sourceMappingURL=zh-TW.module.js.map\n","import $k51So$arAEmodulejs from \"./ar-AE.mjs\";\nimport $k51So$bgBGmodulejs from \"./bg-BG.mjs\";\nimport $k51So$csCZmodulejs from \"./cs-CZ.mjs\";\nimport $k51So$daDKmodulejs from \"./da-DK.mjs\";\nimport $k51So$deDEmodulejs from \"./de-DE.mjs\";\nimport $k51So$elGRmodulejs from \"./el-GR.mjs\";\nimport $k51So$enUSmodulejs from \"./en-US.mjs\";\nimport $k51So$esESmodulejs from \"./es-ES.mjs\";\nimport $k51So$etEEmodulejs from \"./et-EE.mjs\";\nimport $k51So$fiFImodulejs from \"./fi-FI.mjs\";\nimport $k51So$frFRmodulejs from \"./fr-FR.mjs\";\nimport $k51So$heILmodulejs from \"./he-IL.mjs\";\nimport $k51So$hrHRmodulejs from \"./hr-HR.mjs\";\nimport $k51So$huHUmodulejs from \"./hu-HU.mjs\";\nimport $k51So$itITmodulejs from \"./it-IT.mjs\";\nimport $k51So$jaJPmodulejs from \"./ja-JP.mjs\";\nimport $k51So$koKRmodulejs from \"./ko-KR.mjs\";\nimport $k51So$ltLTmodulejs from \"./lt-LT.mjs\";\nimport $k51So$lvLVmodulejs from \"./lv-LV.mjs\";\nimport $k51So$nbNOmodulejs from \"./nb-NO.mjs\";\nimport $k51So$nlNLmodulejs from \"./nl-NL.mjs\";\nimport $k51So$plPLmodulejs from \"./pl-PL.mjs\";\nimport $k51So$ptBRmodulejs from \"./pt-BR.mjs\";\nimport $k51So$ptPTmodulejs from \"./pt-PT.mjs\";\nimport $k51So$roROmodulejs from \"./ro-RO.mjs\";\nimport $k51So$ruRUmodulejs from \"./ru-RU.mjs\";\nimport $k51So$skSKmodulejs from \"./sk-SK.mjs\";\nimport $k51So$slSImodulejs from \"./sl-SI.mjs\";\nimport $k51So$srSPmodulejs from \"./sr-SP.mjs\";\nimport $k51So$svSEmodulejs from \"./sv-SE.mjs\";\nimport $k51So$trTRmodulejs from \"./tr-TR.mjs\";\nimport $k51So$ukUAmodulejs from \"./uk-UA.mjs\";\nimport $k51So$zhCNmodulejs from \"./zh-CN.mjs\";\nimport $k51So$zhTWmodulejs from \"./zh-TW.mjs\";\n\nvar $a2f21f5f14f60553$exports = {};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n$a2f21f5f14f60553$exports = {\n \"ar-AE\": $k51So$arAEmodulejs,\n \"bg-BG\": $k51So$bgBGmodulejs,\n \"cs-CZ\": $k51So$csCZmodulejs,\n \"da-DK\": $k51So$daDKmodulejs,\n \"de-DE\": $k51So$deDEmodulejs,\n \"el-GR\": $k51So$elGRmodulejs,\n \"en-US\": $k51So$enUSmodulejs,\n \"es-ES\": $k51So$esESmodulejs,\n \"et-EE\": $k51So$etEEmodulejs,\n \"fi-FI\": $k51So$fiFImodulejs,\n \"fr-FR\": $k51So$frFRmodulejs,\n \"he-IL\": $k51So$heILmodulejs,\n \"hr-HR\": $k51So$hrHRmodulejs,\n \"hu-HU\": $k51So$huHUmodulejs,\n \"it-IT\": $k51So$itITmodulejs,\n \"ja-JP\": $k51So$jaJPmodulejs,\n \"ko-KR\": $k51So$koKRmodulejs,\n \"lt-LT\": $k51So$ltLTmodulejs,\n \"lv-LV\": $k51So$lvLVmodulejs,\n \"nb-NO\": $k51So$nbNOmodulejs,\n \"nl-NL\": $k51So$nlNLmodulejs,\n \"pl-PL\": $k51So$plPLmodulejs,\n \"pt-BR\": $k51So$ptBRmodulejs,\n \"pt-PT\": $k51So$ptPTmodulejs,\n \"ro-RO\": $k51So$roROmodulejs,\n \"ru-RU\": $k51So$ruRUmodulejs,\n \"sk-SK\": $k51So$skSKmodulejs,\n \"sl-SI\": $k51So$slSImodulejs,\n \"sr-SP\": $k51So$srSPmodulejs,\n \"sv-SE\": $k51So$svSEmodulejs,\n \"tr-TR\": $k51So$trTRmodulejs,\n \"uk-UA\": $k51So$ukUAmodulejs,\n \"zh-CN\": $k51So$zhCNmodulejs,\n \"zh-TW\": $k51So$zhTWmodulejs\n};\n\n\nexport {$a2f21f5f14f60553$exports as default};\n//# sourceMappingURL=intlStrings.module.js.map\n","import $iYaQO$intlStringsmodulejs from \"./intlStrings.mjs\";\nimport $iYaQO$react from \"react\";\nimport {useLabels as $iYaQO$useLabels} from \"@react-aria/utils\";\nimport {useLocalizedStringFormatter as $iYaQO$useLocalizedStringFormatter} from \"@react-aria/i18n\";\nimport {VisuallyHidden as $iYaQO$VisuallyHidden} from \"@react-aria/visually-hidden\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n/*\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\n\n\n\nfunction $86ea4cb521eb2e37$export$2317d149ed6f78c4(props) {\n let { onDismiss: onDismiss, ...otherProps } = props;\n let stringFormatter = (0, $iYaQO$useLocalizedStringFormatter)((0, ($parcel$interopDefault($iYaQO$intlStringsmodulejs))), '@react-aria/overlays');\n let labels = (0, $iYaQO$useLabels)(otherProps, stringFormatter.format('dismiss'));\n let onClick = ()=>{\n if (onDismiss) onDismiss();\n };\n return /*#__PURE__*/ (0, $iYaQO$react).createElement((0, $iYaQO$VisuallyHidden), null, /*#__PURE__*/ (0, $iYaQO$react).createElement(\"button\", {\n ...labels,\n tabIndex: -1,\n onClick: onClick,\n style: {\n width: 1,\n height: 1\n }\n }));\n}\n\n\nexport {$86ea4cb521eb2e37$export$2317d149ed6f78c4 as DismissButton};\n//# sourceMappingURL=DismissButton.module.js.map\n","/*\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 */ // Keeps a ref count of all hidden elements. Added to when hiding an element, and\n// subtracted from when showing it again. When it reaches zero, aria-hidden is removed.\nlet $5e3802645cc19319$var$refCountMap = new WeakMap();\nlet $5e3802645cc19319$var$observerStack = [];\nfunction $5e3802645cc19319$export$1c3ebcada18427bf(targets, root = document.body) {\n let visibleNodes = new Set(targets);\n let hiddenNodes = new Set();\n let walk = (root)=>{\n // Keep live announcer and top layer elements (e.g. toasts) visible.\n for (let element of root.querySelectorAll('[data-live-announcer], [data-react-aria-top-layer]'))visibleNodes.add(element);\n let acceptNode = (node)=>{\n // Skip this node and its children if it is one of the target nodes, or a live announcer.\n // Also skip children of already hidden nodes, as aria-hidden is recursive. An exception is\n // made for elements with role=\"row\" since VoiceOver on iOS has issues hiding elements with role=\"row\".\n // For that case we want to hide the cells inside as well (https://bugs.webkit.org/show_bug.cgi?id=222623).\n if (visibleNodes.has(node) || node.parentElement && hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute('role') !== 'row') return NodeFilter.FILTER_REJECT;\n // Skip this node but continue to children if one of the targets is inside the node.\n for (let target of visibleNodes){\n if (node.contains(target)) return NodeFilter.FILTER_SKIP;\n }\n return NodeFilter.FILTER_ACCEPT;\n };\n let walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: acceptNode\n });\n // TreeWalker does not include the root.\n let acceptRoot = acceptNode(root);\n if (acceptRoot === NodeFilter.FILTER_ACCEPT) hide(root);\n if (acceptRoot !== NodeFilter.FILTER_REJECT) {\n let node = walker.nextNode();\n while(node != null){\n hide(node);\n node = walker.nextNode();\n }\n }\n };\n let hide = (node)=>{\n var _refCountMap_get;\n let refCount = (_refCountMap_get = $5e3802645cc19319$var$refCountMap.get(node)) !== null && _refCountMap_get !== void 0 ? _refCountMap_get : 0;\n // If already aria-hidden, and the ref count is zero, then this element\n // was already hidden and there's nothing for us to do.\n if (node.getAttribute('aria-hidden') === 'true' && refCount === 0) return;\n if (refCount === 0) node.setAttribute('aria-hidden', 'true');\n hiddenNodes.add(node);\n $5e3802645cc19319$var$refCountMap.set(node, refCount + 1);\n };\n // If there is already a MutationObserver listening from a previous call,\n // disconnect it so the new on takes over.\n if ($5e3802645cc19319$var$observerStack.length) $5e3802645cc19319$var$observerStack[$5e3802645cc19319$var$observerStack.length - 1].disconnect();\n walk(root);\n let observer = new MutationObserver((changes)=>{\n for (let change of changes){\n if (change.type !== 'childList' || change.addedNodes.length === 0) continue;\n // If the parent element of the added nodes is not within one of the targets,\n // and not already inside a hidden node, hide all of the new children.\n if (![\n ...visibleNodes,\n ...hiddenNodes\n ].some((node)=>node.contains(change.target))) {\n for (let node of change.removedNodes)if (node instanceof Element) {\n visibleNodes.delete(node);\n hiddenNodes.delete(node);\n }\n for (let node of change.addedNodes){\n if ((node instanceof HTMLElement || node instanceof SVGElement) && (node.dataset.liveAnnouncer === 'true' || node.dataset.reactAriaTopLayer === 'true')) visibleNodes.add(node);\n else if (node instanceof Element) walk(node);\n }\n }\n }\n });\n observer.observe(root, {\n childList: true,\n subtree: true\n });\n let observerWrapper = {\n observe () {\n observer.observe(root, {\n childList: true,\n subtree: true\n });\n },\n disconnect () {\n observer.disconnect();\n }\n };\n $5e3802645cc19319$var$observerStack.push(observerWrapper);\n return ()=>{\n observer.disconnect();\n for (let node of hiddenNodes){\n let count = $5e3802645cc19319$var$refCountMap.get(node);\n if (count == null) continue;\n if (count === 1) {\n node.removeAttribute('aria-hidden');\n $5e3802645cc19319$var$refCountMap.delete(node);\n } else $5e3802645cc19319$var$refCountMap.set(node, count - 1);\n }\n // Remove this observer from the stack, and start the previous one.\n if (observerWrapper === $5e3802645cc19319$var$observerStack[$5e3802645cc19319$var$observerStack.length - 1]) {\n $5e3802645cc19319$var$observerStack.pop();\n if ($5e3802645cc19319$var$observerStack.length) $5e3802645cc19319$var$observerStack[$5e3802645cc19319$var$observerStack.length - 1].observe();\n } else $5e3802645cc19319$var$observerStack.splice($5e3802645cc19319$var$observerStack.indexOf(observerWrapper), 1);\n };\n}\n\n\nexport {$5e3802645cc19319$export$1c3ebcada18427bf as ariaHideOutside};\n//# sourceMappingURL=ariaHideOutside.module.js.map\n","import {ariaHideOutside as $5e3802645cc19319$export$1c3ebcada18427bf} from \"./ariaHideOutside.mjs\";\nimport {useOverlayPosition as $2a41e45df1593e64$export$d39e1813b3bdd0e1} from \"./useOverlayPosition.mjs\";\nimport {useOverlay as $a11501f3d1d39e6c$export$ea8f71083e90600f} from \"./useOverlay.mjs\";\nimport {usePreventScroll as $49c51c25361d4cd2$export$ee0f7cc6afcd1c18} from \"./usePreventScroll.mjs\";\nimport {useLayoutEffect as $m0yab$useLayoutEffect, mergeProps as $m0yab$mergeProps} from \"@react-aria/utils\";\n\n/*\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\n\n\n\nfunction $f2f8a6077418541e$export$542a6fd13ac93354(props, state) {\n let { triggerRef: triggerRef, popoverRef: popoverRef, isNonModal: isNonModal, isKeyboardDismissDisabled: isKeyboardDismissDisabled, shouldCloseOnInteractOutside: shouldCloseOnInteractOutside, ...otherProps } = props;\n let { overlayProps: overlayProps, underlayProps: underlayProps } = (0, $a11501f3d1d39e6c$export$ea8f71083e90600f)({\n // If popover is in the top layer, it should not prevent other popovers from being dismissed.\n isOpen: state.isOpen && !otherProps['data-react-aria-top-layer'],\n onClose: state.close,\n shouldCloseOnBlur: true,\n isDismissable: !isNonModal,\n isKeyboardDismissDisabled: isKeyboardDismissDisabled,\n shouldCloseOnInteractOutside: shouldCloseOnInteractOutside\n }, popoverRef);\n let { overlayProps: positionProps, arrowProps: arrowProps, placement: placement } = (0, $2a41e45df1593e64$export$d39e1813b3bdd0e1)({\n ...otherProps,\n targetRef: triggerRef,\n overlayRef: popoverRef,\n isOpen: state.isOpen,\n onClose: isNonModal ? state.close : null\n });\n (0, $49c51c25361d4cd2$export$ee0f7cc6afcd1c18)({\n isDisabled: isNonModal || !state.isOpen\n });\n (0, $m0yab$useLayoutEffect)(()=>{\n if (state.isOpen && !isNonModal && popoverRef.current) return (0, $5e3802645cc19319$export$1c3ebcada18427bf)([\n popoverRef.current\n ]);\n }, [\n isNonModal,\n state.isOpen,\n popoverRef\n ]);\n return {\n popoverProps: (0, $m0yab$mergeProps)(overlayProps, positionProps),\n arrowProps: arrowProps,\n underlayProps: underlayProps,\n placement: placement\n };\n}\n\n\nexport {$f2f8a6077418541e$export$542a6fd13ac93354 as usePopover};\n//# sourceMappingURL=usePopover.module.js.map\n","import $7yuSY$react, {createContext as $7yuSY$createContext, useContext as $7yuSY$useContext} from \"react\";\n\n/*\n * Copyright 2024 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 */ \nconst $96b38030c423d352$export$60d741e20e0aa309 = /*#__PURE__*/ (0, $7yuSY$createContext)({});\nfunction $96b38030c423d352$export$db995ea7163b4b67(props) {\n let { getContainer: getContainer } = props;\n let { getContainer: ctxGetContainer } = $96b38030c423d352$export$574e9b0fb070c3b0();\n return /*#__PURE__*/ (0, $7yuSY$react).createElement($96b38030c423d352$export$60d741e20e0aa309.Provider, {\n value: {\n getContainer: getContainer === null ? undefined : getContainer !== null && getContainer !== void 0 ? getContainer : ctxGetContainer\n }\n }, props.children);\n}\nfunction $96b38030c423d352$export$574e9b0fb070c3b0() {\n var _useContext;\n return (_useContext = (0, $7yuSY$useContext)($96b38030c423d352$export$60d741e20e0aa309)) !== null && _useContext !== void 0 ? _useContext : {};\n}\n\n\nexport {$96b38030c423d352$export$60d741e20e0aa309 as PortalContext, $96b38030c423d352$export$db995ea7163b4b67 as UNSTABLE_PortalProvider, $96b38030c423d352$export$574e9b0fb070c3b0 as useUNSTABLE_PortalContext};\n//# sourceMappingURL=PortalProvider.module.js.map\n","import {useUNSTABLE_PortalContext as $96b38030c423d352$export$574e9b0fb070c3b0} from \"./PortalProvider.mjs\";\nimport {ClearPressResponder as $1CM7W$ClearPressResponder} from \"@react-aria/interactions\";\nimport {FocusScope as $1CM7W$FocusScope} from \"@react-aria/focus\";\nimport $1CM7W$react, {useState as $1CM7W$useState, useMemo as $1CM7W$useMemo, useContext as $1CM7W$useContext} from \"react\";\nimport $1CM7W$reactdom from \"react-dom\";\nimport {useIsSSR as $1CM7W$useIsSSR} from \"@react-aria/ssr\";\nimport {useLayoutEffect as $1CM7W$useLayoutEffect} from \"@react-aria/utils\";\n\n/*\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\n\n\n\n\n\nconst $337b884510726a0d$export$a2200b96afd16271 = /*#__PURE__*/ (0, $1CM7W$react).createContext(null);\nfunction $337b884510726a0d$export$c6fdb837b070b4ff(props) {\n let isSSR = (0, $1CM7W$useIsSSR)();\n let { portalContainer: portalContainer = isSSR ? null : document.body, isExiting: isExiting } = props;\n let [contain, setContain] = (0, $1CM7W$useState)(false);\n let contextValue = (0, $1CM7W$useMemo)(()=>({\n contain: contain,\n setContain: setContain\n }), [\n contain,\n setContain\n ]);\n let { getContainer: getContainer } = (0, $96b38030c423d352$export$574e9b0fb070c3b0)();\n if (!props.portalContainer && getContainer) portalContainer = getContainer();\n if (!portalContainer) return null;\n let contents = props.children;\n if (!props.disableFocusManagement) contents = /*#__PURE__*/ (0, $1CM7W$react).createElement((0, $1CM7W$FocusScope), {\n restoreFocus: true,\n contain: contain && !isExiting\n }, contents);\n contents = /*#__PURE__*/ (0, $1CM7W$react).createElement($337b884510726a0d$export$a2200b96afd16271.Provider, {\n value: contextValue\n }, /*#__PURE__*/ (0, $1CM7W$react).createElement((0, $1CM7W$ClearPressResponder), null, contents));\n return /*#__PURE__*/ (0, $1CM7W$reactdom).createPortal(contents, portalContainer);\n}\nfunction $337b884510726a0d$export$14c98a7594375490() {\n let ctx = (0, $1CM7W$useContext)($337b884510726a0d$export$a2200b96afd16271);\n let setContain = ctx === null || ctx === void 0 ? void 0 : ctx.setContain;\n (0, $1CM7W$useLayoutEffect)(()=>{\n setContain === null || setContain === void 0 ? void 0 : setContain(true);\n }, [\n setContain\n ]);\n}\n\n\nexport {$337b884510726a0d$export$a2200b96afd16271 as OverlayContext, $337b884510726a0d$export$c6fdb837b070b4ff as Overlay, $337b884510726a0d$export$14c98a7594375490 as useOverlayFocusContain};\n//# sourceMappingURL=Overlay.module.js.map\n","import {isAppleDevice as $jUnAJ$isAppleDevice} from \"@react-aria/utils\";\n\n/*\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 */ \nfunction $feb5ffebff200149$export$d3e3bd3e26688c04(e) {\n // Ctrl + Arrow Up/Arrow Down has a system wide meaning on macOS, so use Alt instead.\n // On Windows and Ubuntu, Alt + Space has a system wide meaning.\n return (0, $jUnAJ$isAppleDevice)() ? e.altKey : e.ctrlKey;\n}\n\n\nexport {$feb5ffebff200149$export$d3e3bd3e26688c04 as isNonContiguousSelectionModifier};\n//# sourceMappingURL=utils.module.js.map\n","import {useRef as $dAE4Y$useRef} from \"react\";\n\n/*\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/**\n * Controls how long to wait before clearing the typeahead buffer.\n */ const $fb3050f43d946246$var$TYPEAHEAD_DEBOUNCE_WAIT_MS = 1000; // 1 second\nfunction $fb3050f43d946246$export$e32c88dfddc6e1d8(options) {\n let { keyboardDelegate: keyboardDelegate, selectionManager: selectionManager, onTypeSelect: onTypeSelect } = options;\n let state = (0, $dAE4Y$useRef)({\n search: '',\n timeout: undefined\n }).current;\n let onKeyDown = (e)=>{\n let character = $fb3050f43d946246$var$getStringForKey(e.key);\n if (!character || e.ctrlKey || e.metaKey || !e.currentTarget.contains(e.target)) return;\n // Do not propagate the Spacebar event if it's meant to be part of the search.\n // When we time out, the search term becomes empty, hence the check on length.\n // Trimming is to account for the case of pressing the Spacebar more than once,\n // which should cycle through the selection/deselection of the focused item.\n if (character === ' ' && state.search.trim().length > 0) {\n e.preventDefault();\n if (!('continuePropagation' in e)) e.stopPropagation();\n }\n state.search += character;\n if (keyboardDelegate.getKeyForSearch != null) {\n // Use the delegate to find a key to focus.\n // Prioritize items after the currently focused item, falling back to searching the whole list.\n let key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);\n // If no key found, search from the top.\n if (key == null) key = keyboardDelegate.getKeyForSearch(state.search);\n if (key != null) {\n selectionManager.setFocusedKey(key);\n if (onTypeSelect) onTypeSelect(key);\n }\n }\n clearTimeout(state.timeout);\n state.timeout = setTimeout(()=>{\n state.search = '';\n }, $fb3050f43d946246$var$TYPEAHEAD_DEBOUNCE_WAIT_MS);\n };\n return {\n typeSelectProps: {\n // Using a capturing listener to catch the keydown event before\n // other hooks in order to handle the Spacebar event.\n onKeyDownCapture: keyboardDelegate.getKeyForSearch ? onKeyDown : undefined\n }\n };\n}\nfunction $fb3050f43d946246$var$getStringForKey(key) {\n // If the key is of length 1, it is an ASCII value.\n // Otherwise, if there are no ASCII characters in the key name,\n // it is a Unicode character.\n // See https://www.w3.org/TR/uievents-key/\n if (key.length === 1 || !/^[A-Z]/i.test(key)) return key;\n return '';\n}\n\n\nexport {$fb3050f43d946246$export$e32c88dfddc6e1d8 as useTypeSelect};\n//# sourceMappingURL=useTypeSelect.module.js.map\n","import {isNonContiguousSelectionModifier as $feb5ffebff200149$export$d3e3bd3e26688c04} from \"./utils.mjs\";\nimport {useTypeSelect as $fb3050f43d946246$export$e32c88dfddc6e1d8} from \"./useTypeSelect.mjs\";\nimport {useRouter as $3H3GQ$useRouter, isCtrlKeyPressed as $3H3GQ$isCtrlKeyPressed, focusWithoutScrolling as $3H3GQ$focusWithoutScrolling, useEvent as $3H3GQ$useEvent, scrollIntoViewport as $3H3GQ$scrollIntoViewport, FOCUS_EVENT as $3H3GQ$FOCUS_EVENT, useEffectEvent as $3H3GQ$useEffectEvent, UPDATE_ACTIVEDESCENDANT as $3H3GQ$UPDATE_ACTIVEDESCENDANT, useUpdateLayoutEffect as $3H3GQ$useUpdateLayoutEffect, CLEAR_FOCUS_EVENT as $3H3GQ$CLEAR_FOCUS_EVENT, scrollIntoView as $3H3GQ$scrollIntoView, mergeProps as $3H3GQ$mergeProps} from \"@react-aria/utils\";\nimport {flushSync as $3H3GQ$flushSync} from \"react-dom\";\nimport {useRef as $3H3GQ$useRef, useEffect as $3H3GQ$useEffect} from \"react\";\nimport {getFocusableTreeWalker as $3H3GQ$getFocusableTreeWalker, focusSafely as $3H3GQ$focusSafely} from \"@react-aria/focus\";\nimport {getInteractionModality as $3H3GQ$getInteractionModality} from \"@react-aria/interactions\";\nimport {useLocale as $3H3GQ$useLocale} from \"@react-aria/i18n\";\n\n/*\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\n\n\n\n\n\n\nfunction $ae20dd8cbca75726$export$d6daf82dcd84e87c(options) {\n let { selectionManager: manager, keyboardDelegate: delegate, ref: ref, autoFocus: autoFocus = false, shouldFocusWrap: shouldFocusWrap = false, disallowEmptySelection: disallowEmptySelection = false, disallowSelectAll: disallowSelectAll = false, selectOnFocus: selectOnFocus = manager.selectionBehavior === 'replace', disallowTypeAhead: disallowTypeAhead = false, shouldUseVirtualFocus: shouldUseVirtualFocus, allowsTabNavigation: allowsTabNavigation = false, isVirtualized: isVirtualized, scrollRef: // If no scrollRef is provided, assume the collection ref is the scrollable region\n scrollRef = ref, linkBehavior: linkBehavior = 'action' } = options;\n let { direction: direction } = (0, $3H3GQ$useLocale)();\n let router = (0, $3H3GQ$useRouter)();\n let onKeyDown = (e)=>{\n var _ref_current;\n // Prevent option + tab from doing anything since it doesn't move focus to the cells, only buttons/checkboxes\n if (e.altKey && e.key === 'Tab') e.preventDefault();\n // Keyboard events bubble through portals. Don't handle keyboard events\n // for elements outside the collection (e.g. menus).\n if (!((_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.contains(e.target))) return;\n const navigateToKey = (key, childFocus)=>{\n if (key != null) {\n if (manager.isLink(key) && linkBehavior === 'selection' && selectOnFocus && !(0, $feb5ffebff200149$export$d3e3bd3e26688c04)(e)) {\n var _scrollRef_current;\n // Set focused key and re-render synchronously to bring item into view if needed.\n (0, $3H3GQ$flushSync)(()=>{\n manager.setFocusedKey(key, childFocus);\n });\n let item = (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : _scrollRef_current.querySelector(`[data-key=\"${CSS.escape(key.toString())}\"]`);\n let itemProps = manager.getItemProps(key);\n if (item) router.open(item, e, itemProps.href, itemProps.routerOptions);\n return;\n }\n manager.setFocusedKey(key, childFocus);\n if (manager.isLink(key) && linkBehavior === 'override') return;\n if (e.shiftKey && manager.selectionMode === 'multiple') manager.extendSelection(key);\n else if (selectOnFocus && !(0, $feb5ffebff200149$export$d3e3bd3e26688c04)(e)) manager.replaceSelection(key);\n }\n };\n switch(e.key){\n case 'ArrowDown':\n if (delegate.getKeyBelow) {\n var _delegate_getKeyBelow, _delegate_getFirstKey, _delegate_getFirstKey1;\n let nextKey = manager.focusedKey != null ? (_delegate_getKeyBelow = delegate.getKeyBelow) === null || _delegate_getKeyBelow === void 0 ? void 0 : _delegate_getKeyBelow.call(delegate, manager.focusedKey) : (_delegate_getFirstKey = delegate.getFirstKey) === null || _delegate_getFirstKey === void 0 ? void 0 : _delegate_getFirstKey.call(delegate);\n if (nextKey == null && shouldFocusWrap) nextKey = (_delegate_getFirstKey1 = delegate.getFirstKey) === null || _delegate_getFirstKey1 === void 0 ? void 0 : _delegate_getFirstKey1.call(delegate, manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n case 'ArrowUp':\n if (delegate.getKeyAbove) {\n var _delegate_getKeyAbove, _delegate_getLastKey, _delegate_getLastKey1;\n let nextKey = manager.focusedKey != null ? (_delegate_getKeyAbove = delegate.getKeyAbove) === null || _delegate_getKeyAbove === void 0 ? void 0 : _delegate_getKeyAbove.call(delegate, manager.focusedKey) : (_delegate_getLastKey = delegate.getLastKey) === null || _delegate_getLastKey === void 0 ? void 0 : _delegate_getLastKey.call(delegate);\n if (nextKey == null && shouldFocusWrap) nextKey = (_delegate_getLastKey1 = delegate.getLastKey) === null || _delegate_getLastKey1 === void 0 ? void 0 : _delegate_getLastKey1.call(delegate, manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n case 'ArrowLeft':\n if (delegate.getKeyLeftOf) {\n var _delegate_getKeyLeftOf, _delegate_getFirstKey2, _delegate_getLastKey2;\n let nextKey = manager.focusedKey != null ? (_delegate_getKeyLeftOf = delegate.getKeyLeftOf) === null || _delegate_getKeyLeftOf === void 0 ? void 0 : _delegate_getKeyLeftOf.call(delegate, manager.focusedKey) : null;\n if (nextKey == null && shouldFocusWrap) nextKey = direction === 'rtl' ? (_delegate_getFirstKey2 = delegate.getFirstKey) === null || _delegate_getFirstKey2 === void 0 ? void 0 : _delegate_getFirstKey2.call(delegate, manager.focusedKey) : (_delegate_getLastKey2 = delegate.getLastKey) === null || _delegate_getLastKey2 === void 0 ? void 0 : _delegate_getLastKey2.call(delegate, manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey, direction === 'rtl' ? 'first' : 'last');\n }\n }\n break;\n case 'ArrowRight':\n if (delegate.getKeyRightOf) {\n var _delegate_getKeyRightOf, _delegate_getLastKey3, _delegate_getFirstKey3;\n let nextKey = manager.focusedKey != null ? (_delegate_getKeyRightOf = delegate.getKeyRightOf) === null || _delegate_getKeyRightOf === void 0 ? void 0 : _delegate_getKeyRightOf.call(delegate, manager.focusedKey) : null;\n if (nextKey == null && shouldFocusWrap) nextKey = direction === 'rtl' ? (_delegate_getLastKey3 = delegate.getLastKey) === null || _delegate_getLastKey3 === void 0 ? void 0 : _delegate_getLastKey3.call(delegate, manager.focusedKey) : (_delegate_getFirstKey3 = delegate.getFirstKey) === null || _delegate_getFirstKey3 === void 0 ? void 0 : _delegate_getFirstKey3.call(delegate, manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey, direction === 'rtl' ? 'last' : 'first');\n }\n }\n break;\n case 'Home':\n if (delegate.getFirstKey) {\n if (manager.focusedKey === null && e.shiftKey) return;\n e.preventDefault();\n let firstKey = delegate.getFirstKey(manager.focusedKey, (0, $3H3GQ$isCtrlKeyPressed)(e));\n manager.setFocusedKey(firstKey);\n if (firstKey != null) {\n if ((0, $3H3GQ$isCtrlKeyPressed)(e) && e.shiftKey && manager.selectionMode === 'multiple') manager.extendSelection(firstKey);\n else if (selectOnFocus) manager.replaceSelection(firstKey);\n }\n }\n break;\n case 'End':\n if (delegate.getLastKey) {\n if (manager.focusedKey === null && e.shiftKey) return;\n e.preventDefault();\n let lastKey = delegate.getLastKey(manager.focusedKey, (0, $3H3GQ$isCtrlKeyPressed)(e));\n manager.setFocusedKey(lastKey);\n if (lastKey != null) {\n if ((0, $3H3GQ$isCtrlKeyPressed)(e) && e.shiftKey && manager.selectionMode === 'multiple') manager.extendSelection(lastKey);\n else if (selectOnFocus) manager.replaceSelection(lastKey);\n }\n }\n break;\n case 'PageDown':\n if (delegate.getKeyPageBelow && manager.focusedKey != null) {\n let nextKey = delegate.getKeyPageBelow(manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n case 'PageUp':\n if (delegate.getKeyPageAbove && manager.focusedKey != null) {\n let nextKey = delegate.getKeyPageAbove(manager.focusedKey);\n if (nextKey != null) {\n e.preventDefault();\n navigateToKey(nextKey);\n }\n }\n break;\n case 'a':\n if ((0, $3H3GQ$isCtrlKeyPressed)(e) && manager.selectionMode === 'multiple' && disallowSelectAll !== true) {\n e.preventDefault();\n manager.selectAll();\n }\n break;\n case 'Escape':\n if (!disallowEmptySelection && manager.selectedKeys.size !== 0) {\n e.stopPropagation();\n e.preventDefault();\n manager.clearSelection();\n }\n break;\n case 'Tab':\n if (!allowsTabNavigation) {\n // There may be elements that are \"tabbable\" inside a collection (e.g. in a grid cell).\n // However, collections should be treated as a single tab stop, with arrow key navigation internally.\n // We don't control the rendering of these, so we can't override the tabIndex to prevent tabbing.\n // Instead, we handle the Tab key, and move focus manually to the first/last tabbable element\n // in the collection, so that the browser default behavior will apply starting from that element\n // rather than the currently focused one.\n if (e.shiftKey) ref.current.focus();\n else {\n let walker = (0, $3H3GQ$getFocusableTreeWalker)(ref.current, {\n tabbable: true\n });\n let next = undefined;\n let last;\n do {\n last = walker.lastChild();\n if (last) next = last;\n }while (last);\n if (next && !next.contains(document.activeElement)) (0, $3H3GQ$focusWithoutScrolling)(next);\n }\n break;\n }\n }\n };\n // Store the scroll position so we can restore it later.\n /// TODO: should this happen all the time??\n let scrollPos = (0, $3H3GQ$useRef)({\n top: 0,\n left: 0\n });\n (0, $3H3GQ$useEvent)(scrollRef, 'scroll', isVirtualized ? undefined : ()=>{\n var _scrollRef_current, _scrollRef_current1;\n var _scrollRef_current_scrollTop, _scrollRef_current_scrollLeft;\n scrollPos.current = {\n top: (_scrollRef_current_scrollTop = (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : _scrollRef_current.scrollTop) !== null && _scrollRef_current_scrollTop !== void 0 ? _scrollRef_current_scrollTop : 0,\n left: (_scrollRef_current_scrollLeft = (_scrollRef_current1 = scrollRef.current) === null || _scrollRef_current1 === void 0 ? void 0 : _scrollRef_current1.scrollLeft) !== null && _scrollRef_current_scrollLeft !== void 0 ? _scrollRef_current_scrollLeft : 0\n };\n });\n let onFocus = (e)=>{\n if (manager.isFocused) {\n // If a focus event bubbled through a portal, reset focus state.\n if (!e.currentTarget.contains(e.target)) manager.setFocused(false);\n return;\n }\n // Focus events can bubble through portals. Ignore these events.\n if (!e.currentTarget.contains(e.target)) return;\n manager.setFocused(true);\n if (manager.focusedKey == null) {\n var _delegate_getLastKey, _delegate_getFirstKey;\n let navigateToFirstKey = (key)=>{\n if (key != null) {\n manager.setFocusedKey(key);\n if (selectOnFocus) manager.replaceSelection(key);\n }\n };\n // If the user hasn't yet interacted with the collection, there will be no focusedKey set.\n // Attempt to detect whether the user is tabbing forward or backward into the collection\n // and either focus the first or last item accordingly.\n let relatedTarget = e.relatedTarget;\n var _manager_lastSelectedKey, _manager_firstSelectedKey;\n if (relatedTarget && e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING) navigateToFirstKey((_manager_lastSelectedKey = manager.lastSelectedKey) !== null && _manager_lastSelectedKey !== void 0 ? _manager_lastSelectedKey : (_delegate_getLastKey = delegate.getLastKey) === null || _delegate_getLastKey === void 0 ? void 0 : _delegate_getLastKey.call(delegate));\n else navigateToFirstKey((_manager_firstSelectedKey = manager.firstSelectedKey) !== null && _manager_firstSelectedKey !== void 0 ? _manager_firstSelectedKey : (_delegate_getFirstKey = delegate.getFirstKey) === null || _delegate_getFirstKey === void 0 ? void 0 : _delegate_getFirstKey.call(delegate));\n } else if (!isVirtualized && scrollRef.current) {\n // Restore the scroll position to what it was before.\n scrollRef.current.scrollTop = scrollPos.current.top;\n scrollRef.current.scrollLeft = scrollPos.current.left;\n }\n if (manager.focusedKey != null && scrollRef.current) {\n // Refocus and scroll the focused item into view if it exists within the scrollable region.\n let element = scrollRef.current.querySelector(`[data-key=\"${CSS.escape(manager.focusedKey.toString())}\"]`);\n if (element) {\n // This prevents a flash of focus on the first/last element in the collection, or the collection itself.\n if (!element.contains(document.activeElement)) (0, $3H3GQ$focusWithoutScrolling)(element);\n let modality = (0, $3H3GQ$getInteractionModality)();\n if (modality === 'keyboard') (0, $3H3GQ$scrollIntoViewport)(element, {\n containingElement: ref.current\n });\n }\n }\n };\n let onBlur = (e)=>{\n // Don't set blurred and then focused again if moving focus within the collection.\n if (!e.currentTarget.contains(e.relatedTarget)) manager.setFocused(false);\n };\n // Ref to track whether the first item in the collection should be automatically focused. Specifically used for autocomplete when user types\n // to focus the first key AFTER the collection updates.\n // TODO: potentially expand the usage of this\n let shouldVirtualFocusFirst = (0, $3H3GQ$useRef)(false);\n // Add event listeners for custom virtual events. These handle updating the focused key in response to various keyboard events\n // at the autocomplete level\n // TODO: fix type later\n (0, $3H3GQ$useEvent)(ref, (0, $3H3GQ$FOCUS_EVENT), !shouldUseVirtualFocus ? undefined : (e)=>{\n let { detail: detail } = e;\n e.stopPropagation();\n manager.setFocused(true);\n // If the user is typing forwards, autofocus the first option in the list.\n if ((detail === null || detail === void 0 ? void 0 : detail.focusStrategy) === 'first') shouldVirtualFocusFirst.current = true;\n });\n let updateActiveDescendant = (0, $3H3GQ$useEffectEvent)(()=>{\n var _delegate_getFirstKey;\n var _delegate_getFirstKey1;\n let keyToFocus = (_delegate_getFirstKey1 = (_delegate_getFirstKey = delegate.getFirstKey) === null || _delegate_getFirstKey === void 0 ? void 0 : _delegate_getFirstKey.call(delegate)) !== null && _delegate_getFirstKey1 !== void 0 ? _delegate_getFirstKey1 : null;\n // If no focusable items exist in the list, make sure to clear any activedescendant that may still exist\n if (keyToFocus == null) {\n var _ref_current;\n (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.dispatchEvent(new CustomEvent((0, $3H3GQ$UPDATE_ACTIVEDESCENDANT), {\n cancelable: true,\n bubbles: true\n }));\n // If there wasn't a focusable key but the collection had items, then that means we aren't in an intermediate load state and all keys are disabled.\n // Reset shouldVirtualFocusFirst so that we don't erronously autofocus an item when the collection is filtered again.\n if (manager.collection.size > 0) shouldVirtualFocusFirst.current = false;\n } else {\n manager.setFocusedKey(keyToFocus);\n // Only set shouldVirtualFocusFirst to false if we've successfully set the first key as the focused key\n // If there wasn't a key to focus, we might be in a temporary loading state so we'll want to still focus the first key\n // after the collection updates after load\n shouldVirtualFocusFirst.current = false;\n }\n });\n (0, $3H3GQ$useUpdateLayoutEffect)(()=>{\n if (shouldVirtualFocusFirst.current) updateActiveDescendant();\n }, [\n manager.collection,\n updateActiveDescendant\n ]);\n let resetFocusFirstFlag = (0, $3H3GQ$useEffectEvent)(()=>{\n // If user causes the focused key to change in any other way, clear shouldVirtualFocusFirst so we don't\n // accidentally move focus from under them. Skip this if the collection was empty because we might be in a load\n // state and will still want to focus the first item after load\n if (manager.collection.size > 0) shouldVirtualFocusFirst.current = false;\n });\n (0, $3H3GQ$useUpdateLayoutEffect)(()=>{\n resetFocusFirstFlag();\n }, [\n manager.focusedKey,\n resetFocusFirstFlag\n ]);\n (0, $3H3GQ$useEvent)(ref, (0, $3H3GQ$CLEAR_FOCUS_EVENT), !shouldUseVirtualFocus ? undefined : (e)=>{\n e.stopPropagation();\n manager.setFocused(false);\n manager.setFocusedKey(null);\n });\n const autoFocusRef = (0, $3H3GQ$useRef)(autoFocus);\n (0, $3H3GQ$useEffect)(()=>{\n if (autoFocusRef.current) {\n var _delegate_getFirstKey, _delegate_getLastKey;\n let focusedKey = null;\n var _delegate_getFirstKey1;\n // Check focus strategy to determine which item to focus\n if (autoFocus === 'first') focusedKey = (_delegate_getFirstKey1 = (_delegate_getFirstKey = delegate.getFirstKey) === null || _delegate_getFirstKey === void 0 ? void 0 : _delegate_getFirstKey.call(delegate)) !== null && _delegate_getFirstKey1 !== void 0 ? _delegate_getFirstKey1 : null;\n var _delegate_getLastKey1;\n if (autoFocus === 'last') focusedKey = (_delegate_getLastKey1 = (_delegate_getLastKey = delegate.getLastKey) === null || _delegate_getLastKey === void 0 ? void 0 : _delegate_getLastKey.call(delegate)) !== null && _delegate_getLastKey1 !== void 0 ? _delegate_getLastKey1 : null;\n // If there are any selected keys, make the first one the new focus target\n let selectedKeys = manager.selectedKeys;\n if (selectedKeys.size) {\n for (let key of selectedKeys)if (manager.canSelectItem(key)) {\n focusedKey = key;\n break;\n }\n }\n manager.setFocused(true);\n manager.setFocusedKey(focusedKey);\n // If no default focus key is selected, focus the collection itself.\n if (focusedKey == null && !shouldUseVirtualFocus && ref.current) (0, $3H3GQ$focusSafely)(ref.current);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n // Scroll the focused element into view when the focusedKey changes.\n let lastFocusedKey = (0, $3H3GQ$useRef)(manager.focusedKey);\n (0, $3H3GQ$useEffect)(()=>{\n if (manager.isFocused && manager.focusedKey != null && (manager.focusedKey !== lastFocusedKey.current || autoFocusRef.current) && scrollRef.current && ref.current) {\n let modality = (0, $3H3GQ$getInteractionModality)();\n let element = ref.current.querySelector(`[data-key=\"${CSS.escape(manager.focusedKey.toString())}\"]`);\n if (!element) // If item element wasn't found, return early (don't update autoFocusRef and lastFocusedKey).\n // The collection may initially be empty (e.g. virtualizer), so wait until the element exists.\n return;\n if (modality === 'keyboard' || autoFocusRef.current) {\n (0, $3H3GQ$scrollIntoView)(scrollRef.current, element);\n // Avoid scroll in iOS VO, since it may cause overlay to close (i.e. RAC submenu)\n if (modality !== 'virtual') (0, $3H3GQ$scrollIntoViewport)(element, {\n containingElement: ref.current\n });\n }\n }\n // If the focused key becomes null (e.g. the last item is deleted), focus the whole collection.\n if (!shouldUseVirtualFocus && manager.isFocused && manager.focusedKey == null && lastFocusedKey.current != null && ref.current) (0, $3H3GQ$focusSafely)(ref.current);\n lastFocusedKey.current = manager.focusedKey;\n autoFocusRef.current = false;\n });\n // Intercept FocusScope restoration since virtualized collections can reuse DOM nodes.\n (0, $3H3GQ$useEvent)(ref, 'react-aria-focus-scope-restore', (e)=>{\n e.preventDefault();\n manager.setFocused(true);\n });\n let handlers = {\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n onMouseDown (e) {\n // Ignore events that bubbled through portals.\n if (scrollRef.current === e.target) // Prevent focus going to the collection when clicking on the scrollbar.\n e.preventDefault();\n }\n };\n let { typeSelectProps: typeSelectProps } = (0, $fb3050f43d946246$export$e32c88dfddc6e1d8)({\n keyboardDelegate: delegate,\n selectionManager: manager\n });\n if (!disallowTypeAhead) handlers = (0, $3H3GQ$mergeProps)(typeSelectProps, handlers);\n // If nothing is focused within the collection, make the collection itself tabbable.\n // This will be marshalled to either the first or last item depending on where focus came from.\n let tabIndex = undefined;\n if (!shouldUseVirtualFocus) tabIndex = manager.focusedKey == null ? 0 : -1;\n else tabIndex = -1;\n return {\n collectionProps: {\n ...handlers,\n tabIndex: tabIndex\n }\n };\n}\n\n\nexport {$ae20dd8cbca75726$export$d6daf82dcd84e87c as useSelectableCollection};\n//# sourceMappingURL=useSelectableCollection.module.js.map\n","import {isNonContiguousSelectionModifier as $feb5ffebff200149$export$d3e3bd3e26688c04} from \"./utils.mjs\";\nimport {focusSafely as $581M0$focusSafely} from \"@react-aria/focus\";\nimport {useRouter as $581M0$useRouter, useId as $581M0$useId, isCtrlKeyPressed as $581M0$isCtrlKeyPressed, UPDATE_ACTIVEDESCENDANT as $581M0$UPDATE_ACTIVEDESCENDANT, openLink as $581M0$openLink, mergeProps as $581M0$mergeProps} from \"@react-aria/utils\";\nimport {usePress as $581M0$usePress, useLongPress as $581M0$useLongPress} from \"@react-aria/interactions\";\nimport {useEffect as $581M0$useEffect, useRef as $581M0$useRef} from \"react\";\n\n/*\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\n\n\n\nfunction $880e95eb8b93ba9a$export$ecf600387e221c37(options) {\n let { id: id, selectionManager: manager, key: key, ref: ref, shouldSelectOnPressUp: shouldSelectOnPressUp, shouldUseVirtualFocus: shouldUseVirtualFocus, focus: focus, isDisabled: isDisabled, onAction: onAction, allowsDifferentPressOrigin: allowsDifferentPressOrigin, linkBehavior: linkBehavior = 'action' } = options;\n let router = (0, $581M0$useRouter)();\n id = (0, $581M0$useId)(id);\n let onSelect = (e)=>{\n if (e.pointerType === 'keyboard' && (0, $feb5ffebff200149$export$d3e3bd3e26688c04)(e)) manager.toggleSelection(key);\n else {\n if (manager.selectionMode === 'none') return;\n if (manager.isLink(key)) {\n if (linkBehavior === 'selection' && ref.current) {\n let itemProps = manager.getItemProps(key);\n router.open(ref.current, e, itemProps.href, itemProps.routerOptions);\n // Always set selected keys back to what they were so that select and combobox close.\n manager.setSelectedKeys(manager.selectedKeys);\n return;\n } else if (linkBehavior === 'override' || linkBehavior === 'none') return;\n }\n if (manager.selectionMode === 'single') {\n if (manager.isSelected(key) && !manager.disallowEmptySelection) manager.toggleSelection(key);\n else manager.replaceSelection(key);\n } else if (e && e.shiftKey) manager.extendSelection(key);\n else if (manager.selectionBehavior === 'toggle' || e && ((0, $581M0$isCtrlKeyPressed)(e) || e.pointerType === 'touch' || e.pointerType === 'virtual')) // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n manager.toggleSelection(key);\n else manager.replaceSelection(key);\n }\n };\n // Focus the associated DOM node when this item becomes the focusedKey\n // TODO: can't make this useLayoutEffect bacause it breaks menus inside dialogs\n // However, if this is a useEffect, it runs twice and dispatches two UPDATE_ACTIVEDESCENDANT and immediately sets\n // aria-activeDescendant in useAutocomplete... I've worked around this for now\n (0, $581M0$useEffect)(()=>{\n let isFocused = key === manager.focusedKey;\n if (isFocused && manager.isFocused) {\n if (!shouldUseVirtualFocus) {\n if (focus) focus();\n else if (document.activeElement !== ref.current && ref.current) (0, $581M0$focusSafely)(ref.current);\n } else {\n var _ref_current;\n let updateActiveDescendant = new CustomEvent((0, $581M0$UPDATE_ACTIVEDESCENDANT), {\n cancelable: true,\n bubbles: true\n });\n (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.dispatchEvent(updateActiveDescendant);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n ref,\n key,\n manager.focusedKey,\n manager.childFocusStrategy,\n manager.isFocused,\n shouldUseVirtualFocus\n ]);\n isDisabled = isDisabled || manager.isDisabled(key);\n // Set tabIndex to 0 if the element is focused, or -1 otherwise so that only the last focused\n // item is tabbable. If using virtual focus, don't set a tabIndex at all so that VoiceOver\n // on iOS 14 doesn't try to move real DOM focus to the item anyway.\n let itemProps = {};\n if (!shouldUseVirtualFocus && !isDisabled) itemProps = {\n tabIndex: key === manager.focusedKey ? 0 : -1,\n onFocus (e) {\n if (e.target === ref.current) manager.setFocusedKey(key);\n }\n };\n else if (isDisabled) itemProps.onMouseDown = (e)=>{\n // Prevent focus going to the body when clicking on a disabled item.\n e.preventDefault();\n };\n // With checkbox selection, onAction (i.e. navigation) becomes primary, and occurs on a single click of the row.\n // Clicking the checkbox enters selection mode, after which clicking anywhere on any row toggles selection for that row.\n // With highlight selection, onAction is secondary, and occurs on double click. Single click selects the row.\n // With touch, onAction occurs on single tap, and long press enters selection mode.\n let isLinkOverride = manager.isLink(key) && linkBehavior === 'override';\n let hasLinkAction = manager.isLink(key) && linkBehavior !== 'selection' && linkBehavior !== 'none';\n let allowsSelection = !isDisabled && manager.canSelectItem(key) && !isLinkOverride;\n let allowsActions = (onAction || hasLinkAction) && !isDisabled;\n let hasPrimaryAction = allowsActions && (manager.selectionBehavior === 'replace' ? !allowsSelection : !allowsSelection || manager.isEmpty);\n let hasSecondaryAction = allowsActions && allowsSelection && manager.selectionBehavior === 'replace';\n let hasAction = hasPrimaryAction || hasSecondaryAction;\n let modality = (0, $581M0$useRef)(null);\n let longPressEnabled = hasAction && allowsSelection;\n let longPressEnabledOnPressStart = (0, $581M0$useRef)(false);\n let hadPrimaryActionOnPressStart = (0, $581M0$useRef)(false);\n let performAction = (e)=>{\n if (onAction) onAction();\n if (hasLinkAction && ref.current) {\n let itemProps = manager.getItemProps(key);\n router.open(ref.current, e, itemProps.href, itemProps.routerOptions);\n }\n };\n // By default, selection occurs on pointer down. This can be strange if selecting an\n // item causes the UI to disappear immediately (e.g. menus).\n // If shouldSelectOnPressUp is true, we use onPressUp instead of onPressStart.\n // onPress requires a pointer down event on the same element as pointer up. For menus,\n // we want to be able to have the pointer down on the trigger that opens the menu and\n // the pointer up on the menu item rather than requiring a separate press.\n // For keyboard events, selection still occurs on key down.\n let itemPressProps = {};\n if (shouldSelectOnPressUp) {\n itemPressProps.onPressStart = (e)=>{\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n if (e.pointerType === 'keyboard' && (!hasAction || $880e95eb8b93ba9a$var$isSelectionKey())) onSelect(e);\n };\n // If allowsDifferentPressOrigin and interacting with mouse, make selection happen on pressUp (e.g. open menu on press down, selection on menu item happens on press up.)\n // Otherwise, have selection happen onPress (prevents listview row selection when clicking on interactable elements in the row)\n if (!allowsDifferentPressOrigin) itemPressProps.onPress = (e)=>{\n if (hasPrimaryAction || hasSecondaryAction && e.pointerType !== 'mouse') {\n if (e.pointerType === 'keyboard' && !$880e95eb8b93ba9a$var$isActionKey()) return;\n performAction(e);\n } else if (e.pointerType !== 'keyboard' && allowsSelection) onSelect(e);\n };\n else {\n itemPressProps.onPressUp = hasPrimaryAction ? undefined : (e)=>{\n if (e.pointerType === 'mouse' && allowsSelection) onSelect(e);\n };\n itemPressProps.onPress = hasPrimaryAction ? performAction : (e)=>{\n if (e.pointerType !== 'keyboard' && e.pointerType !== 'mouse' && allowsSelection) onSelect(e);\n };\n }\n } else {\n itemPressProps.onPressStart = (e)=>{\n modality.current = e.pointerType;\n longPressEnabledOnPressStart.current = longPressEnabled;\n hadPrimaryActionOnPressStart.current = hasPrimaryAction;\n // Select on mouse down unless there is a primary action which will occur on mouse up.\n // For keyboard, select on key down. If there is an action, the Space key selects on key down,\n // and the Enter key performs onAction on key up.\n if (allowsSelection && (e.pointerType === 'mouse' && !hasPrimaryAction || e.pointerType === 'keyboard' && (!allowsActions || $880e95eb8b93ba9a$var$isSelectionKey()))) onSelect(e);\n };\n itemPressProps.onPress = (e)=>{\n // Selection occurs on touch up. Primary actions always occur on pointer up.\n // Both primary and secondary actions occur on Enter key up. The only exception\n // is secondary actions, which occur on double click with a mouse.\n if (e.pointerType === 'touch' || e.pointerType === 'pen' || e.pointerType === 'virtual' || e.pointerType === 'keyboard' && hasAction && $880e95eb8b93ba9a$var$isActionKey() || e.pointerType === 'mouse' && hadPrimaryActionOnPressStart.current) {\n if (hasAction) performAction(e);\n else if (allowsSelection) onSelect(e);\n }\n };\n }\n itemProps['data-key'] = key;\n itemPressProps.preventFocusOnPress = shouldUseVirtualFocus;\n let { pressProps: pressProps, isPressed: isPressed } = (0, $581M0$usePress)(itemPressProps);\n // Double clicking with a mouse with selectionBehavior = 'replace' performs an action.\n let onDoubleClick = hasSecondaryAction ? (e)=>{\n if (modality.current === 'mouse') {\n e.stopPropagation();\n e.preventDefault();\n performAction(e);\n }\n } : undefined;\n // Long pressing an item with touch when selectionBehavior = 'replace' switches the selection behavior\n // to 'toggle'. This changes the single tap behavior from performing an action (i.e. navigating) to\n // selecting, and may toggle the appearance of a UI affordance like checkboxes on each item.\n let { longPressProps: longPressProps } = (0, $581M0$useLongPress)({\n isDisabled: !longPressEnabled,\n onLongPress (e) {\n if (e.pointerType === 'touch') {\n onSelect(e);\n manager.setSelectionBehavior('toggle');\n }\n }\n });\n // Prevent native drag and drop on long press if we also select on long press.\n // Once the user is in selection mode, they can long press again to drag.\n // Use a capturing listener to ensure this runs before useDrag, regardless of\n // the order the props get merged.\n let onDragStartCapture = (e)=>{\n if (modality.current === 'touch' && longPressEnabledOnPressStart.current) e.preventDefault();\n };\n // Prevent default on link clicks so that we control exactly\n // when they open (to match selection behavior).\n let onClick = manager.isLink(key) ? (e)=>{\n if (!(0, $581M0$openLink).isOpening) e.preventDefault();\n } : undefined;\n return {\n itemProps: (0, $581M0$mergeProps)(itemProps, allowsSelection || hasPrimaryAction ? pressProps : {}, longPressEnabled ? longPressProps : {}, {\n onDoubleClick: onDoubleClick,\n onDragStartCapture: onDragStartCapture,\n onClick: onClick,\n id: id\n }),\n isPressed: isPressed,\n isSelected: manager.isSelected(key),\n isFocused: manager.isFocused && manager.focusedKey === key,\n isDisabled: isDisabled,\n allowsSelection: allowsSelection,\n hasAction: hasAction\n };\n}\nfunction $880e95eb8b93ba9a$var$isActionKey() {\n let event = window.event;\n return (event === null || event === void 0 ? void 0 : event.key) === 'Enter';\n}\nfunction $880e95eb8b93ba9a$var$isSelectionKey() {\n let event = window.event;\n return (event === null || event === void 0 ? void 0 : event.key) === ' ' || (event === null || event === void 0 ? void 0 : event.code) === 'Space';\n}\n\n\nexport {$880e95eb8b93ba9a$export$ecf600387e221c37 as useSelectableItem};\n//# sourceMappingURL=useSelectableItem.module.js.map\n","/*\n * Copyright 2024 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 */ class $657e4dc4a6e88df0$export$8f5ed9ff9f511381 {\n getItemRect(key) {\n let container = this.ref.current;\n if (!container) return null;\n let item = key != null ? container.querySelector(`[data-key=\"${CSS.escape(key.toString())}\"]`) : null;\n if (!item) return null;\n let containerRect = container.getBoundingClientRect();\n let itemRect = item.getBoundingClientRect();\n return {\n x: itemRect.left - containerRect.left + container.scrollLeft,\n y: itemRect.top - containerRect.top + container.scrollTop,\n width: itemRect.width,\n height: itemRect.height\n };\n }\n getContentSize() {\n let container = this.ref.current;\n var _container_scrollWidth, _container_scrollHeight;\n return {\n width: (_container_scrollWidth = container === null || container === void 0 ? void 0 : container.scrollWidth) !== null && _container_scrollWidth !== void 0 ? _container_scrollWidth : 0,\n height: (_container_scrollHeight = container === null || container === void 0 ? void 0 : container.scrollHeight) !== null && _container_scrollHeight !== void 0 ? _container_scrollHeight : 0\n };\n }\n getVisibleRect() {\n let container = this.ref.current;\n var _container_scrollLeft, _container_scrollTop, _container_offsetWidth, _container_offsetHeight;\n return {\n x: (_container_scrollLeft = container === null || container === void 0 ? void 0 : container.scrollLeft) !== null && _container_scrollLeft !== void 0 ? _container_scrollLeft : 0,\n y: (_container_scrollTop = container === null || container === void 0 ? void 0 : container.scrollTop) !== null && _container_scrollTop !== void 0 ? _container_scrollTop : 0,\n width: (_container_offsetWidth = container === null || container === void 0 ? void 0 : container.offsetWidth) !== null && _container_offsetWidth !== void 0 ? _container_offsetWidth : 0,\n height: (_container_offsetHeight = container === null || container === void 0 ? void 0 : container.offsetHeight) !== null && _container_offsetHeight !== void 0 ? _container_offsetHeight : 0\n };\n }\n constructor(ref){\n this.ref = ref;\n }\n}\n\n\nexport {$657e4dc4a6e88df0$export$8f5ed9ff9f511381 as DOMLayoutDelegate};\n//# sourceMappingURL=DOMLayoutDelegate.module.js.map\n","import {DOMLayoutDelegate as $657e4dc4a6e88df0$export$8f5ed9ff9f511381} from \"./DOMLayoutDelegate.mjs\";\nimport {isScrollable as $eak97$isScrollable} from \"@react-aria/utils\";\n\n/*\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\nclass $2a25aae57d74318e$export$a05409b8bb224a5a {\n isDisabled(item) {\n var _item_props;\n return this.disabledBehavior === 'all' && (((_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.isDisabled) || this.disabledKeys.has(item.key));\n }\n findNextNonDisabled(key, getNext) {\n let nextKey = key;\n while(nextKey != null){\n let item = this.collection.getItem(nextKey);\n if ((item === null || item === void 0 ? void 0 : item.type) === 'item' && !this.isDisabled(item)) return nextKey;\n nextKey = getNext(nextKey);\n }\n return null;\n }\n getNextKey(key) {\n let nextKey = key;\n nextKey = this.collection.getKeyAfter(nextKey);\n return this.findNextNonDisabled(nextKey, (key)=>this.collection.getKeyAfter(key));\n }\n getPreviousKey(key) {\n let nextKey = key;\n nextKey = this.collection.getKeyBefore(nextKey);\n return this.findNextNonDisabled(nextKey, (key)=>this.collection.getKeyBefore(key));\n }\n findKey(key, nextKey, shouldSkip) {\n let tempKey = key;\n let itemRect = this.layoutDelegate.getItemRect(tempKey);\n if (!itemRect || tempKey == null) return null;\n // Find the item above or below in the same column.\n let prevRect = itemRect;\n do {\n tempKey = nextKey(tempKey);\n if (tempKey == null) break;\n itemRect = this.layoutDelegate.getItemRect(tempKey);\n }while (itemRect && shouldSkip(prevRect, itemRect) && tempKey != null);\n return tempKey;\n }\n isSameRow(prevRect, itemRect) {\n return prevRect.y === itemRect.y || prevRect.x !== itemRect.x;\n }\n isSameColumn(prevRect, itemRect) {\n return prevRect.x === itemRect.x || prevRect.y !== itemRect.y;\n }\n getKeyBelow(key) {\n if (this.layout === 'grid' && this.orientation === 'vertical') return this.findKey(key, (key)=>this.getNextKey(key), this.isSameRow);\n else return this.getNextKey(key);\n }\n getKeyAbove(key) {\n if (this.layout === 'grid' && this.orientation === 'vertical') return this.findKey(key, (key)=>this.getPreviousKey(key), this.isSameRow);\n else return this.getPreviousKey(key);\n }\n getNextColumn(key, right) {\n return right ? this.getPreviousKey(key) : this.getNextKey(key);\n }\n getKeyRightOf(key) {\n // This is a temporary solution for CardView until we refactor useSelectableCollection.\n // https://github.com/orgs/adobe/projects/19/views/32?pane=issue&itemId=77825042\n let layoutDelegateMethod = this.direction === 'ltr' ? 'getKeyRightOf' : 'getKeyLeftOf';\n if (this.layoutDelegate[layoutDelegateMethod]) {\n key = this.layoutDelegate[layoutDelegateMethod](key);\n return this.findNextNonDisabled(key, (key)=>this.layoutDelegate[layoutDelegateMethod](key));\n }\n if (this.layout === 'grid') {\n if (this.orientation === 'vertical') return this.getNextColumn(key, this.direction === 'rtl');\n else return this.findKey(key, (key)=>this.getNextColumn(key, this.direction === 'rtl'), this.isSameColumn);\n } else if (this.orientation === 'horizontal') return this.getNextColumn(key, this.direction === 'rtl');\n return null;\n }\n getKeyLeftOf(key) {\n let layoutDelegateMethod = this.direction === 'ltr' ? 'getKeyLeftOf' : 'getKeyRightOf';\n if (this.layoutDelegate[layoutDelegateMethod]) {\n key = this.layoutDelegate[layoutDelegateMethod](key);\n return this.findNextNonDisabled(key, (key)=>this.layoutDelegate[layoutDelegateMethod](key));\n }\n if (this.layout === 'grid') {\n if (this.orientation === 'vertical') return this.getNextColumn(key, this.direction === 'ltr');\n else return this.findKey(key, (key)=>this.getNextColumn(key, this.direction === 'ltr'), this.isSameColumn);\n } else if (this.orientation === 'horizontal') return this.getNextColumn(key, this.direction === 'ltr');\n return null;\n }\n getFirstKey() {\n let key = this.collection.getFirstKey();\n return this.findNextNonDisabled(key, (key)=>this.collection.getKeyAfter(key));\n }\n getLastKey() {\n let key = this.collection.getLastKey();\n return this.findNextNonDisabled(key, (key)=>this.collection.getKeyBefore(key));\n }\n getKeyPageAbove(key) {\n let menu = this.ref.current;\n let itemRect = this.layoutDelegate.getItemRect(key);\n if (!itemRect) return null;\n if (menu && !(0, $eak97$isScrollable)(menu)) return this.getFirstKey();\n let nextKey = key;\n if (this.orientation === 'horizontal') {\n let pageX = Math.max(0, itemRect.x + itemRect.width - this.layoutDelegate.getVisibleRect().width);\n while(itemRect && itemRect.x > pageX && nextKey != null){\n nextKey = this.getKeyAbove(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n } else {\n let pageY = Math.max(0, itemRect.y + itemRect.height - this.layoutDelegate.getVisibleRect().height);\n while(itemRect && itemRect.y > pageY && nextKey != null){\n nextKey = this.getKeyAbove(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n }\n return nextKey !== null && nextKey !== void 0 ? nextKey : this.getFirstKey();\n }\n getKeyPageBelow(key) {\n let menu = this.ref.current;\n let itemRect = this.layoutDelegate.getItemRect(key);\n if (!itemRect) return null;\n if (menu && !(0, $eak97$isScrollable)(menu)) return this.getLastKey();\n let nextKey = key;\n if (this.orientation === 'horizontal') {\n let pageX = Math.min(this.layoutDelegate.getContentSize().width, itemRect.y - itemRect.width + this.layoutDelegate.getVisibleRect().width);\n while(itemRect && itemRect.x < pageX && nextKey != null){\n nextKey = this.getKeyBelow(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n } else {\n let pageY = Math.min(this.layoutDelegate.getContentSize().height, itemRect.y - itemRect.height + this.layoutDelegate.getVisibleRect().height);\n while(itemRect && itemRect.y < pageY && nextKey != null){\n nextKey = this.getKeyBelow(nextKey);\n itemRect = nextKey == null ? null : this.layoutDelegate.getItemRect(nextKey);\n }\n }\n return nextKey !== null && nextKey !== void 0 ? nextKey : this.getLastKey();\n }\n getKeyForSearch(search, fromKey) {\n if (!this.collator) return null;\n let collection = this.collection;\n let key = fromKey || this.getFirstKey();\n while(key != null){\n let item = collection.getItem(key);\n if (!item) return null;\n let substring = item.textValue.slice(0, search.length);\n if (item.textValue && this.collator.compare(substring, search) === 0) return key;\n key = this.getNextKey(key);\n }\n return null;\n }\n constructor(...args){\n if (args.length === 1) {\n let opts = args[0];\n this.collection = opts.collection;\n this.ref = opts.ref;\n this.collator = opts.collator;\n this.disabledKeys = opts.disabledKeys || new Set();\n this.disabledBehavior = opts.disabledBehavior || 'all';\n this.orientation = opts.orientation || 'vertical';\n this.direction = opts.direction;\n this.layout = opts.layout || 'stack';\n this.layoutDelegate = opts.layoutDelegate || new (0, $657e4dc4a6e88df0$export$8f5ed9ff9f511381)(opts.ref);\n } else {\n this.collection = args[0];\n this.disabledKeys = args[1];\n this.ref = args[2];\n this.collator = args[3];\n this.layout = 'stack';\n this.orientation = 'vertical';\n this.disabledBehavior = 'all';\n this.layoutDelegate = new (0, $657e4dc4a6e88df0$export$8f5ed9ff9f511381)(this.ref);\n }\n // If this is a vertical stack, remove the left/right methods completely\n // so they aren't called by useDroppableCollection.\n if (this.layout === 'stack' && this.orientation === 'vertical') {\n this.getKeyLeftOf = undefined;\n this.getKeyRightOf = undefined;\n }\n }\n}\n\n\nexport {$2a25aae57d74318e$export$a05409b8bb224a5a as ListKeyboardDelegate};\n//# sourceMappingURL=ListKeyboardDelegate.module.js.map\n","import {useSelectableCollection as $ae20dd8cbca75726$export$d6daf82dcd84e87c} from \"./useSelectableCollection.mjs\";\nimport {ListKeyboardDelegate as $2a25aae57d74318e$export$a05409b8bb224a5a} from \"./ListKeyboardDelegate.mjs\";\nimport {useCollator as $1aJk5$useCollator} from \"@react-aria/i18n\";\nimport {useMemo as $1aJk5$useMemo} from \"react\";\n\n/*\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\n\n\nfunction $982254629710d113$export$b95089534ab7c1fd(props) {\n let { selectionManager: selectionManager, collection: collection, disabledKeys: disabledKeys, ref: ref, keyboardDelegate: keyboardDelegate, layoutDelegate: layoutDelegate } = props;\n // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n // When virtualized, the layout object will be passed in as a prop and override this.\n let collator = (0, $1aJk5$useCollator)({\n usage: 'search',\n sensitivity: 'base'\n });\n let disabledBehavior = selectionManager.disabledBehavior;\n let delegate = (0, $1aJk5$useMemo)(()=>keyboardDelegate || new (0, $2a25aae57d74318e$export$a05409b8bb224a5a)({\n collection: collection,\n disabledKeys: disabledKeys,\n disabledBehavior: disabledBehavior,\n ref: ref,\n collator: collator,\n layoutDelegate: layoutDelegate\n }), [\n keyboardDelegate,\n layoutDelegate,\n collection,\n disabledKeys,\n ref,\n collator,\n disabledBehavior\n ]);\n let { collectionProps: collectionProps } = (0, $ae20dd8cbca75726$export$d6daf82dcd84e87c)({\n ...props,\n ref: ref,\n selectionManager: selectionManager,\n keyboardDelegate: delegate\n });\n return {\n listProps: collectionProps\n };\n}\n\n\nexport {$982254629710d113$export$b95089534ab7c1fd as useSelectableList};\n//# sourceMappingURL=useSelectableList.module.js.map\n","import $fzaAv$react from \"react\";\n\n/*\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 */ \nclass $eb2240fc39a57fa5$export$bf788dd355e3a401 {\n build(props, context) {\n this.context = context;\n return $eb2240fc39a57fa5$var$iterable(()=>this.iterateCollection(props));\n }\n *iterateCollection(props) {\n let { children: children, items: items } = props;\n if ((0, $fzaAv$react).isValidElement(children) && children.type === (0, $fzaAv$react).Fragment) yield* this.iterateCollection({\n children: children.props.children,\n items: items\n });\n else if (typeof children === 'function') {\n if (!items) throw new Error('props.children was a function but props.items is missing');\n let index = 0;\n for (let item of items){\n yield* this.getFullNode({\n value: item,\n index: index\n }, {\n renderer: children\n });\n index++;\n }\n } else {\n let items = [];\n (0, $fzaAv$react).Children.forEach(children, (child)=>{\n if (child) items.push(child);\n });\n let index = 0;\n for (let item of items){\n let nodes = this.getFullNode({\n element: item,\n index: index\n }, {});\n for (let node of nodes){\n index++;\n yield node;\n }\n }\n }\n }\n getKey(item, partialNode, state, parentKey) {\n if (item.key != null) return item.key;\n if (partialNode.type === 'cell' && partialNode.key != null) return `${parentKey}${partialNode.key}`;\n let v = partialNode.value;\n if (v != null) {\n var _v_key;\n let key = (_v_key = v.key) !== null && _v_key !== void 0 ? _v_key : v.id;\n if (key == null) throw new Error('No key found for item');\n return key;\n }\n return parentKey ? `${parentKey}.${partialNode.index}` : `$.${partialNode.index}`;\n }\n getChildState(state, partialNode) {\n return {\n renderer: partialNode.renderer || state.renderer\n };\n }\n *getFullNode(partialNode, state, parentKey, parentNode) {\n if ((0, $fzaAv$react).isValidElement(partialNode.element) && partialNode.element.type === (0, $fzaAv$react).Fragment) {\n let children = [];\n (0, $fzaAv$react).Children.forEach(partialNode.element.props.children, (child)=>{\n children.push(child);\n });\n var _partialNode_index;\n let index = (_partialNode_index = partialNode.index) !== null && _partialNode_index !== void 0 ? _partialNode_index : 0;\n for (const child of children)yield* this.getFullNode({\n element: child,\n index: index++\n }, state, parentKey, parentNode);\n return;\n }\n // If there's a value instead of an element on the node, and a parent renderer function is available,\n // use it to render an element for the value.\n let element = partialNode.element;\n if (!element && partialNode.value && state && state.renderer) {\n let cached = this.cache.get(partialNode.value);\n if (cached && (!cached.shouldInvalidate || !cached.shouldInvalidate(this.context))) {\n cached.index = partialNode.index;\n cached.parentKey = parentNode ? parentNode.key : null;\n yield cached;\n return;\n }\n element = state.renderer(partialNode.value);\n }\n // If there's an element with a getCollectionNode function on its type, then it's a supported component.\n // Call this function to get a partial node, and recursively build a full node from there.\n if ((0, $fzaAv$react).isValidElement(element)) {\n let type = element.type;\n if (typeof type !== 'function' && typeof type.getCollectionNode !== 'function') {\n let name = element.type;\n throw new Error(`Unknown element <${name}> in collection.`);\n }\n let childNodes = type.getCollectionNode(element.props, this.context);\n var _partialNode_index1;\n let index = (_partialNode_index1 = partialNode.index) !== null && _partialNode_index1 !== void 0 ? _partialNode_index1 : 0;\n let result = childNodes.next();\n while(!result.done && result.value){\n let childNode = result.value;\n partialNode.index = index;\n var _childNode_key;\n let nodeKey = (_childNode_key = childNode.key) !== null && _childNode_key !== void 0 ? _childNode_key : null;\n if (nodeKey == null) nodeKey = childNode.element ? null : this.getKey(element, partialNode, state, parentKey);\n let nodes = this.getFullNode({\n ...childNode,\n key: nodeKey,\n index: index,\n wrapper: $eb2240fc39a57fa5$var$compose(partialNode.wrapper, childNode.wrapper)\n }, this.getChildState(state, childNode), parentKey ? `${parentKey}${element.key}` : element.key, parentNode);\n let children = [\n ...nodes\n ];\n for (let node of children){\n var _childNode_value, _ref;\n // Cache the node based on its value\n node.value = (_ref = (_childNode_value = childNode.value) !== null && _childNode_value !== void 0 ? _childNode_value : partialNode.value) !== null && _ref !== void 0 ? _ref : null;\n if (node.value) this.cache.set(node.value, node);\n var _parentNode_type;\n // The partial node may have specified a type for the child in order to specify a constraint.\n // Verify that the full node that was built recursively matches this type.\n if (partialNode.type && node.type !== partialNode.type) throw new Error(`Unsupported type <${$eb2240fc39a57fa5$var$capitalize(node.type)}> in <${$eb2240fc39a57fa5$var$capitalize((_parentNode_type = parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) !== null && _parentNode_type !== void 0 ? _parentNode_type : 'unknown parent type')}>. Only <${$eb2240fc39a57fa5$var$capitalize(partialNode.type)}> is supported.`);\n index++;\n yield node;\n }\n result = childNodes.next(children);\n }\n return;\n }\n // Ignore invalid elements\n if (partialNode.key == null || partialNode.type == null) return;\n // Create full node\n let builder = this;\n var _partialNode_value, _partialNode_textValue;\n let node = {\n type: partialNode.type,\n props: partialNode.props,\n key: partialNode.key,\n parentKey: parentNode ? parentNode.key : null,\n value: (_partialNode_value = partialNode.value) !== null && _partialNode_value !== void 0 ? _partialNode_value : null,\n level: parentNode ? parentNode.level + 1 : 0,\n index: partialNode.index,\n rendered: partialNode.rendered,\n textValue: (_partialNode_textValue = partialNode.textValue) !== null && _partialNode_textValue !== void 0 ? _partialNode_textValue : '',\n 'aria-label': partialNode['aria-label'],\n wrapper: partialNode.wrapper,\n shouldInvalidate: partialNode.shouldInvalidate,\n hasChildNodes: partialNode.hasChildNodes || false,\n childNodes: $eb2240fc39a57fa5$var$iterable(function*() {\n if (!partialNode.hasChildNodes || !partialNode.childNodes) return;\n let index = 0;\n for (let child of partialNode.childNodes()){\n // Ensure child keys are globally unique by prepending the parent node's key\n if (child.key != null) // TODO: Remove this line entirely and enforce that users always provide unique keys.\n // Currently this line will have issues when a parent has a key `a` and a child with key `bc`\n // but another parent has key `ab` and its child has a key `c`. The combined keys would result in both\n // children having a key of `abc`.\n child.key = `${node.key}${child.key}`;\n let nodes = builder.getFullNode({\n ...child,\n index: index\n }, builder.getChildState(state, child), node.key, node);\n for (let node of nodes){\n index++;\n yield node;\n }\n }\n })\n };\n yield node;\n }\n constructor(){\n this.cache = new WeakMap();\n }\n}\n// Wraps an iterator function as an iterable object, and caches the results.\nfunction $eb2240fc39a57fa5$var$iterable(iterator) {\n let cache = [];\n let iterable = null;\n return {\n *[Symbol.iterator] () {\n for (let item of cache)yield item;\n if (!iterable) iterable = iterator();\n for (let item of iterable){\n cache.push(item);\n yield item;\n }\n }\n };\n}\nfunction $eb2240fc39a57fa5$var$compose(outer, inner) {\n if (outer && inner) return (element)=>outer(inner(element));\n if (outer) return outer;\n if (inner) return inner;\n}\nfunction $eb2240fc39a57fa5$var$capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\n\n\nexport {$eb2240fc39a57fa5$export$bf788dd355e3a401 as CollectionBuilder};\n//# sourceMappingURL=CollectionBuilder.module.js.map\n","import {CollectionBuilder as $eb2240fc39a57fa5$export$bf788dd355e3a401} from \"./CollectionBuilder.mjs\";\nimport {useMemo as $lbNth$useMemo} from \"react\";\n\n/*\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\nfunction $7613b1592d41b092$export$6cd28814d92fa9c9(props, factory, context) {\n let builder = (0, $lbNth$useMemo)(()=>new (0, $eb2240fc39a57fa5$export$bf788dd355e3a401)(), []);\n let { children: children, items: items, collection: collection } = props;\n let result = (0, $lbNth$useMemo)(()=>{\n if (collection) return collection;\n let nodes = builder.build({\n children: children,\n items: items\n }, context);\n return factory(nodes);\n }, [\n builder,\n children,\n items,\n collection,\n context,\n factory\n ]);\n return result;\n}\n\n\nexport {$7613b1592d41b092$export$6cd28814d92fa9c9 as useCollection};\n//# sourceMappingURL=useCollection.module.js.map\n","/*\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 */ function $c5a24bc478652b5f$export$1005530eda016c13(node, collection) {\n // New API: call collection.getChildren with the node key.\n if (typeof collection.getChildren === 'function') return collection.getChildren(node.key);\n // Old API: access childNodes directly.\n return node.childNodes;\n}\nfunction $c5a24bc478652b5f$export$fbdeaa6a76694f71(iterable) {\n return $c5a24bc478652b5f$export$5f3398f8733f90e2(iterable, 0);\n}\nfunction $c5a24bc478652b5f$export$5f3398f8733f90e2(iterable, index) {\n if (index < 0) return undefined;\n let i = 0;\n for (let item of iterable){\n if (i === index) return item;\n i++;\n }\n}\nfunction $c5a24bc478652b5f$export$7475b2c64539e4cf(iterable) {\n let lastItem = undefined;\n for (let value of iterable)lastItem = value;\n return lastItem;\n}\nfunction $c5a24bc478652b5f$export$8c434b3a7a4dad6(collection, a, b) {\n // If the two nodes have the same parent, compare their indices.\n if (a.parentKey === b.parentKey) return a.index - b.index;\n // Otherwise, collect all of the ancestors from each node, and find the first one that doesn't match starting from the root.\n // Include the base nodes in case we are comparing nodes of different levels so that we can compare the higher node to the lower level node's\n // ancestor of the same level\n let aAncestors = [\n ...$c5a24bc478652b5f$var$getAncestors(collection, a),\n a\n ];\n let bAncestors = [\n ...$c5a24bc478652b5f$var$getAncestors(collection, b),\n b\n ];\n let firstNonMatchingAncestor = aAncestors.slice(0, bAncestors.length).findIndex((a, i)=>a !== bAncestors[i]);\n if (firstNonMatchingAncestor !== -1) {\n // Compare the indices of two children within the common ancestor.\n a = aAncestors[firstNonMatchingAncestor];\n b = bAncestors[firstNonMatchingAncestor];\n return a.index - b.index;\n }\n // If there isn't a non matching ancestor, we might be in a case where one of the nodes is the ancestor of the other.\n if (aAncestors.findIndex((node)=>node === b) >= 0) return 1;\n else if (bAncestors.findIndex((node)=>node === a) >= 0) return -1;\n // 🤷\n return -1;\n}\nfunction $c5a24bc478652b5f$var$getAncestors(collection, node) {\n let parents = [];\n let currNode = node;\n while((currNode === null || currNode === void 0 ? void 0 : currNode.parentKey) != null){\n currNode = collection.getItem(currNode.parentKey);\n if (currNode) parents.unshift(currNode);\n }\n return parents;\n}\n\n\nexport {$c5a24bc478652b5f$export$1005530eda016c13 as getChildNodes, $c5a24bc478652b5f$export$fbdeaa6a76694f71 as getFirstItem, $c5a24bc478652b5f$export$5f3398f8733f90e2 as getNthItem, $c5a24bc478652b5f$export$7475b2c64539e4cf as getLastItem, $c5a24bc478652b5f$export$8c434b3a7a4dad6 as compareNodeOrder};\n//# sourceMappingURL=getChildNodes.module.js.map\n","import {getChildNodes as $c5a24bc478652b5f$export$1005530eda016c13} from \"./getChildNodes.mjs\";\n\n/*\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 */ \nconst $453cc9f0df89c0a5$var$cache = new WeakMap();\nfunction $453cc9f0df89c0a5$export$77d5aafae4e095b2(collection) {\n let count = $453cc9f0df89c0a5$var$cache.get(collection);\n if (count != null) return count;\n // TS isn't smart enough to know we've ensured count is a number, so use a new variable\n let counter = 0;\n let countItems = (items)=>{\n for (let item of items)if (item.type === 'section') countItems((0, $c5a24bc478652b5f$export$1005530eda016c13)(item, collection));\n else counter++;\n };\n countItems(collection);\n $453cc9f0df89c0a5$var$cache.set(collection, counter);\n return counter;\n}\n\n\nexport {$453cc9f0df89c0a5$export$77d5aafae4e095b2 as getItemCount};\n//# sourceMappingURL=getItemCount.module.js.map\n","/*\n * Copyright 2024 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 */ const $fc79756100351201$export$6f49b4016bfc8d56 = new WeakMap();\n\n\nexport {$fc79756100351201$export$6f49b4016bfc8d56 as menuData};\n//# sourceMappingURL=utils.module.js.map\n","import {menuData as $fc79756100351201$export$6f49b4016bfc8d56} from \"./utils.mjs\";\nimport {filterDOMProps as $ieN2F$filterDOMProps, mergeProps as $ieN2F$mergeProps} from \"@react-aria/utils\";\nimport {useSelectableList as $ieN2F$useSelectableList} from \"@react-aria/selection\";\n\n/*\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\n\nfunction $d5336fe17ce95402$export$38eaa17faae8f579(props, state, ref) {\n let { shouldFocusWrap: shouldFocusWrap = true, onKeyDown: onKeyDown, onKeyUp: onKeyUp, ...otherProps } = props;\n if (!props['aria-label'] && !props['aria-labelledby']) console.warn('An aria-label or aria-labelledby prop is required for accessibility.');\n let domProps = (0, $ieN2F$filterDOMProps)(props, {\n labelable: true\n });\n let { listProps: listProps } = (0, $ieN2F$useSelectableList)({\n ...otherProps,\n ref: ref,\n selectionManager: state.selectionManager,\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n shouldFocusWrap: shouldFocusWrap,\n linkBehavior: 'override'\n });\n (0, $fc79756100351201$export$6f49b4016bfc8d56).set(state, {\n onClose: props.onClose,\n onAction: props.onAction,\n shouldUseVirtualFocus: props.shouldUseVirtualFocus\n });\n return {\n menuProps: (0, $ieN2F$mergeProps)(domProps, {\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n }, {\n role: 'menu',\n ...listProps,\n onKeyDown: (e)=>{\n var _listProps_onKeyDown;\n // don't clear the menu selected keys if the user is presses escape since escape closes the menu\n if (e.key !== 'Escape' || props.shouldUseVirtualFocus) (_listProps_onKeyDown = listProps.onKeyDown) === null || _listProps_onKeyDown === void 0 ? void 0 : _listProps_onKeyDown.call(listProps, e);\n }\n })\n };\n}\n\n\nexport {$d5336fe17ce95402$export$38eaa17faae8f579 as useMenu};\n//# sourceMappingURL=useMenu.module.js.map\n","import {menuData as $fc79756100351201$export$6f49b4016bfc8d56} from \"./utils.mjs\";\nimport {useRouter as $7Kjv5$useRouter, useSlotId as $7Kjv5$useSlotId, filterDOMProps as $7Kjv5$filterDOMProps, useLinkProps as $7Kjv5$useLinkProps, mergeProps as $7Kjv5$mergeProps} from \"@react-aria/utils\";\nimport {getItemCount as $7Kjv5$getItemCount} from \"@react-stately/collections\";\nimport {usePress as $7Kjv5$usePress, useHover as $7Kjv5$useHover, isFocusVisible as $7Kjv5$isFocusVisible, useKeyboard as $7Kjv5$useKeyboard, useFocus as $7Kjv5$useFocus} from \"@react-aria/interactions\";\nimport {useSelectableItem as $7Kjv5$useSelectableItem} from \"@react-aria/selection\";\n\n/*\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\n\n\n\nfunction $a2e5df62f93c7633$export$9d32628fc2aea7da(props, state, ref) {\n let { id: id, key: key, closeOnSelect: closeOnSelect, isVirtualized: isVirtualized, 'aria-haspopup': hasPopup, onPressStart: pressStartProp, onPressUp: pressUpProp, onPress: pressProp, onPressChange: onPressChange, onPressEnd: onPressEnd, onHoverStart: hoverStartProp, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onFocus: onFocus, onFocusChange: onFocusChange, onBlur: onBlur, selectionManager: selectionManager = state.selectionManager } = props;\n let isTrigger = !!hasPopup;\n let isTriggerExpanded = isTrigger && props['aria-expanded'] === 'true';\n var _props_isDisabled;\n let isDisabled = (_props_isDisabled = props.isDisabled) !== null && _props_isDisabled !== void 0 ? _props_isDisabled : selectionManager.isDisabled(key);\n var _props_isSelected;\n let isSelected = (_props_isSelected = props.isSelected) !== null && _props_isSelected !== void 0 ? _props_isSelected : selectionManager.isSelected(key);\n let data = (0, $fc79756100351201$export$6f49b4016bfc8d56).get(state);\n let item = state.collection.getItem(key);\n let onClose = props.onClose || data.onClose;\n let router = (0, $7Kjv5$useRouter)();\n let performAction = (e)=>{\n var _item_props;\n if (isTrigger) return;\n if (item === null || item === void 0 ? void 0 : (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.onAction) item.props.onAction();\n else if (props.onAction) props.onAction(key);\n if (data.onAction) {\n // Must reassign to variable otherwise `this` binding gets messed up. Something to do with WeakMap.\n let onAction = data.onAction;\n onAction(key);\n }\n if (e.target instanceof HTMLAnchorElement && item) router.open(e.target, e, item.props.href, item.props.routerOptions);\n };\n let role = 'menuitem';\n if (!isTrigger) {\n if (selectionManager.selectionMode === 'single') role = 'menuitemradio';\n else if (selectionManager.selectionMode === 'multiple') role = 'menuitemcheckbox';\n }\n let labelId = (0, $7Kjv5$useSlotId)();\n let descriptionId = (0, $7Kjv5$useSlotId)();\n let keyboardId = (0, $7Kjv5$useSlotId)();\n let ariaProps = {\n id: id,\n 'aria-disabled': isDisabled || undefined,\n role: role,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': labelId,\n 'aria-describedby': [\n descriptionId,\n keyboardId\n ].filter(Boolean).join(' ') || undefined,\n 'aria-controls': props['aria-controls'],\n 'aria-haspopup': hasPopup,\n 'aria-expanded': props['aria-expanded']\n };\n if (selectionManager.selectionMode !== 'none' && !isTrigger) ariaProps['aria-checked'] = isSelected;\n if (isVirtualized) {\n ariaProps['aria-posinset'] = item === null || item === void 0 ? void 0 : item.index;\n ariaProps['aria-setsize'] = (0, $7Kjv5$getItemCount)(state.collection);\n }\n let onPressStart = (e)=>{\n if (e.pointerType === 'keyboard') performAction(e);\n pressStartProp === null || pressStartProp === void 0 ? void 0 : pressStartProp(e);\n };\n let maybeClose = ()=>{\n // Pressing a menu item should close by default in single selection mode but not multiple\n // selection mode, except if overridden by the closeOnSelect prop.\n if (!isTrigger && onClose && (closeOnSelect !== null && closeOnSelect !== void 0 ? closeOnSelect : selectionManager.selectionMode !== 'multiple' || selectionManager.isLink(key))) onClose();\n };\n let onPressUp = (e)=>{\n // If interacting with mouse, allow the user to mouse down on the trigger button,\n // drag, and release over an item (matching native behavior).\n if (e.pointerType === 'mouse') {\n performAction(e);\n maybeClose();\n }\n pressUpProp === null || pressUpProp === void 0 ? void 0 : pressUpProp(e);\n };\n let onPress = (e)=>{\n if (e.pointerType !== 'keyboard' && e.pointerType !== 'mouse') {\n performAction(e);\n maybeClose();\n }\n pressProp === null || pressProp === void 0 ? void 0 : pressProp(e);\n };\n let { itemProps: itemProps, isFocused: isFocused } = (0, $7Kjv5$useSelectableItem)({\n id: id,\n selectionManager: selectionManager,\n key: key,\n ref: ref,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true,\n // Disable all handling of links in useSelectable item\n // because we handle it ourselves. The behavior of menus\n // is slightly different from other collections because\n // actions are performed on key down rather than key up.\n linkBehavior: 'none',\n shouldUseVirtualFocus: data.shouldUseVirtualFocus\n });\n let { pressProps: pressProps, isPressed: isPressed } = (0, $7Kjv5$usePress)({\n onPressStart: onPressStart,\n onPress: onPress,\n onPressUp: onPressUp,\n onPressChange: onPressChange,\n onPressEnd: onPressEnd,\n isDisabled: isDisabled\n });\n let { hoverProps: hoverProps } = (0, $7Kjv5$useHover)({\n isDisabled: isDisabled,\n onHoverStart (e) {\n // Hovering over an already expanded sub dialog trigger should keep focus in the dialog.\n if (!(0, $7Kjv5$isFocusVisible)() && !(isTriggerExpanded && hasPopup === 'dialog')) {\n selectionManager.setFocused(true);\n selectionManager.setFocusedKey(key);\n }\n hoverStartProp === null || hoverStartProp === void 0 ? void 0 : hoverStartProp(e);\n },\n onHoverChange: onHoverChange,\n onHoverEnd: onHoverEnd\n });\n let { keyboardProps: keyboardProps } = (0, $7Kjv5$useKeyboard)({\n onKeyDown: (e)=>{\n // Ignore repeating events, which may have started on the menu trigger before moving\n // focus to the menu item. We want to wait for a second complete key press sequence.\n if (e.repeat) {\n e.continuePropagation();\n return;\n }\n switch(e.key){\n case ' ':\n if (!isDisabled && selectionManager.selectionMode === 'none' && !isTrigger && closeOnSelect !== false && onClose) onClose();\n break;\n case 'Enter':\n // The Enter key should always close on select, except if overridden.\n if (!isDisabled && closeOnSelect !== false && !isTrigger && onClose) onClose();\n break;\n default:\n if (!isTrigger) e.continuePropagation();\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n break;\n }\n },\n onKeyUp: onKeyUp\n });\n let { focusProps: focusProps } = (0, $7Kjv5$useFocus)({\n onBlur: onBlur,\n onFocus: onFocus,\n onFocusChange: onFocusChange\n });\n let domProps = (0, $7Kjv5$filterDOMProps)(item === null || item === void 0 ? void 0 : item.props);\n delete domProps.id;\n let linkProps = (0, $7Kjv5$useLinkProps)(item === null || item === void 0 ? void 0 : item.props);\n return {\n menuItemProps: {\n ...ariaProps,\n ...(0, $7Kjv5$mergeProps)(domProps, linkProps, isTrigger ? {\n onFocus: itemProps.onFocus,\n 'data-key': itemProps['data-key']\n } : itemProps, pressProps, hoverProps, keyboardProps, focusProps),\n // If a submenu is expanded, set the tabIndex to -1 so that shift tabbing goes out of the menu instead of the parent menu item.\n tabIndex: itemProps.tabIndex != null && isTriggerExpanded ? -1 : itemProps.tabIndex\n },\n labelProps: {\n id: labelId\n },\n descriptionProps: {\n id: descriptionId\n },\n keyboardShortcutProps: {\n id: keyboardId\n },\n isFocused: isFocused,\n isSelected: isSelected,\n isPressed: isPressed,\n isDisabled: isDisabled\n };\n}\n\n\nexport {$a2e5df62f93c7633$export$9d32628fc2aea7da as useMenuItem};\n//# sourceMappingURL=useMenuItem.module.js.map\n","import {useId as $7Mibs$useId} from \"@react-aria/utils\";\n\n/*\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 */ \nfunction $3e5eb2498db5b506$export$73f7a44322579622(props) {\n let { heading: heading, 'aria-label': ariaLabel } = props;\n let headingId = (0, $7Mibs$useId)();\n return {\n itemProps: {\n role: 'presentation'\n },\n headingProps: heading ? {\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, using role=\"presentation\",\n // and only use it as a label for the nested group.\n id: headingId,\n role: 'presentation'\n } : {},\n groupProps: {\n role: 'group',\n 'aria-label': ariaLabel,\n 'aria-labelledby': heading ? headingId : undefined\n }\n };\n}\n\n\nexport {$3e5eb2498db5b506$export$73f7a44322579622 as useMenuSection};\n//# sourceMappingURL=useMenuSection.module.js.map\n","import {filterDOMProps as $1vbRD$filterDOMProps} from \"@react-aria/utils\";\n\n/*\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 */ \nfunction $f4b273590fab9f93$export$52210f68a14655d0(props) {\n let domProps = (0, $1vbRD$filterDOMProps)(props, {\n labelable: true\n });\n let ariaOrientation;\n // if orientation is horizontal, aria-orientation default is horizontal, so we leave it undefined\n // if it's vertical, we need to specify it\n if (props.orientation === 'vertical') ariaOrientation = 'vertical';\n // hr elements implicitly have role = separator and a horizontal orientation\n if (props.elementType !== 'hr') return {\n separatorProps: {\n ...domProps,\n role: 'separator',\n 'aria-orientation': ariaOrientation\n }\n };\n return {\n separatorProps: domProps\n };\n}\n\n\nexport {$f4b273590fab9f93$export$52210f68a14655d0 as useSeparator};\n//# sourceMappingURL=useSeparator.module.js.map\n","/*\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 */ const $99b62ae3ff97ec45$export$c5f62239608282b6 = new WeakMap();\nfunction $99b62ae3ff97ec45$export$567fc7097e064344(state, key, role) {\n if (!state) // this case should only happen in the first render before the tabs are registered\n return '';\n if (typeof key === 'string') key = key.replace(/\\s+/g, '');\n let baseId = $99b62ae3ff97ec45$export$c5f62239608282b6.get(state);\n return `${baseId}-${role}-${key}`;\n}\n\n\nexport {$99b62ae3ff97ec45$export$c5f62239608282b6 as tabsIds, $99b62ae3ff97ec45$export$567fc7097e064344 as generateId};\n//# sourceMappingURL=utils.module.js.map\n","import {generateId as $99b62ae3ff97ec45$export$567fc7097e064344} from \"./utils.mjs\";\nimport {filterDOMProps as $dObGJ$filterDOMProps, useLinkProps as $dObGJ$useLinkProps, mergeProps as $dObGJ$mergeProps} from \"@react-aria/utils\";\nimport {useSelectableItem as $dObGJ$useSelectableItem} from \"@react-aria/selection\";\n\n/*\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\n\nfunction $0175d55c2a017ebc$export$fdf4756d5b8ef90a(props, state, ref) {\n let { key: key, isDisabled: propsDisabled, shouldSelectOnPressUp: shouldSelectOnPressUp } = props;\n let { selectionManager: manager, selectedKey: selectedKey } = state;\n let isSelected = key === selectedKey;\n let isDisabled = propsDisabled || state.isDisabled || state.selectionManager.isDisabled(key);\n let { itemProps: itemProps, isPressed: isPressed } = (0, $dObGJ$useSelectableItem)({\n selectionManager: manager,\n key: key,\n ref: ref,\n isDisabled: isDisabled,\n shouldSelectOnPressUp: shouldSelectOnPressUp,\n linkBehavior: 'selection'\n });\n let tabId = (0, $99b62ae3ff97ec45$export$567fc7097e064344)(state, key, 'tab');\n let tabPanelId = (0, $99b62ae3ff97ec45$export$567fc7097e064344)(state, key, 'tabpanel');\n let { tabIndex: tabIndex } = itemProps;\n let item = state.collection.getItem(key);\n let domProps = (0, $dObGJ$filterDOMProps)(item === null || item === void 0 ? void 0 : item.props, {\n labelable: true\n });\n delete domProps.id;\n let linkProps = (0, $dObGJ$useLinkProps)(item === null || item === void 0 ? void 0 : item.props);\n return {\n tabProps: (0, $dObGJ$mergeProps)(domProps, linkProps, itemProps, {\n id: tabId,\n 'aria-selected': isSelected,\n 'aria-disabled': isDisabled || undefined,\n 'aria-controls': isSelected ? tabPanelId : undefined,\n tabIndex: isDisabled ? undefined : tabIndex,\n role: 'tab'\n }),\n isSelected: isSelected,\n isDisabled: isDisabled,\n isPressed: isPressed\n };\n}\n\n\nexport {$0175d55c2a017ebc$export$fdf4756d5b8ef90a as useTab};\n//# sourceMappingURL=useTab.module.js.map\n","import {generateId as $99b62ae3ff97ec45$export$567fc7097e064344} from \"./utils.mjs\";\nimport {useLabels as $jik2T$useLabels, mergeProps as $jik2T$mergeProps} from \"@react-aria/utils\";\nimport {useHasTabbableChild as $jik2T$useHasTabbableChild} from \"@react-aria/focus\";\n\n/*\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\n\nfunction $34bce698202e07cb$export$fae0121b5afe572d(props, state, ref) {\n // The tabpanel should have tabIndex=0 when there are no tabbable elements within it.\n // Otherwise, tabbing from the focused tab should go directly to the first tabbable element\n // within the tabpanel.\n let tabIndex = (0, $jik2T$useHasTabbableChild)(ref) ? undefined : 0;\n var _props_id;\n const id = (0, $99b62ae3ff97ec45$export$567fc7097e064344)(state, (_props_id = props.id) !== null && _props_id !== void 0 ? _props_id : state === null || state === void 0 ? void 0 : state.selectedKey, 'tabpanel');\n const tabPanelProps = (0, $jik2T$useLabels)({\n ...props,\n id: id,\n 'aria-labelledby': (0, $99b62ae3ff97ec45$export$567fc7097e064344)(state, state === null || state === void 0 ? void 0 : state.selectedKey, 'tab')\n });\n return {\n tabPanelProps: (0, $jik2T$mergeProps)(tabPanelProps, {\n tabIndex: tabIndex,\n role: 'tabpanel',\n 'aria-describedby': props['aria-describedby'],\n 'aria-details': props['aria-details']\n })\n };\n}\n\n\nexport {$34bce698202e07cb$export$fae0121b5afe572d as useTabPanel};\n//# sourceMappingURL=useTabPanel.module.js.map\n","/*\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 */ class $bfc6f2d60b8a4c40$export$15010ca3c1abe90b {\n getKeyLeftOf(key) {\n if (this.flipDirection) return this.getNextKey(key);\n return this.getPreviousKey(key);\n }\n getKeyRightOf(key) {\n if (this.flipDirection) return this.getPreviousKey(key);\n return this.getNextKey(key);\n }\n isDisabled(key) {\n var _this_collection_getItem_props, _this_collection_getItem;\n return this.disabledKeys.has(key) || !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.isDisabled);\n }\n getFirstKey() {\n let key = this.collection.getFirstKey();\n if (key != null && this.isDisabled(key)) key = this.getNextKey(key);\n return key;\n }\n getLastKey() {\n let key = this.collection.getLastKey();\n if (key != null && this.isDisabled(key)) key = this.getPreviousKey(key);\n return key;\n }\n getKeyAbove(key) {\n if (this.tabDirection) return null;\n return this.getPreviousKey(key);\n }\n getKeyBelow(key) {\n if (this.tabDirection) return null;\n return this.getNextKey(key);\n }\n getNextKey(key) {\n do {\n key = this.collection.getKeyAfter(key);\n if (key == null) key = this.collection.getFirstKey();\n }while (this.isDisabled(key));\n return key;\n }\n getPreviousKey(key) {\n do {\n key = this.collection.getKeyBefore(key);\n if (key == null) key = this.collection.getLastKey();\n }while (this.isDisabled(key));\n return key;\n }\n constructor(collection, direction, orientation, disabledKeys = new Set()){\n this.collection = collection;\n this.flipDirection = direction === 'rtl' && orientation === 'horizontal';\n this.disabledKeys = disabledKeys;\n this.tabDirection = orientation === 'horizontal';\n }\n}\n\n\nexport {$bfc6f2d60b8a4c40$export$15010ca3c1abe90b as TabsKeyboardDelegate};\n//# sourceMappingURL=TabsKeyboardDelegate.module.js.map\n","import {tabsIds as $99b62ae3ff97ec45$export$c5f62239608282b6} from \"./utils.mjs\";\nimport {TabsKeyboardDelegate as $bfc6f2d60b8a4c40$export$15010ca3c1abe90b} from \"./TabsKeyboardDelegate.mjs\";\nimport {useId as $bQNZs$useId, useLabels as $bQNZs$useLabels, mergeProps as $bQNZs$mergeProps} from \"@react-aria/utils\";\nimport {useLocale as $bQNZs$useLocale} from \"@react-aria/i18n\";\nimport {useMemo as $bQNZs$useMemo} from \"react\";\nimport {useSelectableCollection as $bQNZs$useSelectableCollection} from \"@react-aria/selection\";\n\n/*\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\n\n\n\n\nfunction $58d314389b21fa3f$export$773e389e644c5874(props, state, ref) {\n let { orientation: orientation = 'horizontal', keyboardActivation: keyboardActivation = 'automatic' } = props;\n let { collection: collection, selectionManager: manager, disabledKeys: disabledKeys } = state;\n let { direction: direction } = (0, $bQNZs$useLocale)();\n let delegate = (0, $bQNZs$useMemo)(()=>new (0, $bfc6f2d60b8a4c40$export$15010ca3c1abe90b)(collection, direction, orientation, disabledKeys), [\n collection,\n disabledKeys,\n orientation,\n direction\n ]);\n let { collectionProps: collectionProps } = (0, $bQNZs$useSelectableCollection)({\n ref: ref,\n selectionManager: manager,\n keyboardDelegate: delegate,\n selectOnFocus: keyboardActivation === 'automatic',\n disallowEmptySelection: true,\n scrollRef: ref,\n linkBehavior: 'selection'\n });\n // Compute base id for all tabs\n let tabsId = (0, $bQNZs$useId)();\n (0, $99b62ae3ff97ec45$export$c5f62239608282b6).set(state, tabsId);\n let tabListLabelProps = (0, $bQNZs$useLabels)({\n ...props,\n id: tabsId\n });\n return {\n tabListProps: {\n ...(0, $bQNZs$mergeProps)(collectionProps, tabListLabelProps),\n role: 'tablist',\n 'aria-orientation': orientation,\n tabIndex: undefined\n }\n };\n}\n\n\nexport {$58d314389b21fa3f$export$773e389e644c5874 as useTabList};\n//# sourceMappingURL=useTabList.module.js.map\n","import {useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415} from \"./utils.mjs\";\nimport $1B3Dx$react, {createContext as $1B3Dx$createContext, forwardRef as $1B3Dx$forwardRef} from \"react\";\n\n/*\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\nconst $514c0188e459b4c0$export$9afb8bc826b033ea = /*#__PURE__*/ (0, $1B3Dx$createContext)({});\nconst $514c0188e459b4c0$export$5f1af8db9871e1d6 = /*#__PURE__*/ (0, $1B3Dx$forwardRef)(function Text(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $514c0188e459b4c0$export$9afb8bc826b033ea);\n let { elementType: ElementType = 'span', ...domProps } = props;\n // @ts-ignore\n return /*#__PURE__*/ (0, $1B3Dx$react).createElement(ElementType, {\n className: \"react-aria-Text\",\n ...domProps,\n ref: ref\n });\n});\n\n\nexport {$514c0188e459b4c0$export$9afb8bc826b033ea as TextContext, $514c0188e459b4c0$export$5f1af8db9871e1d6 as Text};\n//# sourceMappingURL=Text.module.js.map\n","/*\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 */ class $a02d57049d202695$export$d085fb9e920b5ca7 {\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n get size() {\n return this.keyMap.size;\n }\n getKeys() {\n return this.keyMap.keys();\n }\n getKeyBefore(key) {\n let node = this.keyMap.get(key);\n var _node_prevKey;\n return node ? (_node_prevKey = node.prevKey) !== null && _node_prevKey !== void 0 ? _node_prevKey : null : null;\n }\n getKeyAfter(key) {\n let node = this.keyMap.get(key);\n var _node_nextKey;\n return node ? (_node_nextKey = node.nextKey) !== null && _node_nextKey !== void 0 ? _node_nextKey : null : null;\n }\n getFirstKey() {\n return this.firstKey;\n }\n getLastKey() {\n return this.lastKey;\n }\n getItem(key) {\n var _this_keyMap_get;\n return (_this_keyMap_get = this.keyMap.get(key)) !== null && _this_keyMap_get !== void 0 ? _this_keyMap_get : null;\n }\n at(idx) {\n const keys = [\n ...this.getKeys()\n ];\n return this.getItem(keys[idx]);\n }\n getChildren(key) {\n let node = this.keyMap.get(key);\n return (node === null || node === void 0 ? void 0 : node.childNodes) || [];\n }\n constructor(nodes){\n this.keyMap = new Map();\n this.firstKey = null;\n this.lastKey = null;\n this.iterable = nodes;\n let visit = (node)=>{\n this.keyMap.set(node.key, node);\n if (node.childNodes && node.type === 'section') for (let child of node.childNodes)visit(child);\n };\n for (let node of nodes)visit(node);\n let last = null;\n let index = 0;\n for (let [key, node] of this.keyMap){\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n if (node.type === 'item') node.index = index++;\n last = node;\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n var _last_key;\n this.lastKey = (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;\n }\n}\n\n\nexport {$a02d57049d202695$export$d085fb9e920b5ca7 as ListCollection};\n//# sourceMappingURL=ListCollection.module.js.map\n","/*\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 */ class $e40ea825a81a3709$export$52baac22726c72bf extends Set {\n constructor(keys, anchorKey, currentKey){\n super(keys);\n if (keys instanceof $e40ea825a81a3709$export$52baac22726c72bf) {\n this.anchorKey = anchorKey !== null && anchorKey !== void 0 ? anchorKey : keys.anchorKey;\n this.currentKey = currentKey !== null && currentKey !== void 0 ? currentKey : keys.currentKey;\n } else {\n this.anchorKey = anchorKey !== null && anchorKey !== void 0 ? anchorKey : null;\n this.currentKey = currentKey !== null && currentKey !== void 0 ? currentKey : null;\n }\n }\n}\n\n\nexport {$e40ea825a81a3709$export$52baac22726c72bf as Selection};\n//# sourceMappingURL=Selection.module.js.map\n","import {Selection as $e40ea825a81a3709$export$52baac22726c72bf} from \"./Selection.mjs\";\nimport {useControlledState as $6tM1y$useControlledState} from \"@react-stately/utils\";\nimport {useRef as $6tM1y$useRef, useState as $6tM1y$useState, useMemo as $6tM1y$useMemo, useEffect as $6tM1y$useEffect} from \"react\";\n\n/*\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\n\nfunction $7af3f5b51489e0b5$var$equalSets(setA, setB) {\n if (setA.size !== setB.size) return false;\n for (let item of setA){\n if (!setB.has(item)) return false;\n }\n return true;\n}\nfunction $7af3f5b51489e0b5$export$253fe78d46329472(props) {\n let { selectionMode: selectionMode = 'none', disallowEmptySelection: disallowEmptySelection = false, allowDuplicateSelectionEvents: allowDuplicateSelectionEvents, selectionBehavior: selectionBehaviorProp = 'toggle', disabledBehavior: disabledBehavior = 'all' } = props;\n // We want synchronous updates to `isFocused` and `focusedKey` after their setters are called.\n // But we also need to trigger a react re-render. So, we have both a ref (sync) and state (async).\n let isFocusedRef = (0, $6tM1y$useRef)(false);\n let [, setFocused] = (0, $6tM1y$useState)(false);\n let focusedKeyRef = (0, $6tM1y$useRef)(null);\n let childFocusStrategyRef = (0, $6tM1y$useRef)(null);\n let [, setFocusedKey] = (0, $6tM1y$useState)(null);\n let selectedKeysProp = (0, $6tM1y$useMemo)(()=>$7af3f5b51489e0b5$var$convertSelection(props.selectedKeys), [\n props.selectedKeys\n ]);\n let defaultSelectedKeys = (0, $6tM1y$useMemo)(()=>$7af3f5b51489e0b5$var$convertSelection(props.defaultSelectedKeys, new (0, $e40ea825a81a3709$export$52baac22726c72bf)()), [\n props.defaultSelectedKeys\n ]);\n let [selectedKeys, setSelectedKeys] = (0, $6tM1y$useControlledState)(selectedKeysProp, defaultSelectedKeys, props.onSelectionChange);\n let disabledKeysProp = (0, $6tM1y$useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [\n props.disabledKeys\n ]);\n let [selectionBehavior, setSelectionBehavior] = (0, $6tM1y$useState)(selectionBehaviorProp);\n // If the selectionBehavior prop is set to replace, but the current state is toggle (e.g. due to long press\n // to enter selection mode on touch), and the selection becomes empty, reset the selection behavior.\n if (selectionBehaviorProp === 'replace' && selectionBehavior === 'toggle' && typeof selectedKeys === 'object' && selectedKeys.size === 0) setSelectionBehavior('replace');\n // If the selectionBehavior prop changes, update the state as well.\n let lastSelectionBehavior = (0, $6tM1y$useRef)(selectionBehaviorProp);\n (0, $6tM1y$useEffect)(()=>{\n if (selectionBehaviorProp !== lastSelectionBehavior.current) {\n setSelectionBehavior(selectionBehaviorProp);\n lastSelectionBehavior.current = selectionBehaviorProp;\n }\n }, [\n selectionBehaviorProp\n ]);\n return {\n selectionMode: selectionMode,\n disallowEmptySelection: disallowEmptySelection,\n selectionBehavior: selectionBehavior,\n setSelectionBehavior: setSelectionBehavior,\n get isFocused () {\n return isFocusedRef.current;\n },\n setFocused (f) {\n isFocusedRef.current = f;\n setFocused(f);\n },\n get focusedKey () {\n return focusedKeyRef.current;\n },\n get childFocusStrategy () {\n return childFocusStrategyRef.current;\n },\n setFocusedKey (k, childFocusStrategy = 'first') {\n focusedKeyRef.current = k;\n childFocusStrategyRef.current = childFocusStrategy;\n setFocusedKey(k);\n },\n selectedKeys: selectedKeys,\n setSelectedKeys (keys) {\n if (allowDuplicateSelectionEvents || !$7af3f5b51489e0b5$var$equalSets(keys, selectedKeys)) setSelectedKeys(keys);\n },\n disabledKeys: disabledKeysProp,\n disabledBehavior: disabledBehavior\n };\n}\nfunction $7af3f5b51489e0b5$var$convertSelection(selection, defaultValue) {\n if (!selection) return defaultValue;\n return selection === 'all' ? 'all' : new (0, $e40ea825a81a3709$export$52baac22726c72bf)(selection);\n}\n\n\nexport {$7af3f5b51489e0b5$export$253fe78d46329472 as useMultipleSelectionState};\n//# sourceMappingURL=useMultipleSelectionState.module.js.map\n","import {Selection as $e40ea825a81a3709$export$52baac22726c72bf} from \"./Selection.mjs\";\nimport {compareNodeOrder as $jkhUT$compareNodeOrder, getFirstItem as $jkhUT$getFirstItem, getChildNodes as $jkhUT$getChildNodes} from \"@react-stately/collections\";\n\n/*\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\nclass $d496c0a20b6e58ec$export$6c8a5aaad13c9852 {\n /**\n * The type of selection that is allowed in the collection.\n */ get selectionMode() {\n return this.state.selectionMode;\n }\n /**\n * Whether the collection allows empty selection.\n */ get disallowEmptySelection() {\n return this.state.disallowEmptySelection;\n }\n /**\n * The selection behavior for the collection.\n */ get selectionBehavior() {\n return this.state.selectionBehavior;\n }\n /**\n * Sets the selection behavior for the collection.\n */ setSelectionBehavior(selectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n /**\n * Whether the collection is currently focused.\n */ get isFocused() {\n return this.state.isFocused;\n }\n /**\n * Sets whether the collection is focused.\n */ setFocused(isFocused) {\n this.state.setFocused(isFocused);\n }\n /**\n * The current focused key in the collection.\n */ get focusedKey() {\n return this.state.focusedKey;\n }\n /** Whether the first or last child of the focused key should receive focus. */ get childFocusStrategy() {\n return this.state.childFocusStrategy;\n }\n /**\n * Sets the focused key.\n */ setFocusedKey(key, childFocusStrategy) {\n if (key == null || this.collection.getItem(key)) this.state.setFocusedKey(key, childFocusStrategy);\n }\n /**\n * The currently selected keys in the collection.\n */ get selectedKeys() {\n return this.state.selectedKeys === 'all' ? new Set(this.getSelectAllKeys()) : this.state.selectedKeys;\n }\n /**\n * The raw selection value for the collection.\n * Either 'all' for select all, or a set of keys.\n */ get rawSelection() {\n return this.state.selectedKeys;\n }\n /**\n * Returns whether a key is selected.\n */ isSelected(key) {\n if (this.state.selectionMode === 'none') return false;\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return false;\n return this.state.selectedKeys === 'all' ? this.canSelectItem(mappedKey) : this.state.selectedKeys.has(mappedKey);\n }\n /**\n * Whether the selection is empty.\n */ get isEmpty() {\n return this.state.selectedKeys !== 'all' && this.state.selectedKeys.size === 0;\n }\n /**\n * Whether all items in the collection are selected.\n */ get isSelectAll() {\n if (this.isEmpty) return false;\n if (this.state.selectedKeys === 'all') return true;\n if (this._isSelectAll != null) return this._isSelectAll;\n let allKeys = this.getSelectAllKeys();\n let selectedKeys = this.state.selectedKeys;\n this._isSelectAll = allKeys.every((k)=>selectedKeys.has(k));\n return this._isSelectAll;\n }\n get firstSelectedKey() {\n let first = null;\n for (let key of this.state.selectedKeys){\n let item = this.collection.getItem(key);\n if (!first || item && (0, $jkhUT$compareNodeOrder)(this.collection, item, first) < 0) first = item;\n }\n var _first_key;\n return (_first_key = first === null || first === void 0 ? void 0 : first.key) !== null && _first_key !== void 0 ? _first_key : null;\n }\n get lastSelectedKey() {\n let last = null;\n for (let key of this.state.selectedKeys){\n let item = this.collection.getItem(key);\n if (!last || item && (0, $jkhUT$compareNodeOrder)(this.collection, item, last) > 0) last = item;\n }\n var _last_key;\n return (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;\n }\n get disabledKeys() {\n return this.state.disabledKeys;\n }\n get disabledBehavior() {\n return this.state.disabledBehavior;\n }\n /**\n * Extends the selection to the given key.\n */ extendSelection(toKey) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single') {\n this.replaceSelection(toKey);\n return;\n }\n let mappedToKey = this.getKey(toKey);\n if (mappedToKey == null) return;\n let selection;\n // Only select the one key if coming from a select all.\n if (this.state.selectedKeys === 'all') selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)([\n mappedToKey\n ], mappedToKey, mappedToKey);\n else {\n let selectedKeys = this.state.selectedKeys;\n var _selectedKeys_anchorKey;\n let anchorKey = (_selectedKeys_anchorKey = selectedKeys.anchorKey) !== null && _selectedKeys_anchorKey !== void 0 ? _selectedKeys_anchorKey : mappedToKey;\n selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)(selectedKeys, anchorKey, mappedToKey);\n var _selectedKeys_currentKey;\n for (let key of this.getKeyRange(anchorKey, (_selectedKeys_currentKey = selectedKeys.currentKey) !== null && _selectedKeys_currentKey !== void 0 ? _selectedKeys_currentKey : mappedToKey))selection.delete(key);\n for (let key of this.getKeyRange(mappedToKey, anchorKey))if (this.canSelectItem(key)) selection.add(key);\n }\n this.state.setSelectedKeys(selection);\n }\n getKeyRange(from, to) {\n let fromItem = this.collection.getItem(from);\n let toItem = this.collection.getItem(to);\n if (fromItem && toItem) {\n if ((0, $jkhUT$compareNodeOrder)(this.collection, fromItem, toItem) <= 0) return this.getKeyRangeInternal(from, to);\n return this.getKeyRangeInternal(to, from);\n }\n return [];\n }\n getKeyRangeInternal(from, to) {\n var _this_layoutDelegate;\n if ((_this_layoutDelegate = this.layoutDelegate) === null || _this_layoutDelegate === void 0 ? void 0 : _this_layoutDelegate.getKeyRange) return this.layoutDelegate.getKeyRange(from, to);\n let keys = [];\n let key = from;\n while(key != null){\n let item = this.collection.getItem(key);\n if (item && (item.type === 'item' || item.type === 'cell' && this.allowsCellSelection)) keys.push(key);\n if (key === to) return keys;\n key = this.collection.getKeyAfter(key);\n }\n return [];\n }\n getKey(key) {\n let item = this.collection.getItem(key);\n if (!item) // ¯\\_(ツ)_/¯\n return key;\n // If cell selection is allowed, just return the key.\n if (item.type === 'cell' && this.allowsCellSelection) return key;\n // Find a parent item to select\n while(item && item.type !== 'item' && item.parentKey != null)item = this.collection.getItem(item.parentKey);\n if (!item || item.type !== 'item') return null;\n return item.key;\n }\n /**\n * Toggles whether the given key is selected.\n */ toggleSelection(key) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single' && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return;\n let keys = new (0, $e40ea825a81a3709$export$52baac22726c72bf)(this.state.selectedKeys === 'all' ? this.getSelectAllKeys() : this.state.selectedKeys);\n if (keys.has(mappedKey)) keys.delete(mappedKey);\n else if (this.canSelectItem(mappedKey)) {\n keys.add(mappedKey);\n keys.anchorKey = mappedKey;\n keys.currentKey = mappedKey;\n }\n if (this.disallowEmptySelection && keys.size === 0) return;\n this.state.setSelectedKeys(keys);\n }\n /**\n * Replaces the selection with only the given key.\n */ replaceSelection(key) {\n if (this.selectionMode === 'none') return;\n let mappedKey = this.getKey(key);\n if (mappedKey == null) return;\n let selection = this.canSelectItem(mappedKey) ? new (0, $e40ea825a81a3709$export$52baac22726c72bf)([\n mappedKey\n ], mappedKey, mappedKey) : new (0, $e40ea825a81a3709$export$52baac22726c72bf)();\n this.state.setSelectedKeys(selection);\n }\n /**\n * Replaces the selection with the given keys.\n */ setSelectedKeys(keys) {\n if (this.selectionMode === 'none') return;\n let selection = new (0, $e40ea825a81a3709$export$52baac22726c72bf)();\n for (let key of keys){\n let mappedKey = this.getKey(key);\n if (mappedKey != null) {\n selection.add(mappedKey);\n if (this.selectionMode === 'single') break;\n }\n }\n this.state.setSelectedKeys(selection);\n }\n getSelectAllKeys() {\n let keys = [];\n let addKeys = (key)=>{\n while(key != null){\n if (this.canSelectItem(key)) {\n var _getFirstItem;\n let item = this.collection.getItem(key);\n if ((item === null || item === void 0 ? void 0 : item.type) === 'item') keys.push(key);\n var _getFirstItem_key;\n // Add child keys. If cell selection is allowed, then include item children too.\n if ((item === null || item === void 0 ? void 0 : item.hasChildNodes) && (this.allowsCellSelection || item.type !== 'item')) addKeys((_getFirstItem_key = (_getFirstItem = (0, $jkhUT$getFirstItem)((0, $jkhUT$getChildNodes)(item, this.collection))) === null || _getFirstItem === void 0 ? void 0 : _getFirstItem.key) !== null && _getFirstItem_key !== void 0 ? _getFirstItem_key : null);\n }\n key = this.collection.getKeyAfter(key);\n }\n };\n addKeys(this.collection.getFirstKey());\n return keys;\n }\n /**\n * Selects all items in the collection.\n */ selectAll() {\n if (!this.isSelectAll && this.selectionMode === 'multiple') this.state.setSelectedKeys('all');\n }\n /**\n * Removes all keys from the selection.\n */ clearSelection() {\n if (!this.disallowEmptySelection && (this.state.selectedKeys === 'all' || this.state.selectedKeys.size > 0)) this.state.setSelectedKeys(new (0, $e40ea825a81a3709$export$52baac22726c72bf)());\n }\n /**\n * Toggles between select all and an empty selection.\n */ toggleSelectAll() {\n if (this.isSelectAll) this.clearSelection();\n else this.selectAll();\n }\n select(key, e) {\n if (this.selectionMode === 'none') return;\n if (this.selectionMode === 'single') {\n if (this.isSelected(key) && !this.disallowEmptySelection) this.toggleSelection(key);\n else this.replaceSelection(key);\n } else if (this.selectionBehavior === 'toggle' || e && (e.pointerType === 'touch' || e.pointerType === 'virtual')) // if touch or virtual (VO) then we just want to toggle, otherwise it's impossible to multi select because they don't have modifier keys\n this.toggleSelection(key);\n else this.replaceSelection(key);\n }\n /**\n * Returns whether the current selection is equal to the given selection.\n */ isSelectionEqual(selection) {\n if (selection === this.state.selectedKeys) return true;\n // Check if the set of keys match.\n let selectedKeys = this.selectedKeys;\n if (selection.size !== selectedKeys.size) return false;\n for (let key of selection){\n if (!selectedKeys.has(key)) return false;\n }\n for (let key of selectedKeys){\n if (!selection.has(key)) return false;\n }\n return true;\n }\n canSelectItem(key) {\n var _item_props;\n if (this.state.selectionMode === 'none' || this.state.disabledKeys.has(key)) return false;\n let item = this.collection.getItem(key);\n if (!item || (item === null || item === void 0 ? void 0 : (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.isDisabled) || item.type === 'cell' && !this.allowsCellSelection) return false;\n return true;\n }\n isDisabled(key) {\n var _this_collection_getItem_props, _this_collection_getItem;\n return this.state.disabledBehavior === 'all' && (this.state.disabledKeys.has(key) || !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.isDisabled));\n }\n isLink(key) {\n var _this_collection_getItem_props, _this_collection_getItem;\n return !!((_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : (_this_collection_getItem_props = _this_collection_getItem.props) === null || _this_collection_getItem_props === void 0 ? void 0 : _this_collection_getItem_props.href);\n }\n getItemProps(key) {\n var _this_collection_getItem;\n return (_this_collection_getItem = this.collection.getItem(key)) === null || _this_collection_getItem === void 0 ? void 0 : _this_collection_getItem.props;\n }\n constructor(collection, state, options){\n this.collection = collection;\n this.state = state;\n var _options_allowsCellSelection;\n this.allowsCellSelection = (_options_allowsCellSelection = options === null || options === void 0 ? void 0 : options.allowsCellSelection) !== null && _options_allowsCellSelection !== void 0 ? _options_allowsCellSelection : false;\n this._isSelectAll = null;\n this.layoutDelegate = (options === null || options === void 0 ? void 0 : options.layoutDelegate) || null;\n }\n}\n\n\nexport {$d496c0a20b6e58ec$export$6c8a5aaad13c9852 as SelectionManager};\n//# sourceMappingURL=SelectionManager.module.js.map\n","import {ListCollection as $a02d57049d202695$export$d085fb9e920b5ca7} from \"./ListCollection.mjs\";\nimport {useMultipleSelectionState as $d5vlZ$useMultipleSelectionState, SelectionManager as $d5vlZ$SelectionManager} from \"@react-stately/selection\";\nimport {useMemo as $d5vlZ$useMemo, useCallback as $d5vlZ$useCallback, useRef as $d5vlZ$useRef, useEffect as $d5vlZ$useEffect} from \"react\";\nimport {useCollection as $d5vlZ$useCollection} from \"@react-stately/collections\";\n\n/*\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\n\n\nfunction $e72dd72e1c76a225$export$2f645645f7bca764(props) {\n let { filter: filter, layoutDelegate: layoutDelegate } = props;\n let selectionState = (0, $d5vlZ$useMultipleSelectionState)(props);\n let disabledKeys = (0, $d5vlZ$useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [\n props.disabledKeys\n ]);\n let factory = (0, $d5vlZ$useCallback)((nodes)=>filter ? new (0, $a02d57049d202695$export$d085fb9e920b5ca7)(filter(nodes)) : new (0, $a02d57049d202695$export$d085fb9e920b5ca7)(nodes), [\n filter\n ]);\n let context = (0, $d5vlZ$useMemo)(()=>({\n suppressTextValueWarning: props.suppressTextValueWarning\n }), [\n props.suppressTextValueWarning\n ]);\n let collection = (0, $d5vlZ$useCollection)(props, factory, context);\n let selectionManager = (0, $d5vlZ$useMemo)(()=>new (0, $d5vlZ$SelectionManager)(collection, selectionState, {\n layoutDelegate: layoutDelegate\n }), [\n collection,\n selectionState,\n layoutDelegate\n ]);\n // Reset focused key if that item is deleted from the collection.\n const cachedCollection = (0, $d5vlZ$useRef)(null);\n (0, $d5vlZ$useEffect)(()=>{\n if (selectionState.focusedKey != null && !collection.getItem(selectionState.focusedKey) && cachedCollection.current) {\n const startItem = cachedCollection.current.getItem(selectionState.focusedKey);\n const cachedItemNodes = [\n ...cachedCollection.current.getKeys()\n ].map((key)=>{\n const itemNode = cachedCollection.current.getItem(key);\n return (itemNode === null || itemNode === void 0 ? void 0 : itemNode.type) === 'item' ? itemNode : null;\n }).filter((node)=>node !== null);\n const itemNodes = [\n ...collection.getKeys()\n ].map((key)=>{\n const itemNode = collection.getItem(key);\n return (itemNode === null || itemNode === void 0 ? void 0 : itemNode.type) === 'item' ? itemNode : null;\n }).filter((node)=>node !== null);\n var _cachedItemNodes_length, _itemNodes_length;\n const diff = ((_cachedItemNodes_length = cachedItemNodes === null || cachedItemNodes === void 0 ? void 0 : cachedItemNodes.length) !== null && _cachedItemNodes_length !== void 0 ? _cachedItemNodes_length : 0) - ((_itemNodes_length = itemNodes === null || itemNodes === void 0 ? void 0 : itemNodes.length) !== null && _itemNodes_length !== void 0 ? _itemNodes_length : 0);\n var _startItem_index, _startItem_index1, _itemNodes_length1;\n let index = Math.min(diff > 1 ? Math.max(((_startItem_index = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index !== void 0 ? _startItem_index : 0) - diff + 1, 0) : (_startItem_index1 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index1 !== void 0 ? _startItem_index1 : 0, ((_itemNodes_length1 = itemNodes === null || itemNodes === void 0 ? void 0 : itemNodes.length) !== null && _itemNodes_length1 !== void 0 ? _itemNodes_length1 : 0) - 1);\n let newNode = null;\n let isReverseSearching = false;\n while(index >= 0){\n if (!selectionManager.isDisabled(itemNodes[index].key)) {\n newNode = itemNodes[index];\n break;\n }\n // Find next, not disabled item.\n if (index < itemNodes.length - 1 && !isReverseSearching) index++;\n else {\n isReverseSearching = true;\n var _startItem_index2, _startItem_index3;\n if (index > ((_startItem_index2 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index2 !== void 0 ? _startItem_index2 : 0)) index = (_startItem_index3 = startItem === null || startItem === void 0 ? void 0 : startItem.index) !== null && _startItem_index3 !== void 0 ? _startItem_index3 : 0;\n index--;\n }\n }\n selectionState.setFocusedKey(newNode ? newNode.key : null);\n }\n cachedCollection.current = collection;\n }, [\n collection,\n selectionManager,\n selectionState,\n selectionState.focusedKey\n ]);\n return {\n collection: collection,\n disabledKeys: disabledKeys,\n selectionManager: selectionManager\n };\n}\n\n\nexport {$e72dd72e1c76a225$export$2f645645f7bca764 as useListState};\n//# sourceMappingURL=useListState.module.js.map\n","import {useListState as $e72dd72e1c76a225$export$2f645645f7bca764} from \"./useListState.mjs\";\nimport {useControlledState as $eBozH$useControlledState} from \"@react-stately/utils\";\nimport {useMemo as $eBozH$useMemo} from \"react\";\n\n/*\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\n\nfunction $a0d645289fe9b86b$export$e7f05e985daf4b5f(props) {\n var _props_defaultSelectedKey;\n let [selectedKey, setSelectedKey] = (0, $eBozH$useControlledState)(props.selectedKey, (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : null, props.onSelectionChange);\n let selectedKeys = (0, $eBozH$useMemo)(()=>selectedKey != null ? [\n selectedKey\n ] : [], [\n selectedKey\n ]);\n let { collection: collection, disabledKeys: disabledKeys, selectionManager: selectionManager } = (0, $e72dd72e1c76a225$export$2f645645f7bca764)({\n ...props,\n selectionMode: 'single',\n disallowEmptySelection: true,\n allowDuplicateSelectionEvents: true,\n selectedKeys: selectedKeys,\n onSelectionChange: (keys)=>{\n // impossible, but TS doesn't know that\n if (keys === 'all') return;\n var _keys_values_next_value;\n let key = (_keys_values_next_value = keys.values().next().value) !== null && _keys_values_next_value !== void 0 ? _keys_values_next_value : null;\n // Always fire onSelectionChange, even if the key is the same\n // as the current key (useControlledState does not).\n if (key === selectedKey && props.onSelectionChange) props.onSelectionChange(key);\n setSelectedKey(key);\n }\n });\n let selectedItem = selectedKey != null ? collection.getItem(selectedKey) : null;\n return {\n collection: collection,\n disabledKeys: disabledKeys,\n selectionManager: selectionManager,\n selectedKey: selectedKey,\n setSelectedKey: setSelectedKey,\n selectedItem: selectedItem\n };\n}\n\n\nexport {$a0d645289fe9b86b$export$e7f05e985daf4b5f as useSingleSelectListState};\n//# sourceMappingURL=useSingleSelectListState.module.js.map\n","import {useCallback as $hnMvi$useCallback} from \"react\";\nimport {useControlledState as $hnMvi$useControlledState} from \"@react-stately/utils\";\n\n/*\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\nfunction $fc909762b330b746$export$61c6a8c84e605fb6(props) {\n let [isOpen, setOpen] = (0, $hnMvi$useControlledState)(props.isOpen, props.defaultOpen || false, props.onOpenChange);\n const open = (0, $hnMvi$useCallback)(()=>{\n setOpen(true);\n }, [\n setOpen\n ]);\n const close = (0, $hnMvi$useCallback)(()=>{\n setOpen(false);\n }, [\n setOpen\n ]);\n const toggle = (0, $hnMvi$useCallback)(()=>{\n setOpen(!isOpen);\n }, [\n setOpen,\n isOpen\n ]);\n return {\n isOpen: isOpen,\n setOpen: setOpen,\n open: open,\n close: close,\n toggle: toggle\n };\n}\n\n\nexport {$fc909762b330b746$export$61c6a8c84e605fb6 as useOverlayTriggerState};\n//# sourceMappingURL=useOverlayTriggerState.module.js.map\n","import {useSingleSelectListState as $fgY1A$useSingleSelectListState} from \"@react-stately/list\";\nimport {useRef as $fgY1A$useRef, useEffect as $fgY1A$useEffect} from \"react\";\n\n/*\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\nfunction $76f919a04c5a7d14$export$4ba071daf4e486(props) {\n var _props_defaultSelectedKey, _ref;\n let state = (0, $fgY1A$useSingleSelectListState)({\n ...props,\n suppressTextValueWarning: true,\n defaultSelectedKey: (_ref = (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : $76f919a04c5a7d14$var$findDefaultSelectedKey(props.collection, props.disabledKeys ? new Set(props.disabledKeys) : new Set())) !== null && _ref !== void 0 ? _ref : undefined\n });\n let { selectionManager: selectionManager, collection: collection, selectedKey: currentSelectedKey } = state;\n let lastSelectedKey = (0, $fgY1A$useRef)(currentSelectedKey);\n (0, $fgY1A$useEffect)(()=>{\n // Ensure a tab is always selected (in case no selected key was specified or if selected item was deleted from collection)\n let selectedKey = currentSelectedKey;\n if (selectionManager.isEmpty || selectedKey == null || !collection.getItem(selectedKey)) {\n selectedKey = $76f919a04c5a7d14$var$findDefaultSelectedKey(collection, state.disabledKeys);\n if (selectedKey != null) // directly set selection because replace/toggle selection won't consider disabled keys\n selectionManager.setSelectedKeys([\n selectedKey\n ]);\n }\n // If the tablist doesn't have focus and the selected key changes or if there isn't a focused key yet, change focused key to the selected key if it exists.\n if (selectedKey != null && selectionManager.focusedKey == null || !selectionManager.isFocused && selectedKey !== lastSelectedKey.current) selectionManager.setFocusedKey(selectedKey);\n lastSelectedKey.current = selectedKey;\n });\n return {\n ...state,\n isDisabled: props.isDisabled || false\n };\n}\nfunction $76f919a04c5a7d14$var$findDefaultSelectedKey(collection, disabledKeys) {\n let selectedKey = null;\n if (collection) {\n var _collection_getItem_props, _collection_getItem, _collection_getItem_props1, _collection_getItem1;\n selectedKey = collection.getFirstKey();\n // loop over tabs until we find one that isn't disabled and select that\n while(selectedKey != null && (disabledKeys.has(selectedKey) || ((_collection_getItem = collection.getItem(selectedKey)) === null || _collection_getItem === void 0 ? void 0 : (_collection_getItem_props = _collection_getItem.props) === null || _collection_getItem_props === void 0 ? void 0 : _collection_getItem_props.isDisabled)) && selectedKey !== collection.getLastKey())selectedKey = collection.getKeyAfter(selectedKey);\n // if this check is true, then every item is disabled, it makes more sense to default to the first key than the last\n if (selectedKey != null && (disabledKeys.has(selectedKey) || ((_collection_getItem1 = collection.getItem(selectedKey)) === null || _collection_getItem1 === void 0 ? void 0 : (_collection_getItem_props1 = _collection_getItem1.props) === null || _collection_getItem_props1 === void 0 ? void 0 : _collection_getItem_props1.isDisabled)) && selectedKey === collection.getLastKey()) selectedKey = collection.getFirstKey();\n }\n return selectedKey;\n}\n\n\nexport {$76f919a04c5a7d14$export$4ba071daf4e486 as useTabListState};\n//# sourceMappingURL=useTabListState.module.js.map\n","/*\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 */ class $05ca4cd7c4a5a999$export$863faf230ee2118a {\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n get size() {\n return this.keyMap.size;\n }\n getKeys() {\n return this.keyMap.keys();\n }\n getKeyBefore(key) {\n let node = this.keyMap.get(key);\n var _node_prevKey;\n return node ? (_node_prevKey = node.prevKey) !== null && _node_prevKey !== void 0 ? _node_prevKey : null : null;\n }\n getKeyAfter(key) {\n let node = this.keyMap.get(key);\n var _node_nextKey;\n return node ? (_node_nextKey = node.nextKey) !== null && _node_nextKey !== void 0 ? _node_nextKey : null : null;\n }\n getFirstKey() {\n return this.firstKey;\n }\n getLastKey() {\n return this.lastKey;\n }\n getItem(key) {\n var _this_keyMap_get;\n return (_this_keyMap_get = this.keyMap.get(key)) !== null && _this_keyMap_get !== void 0 ? _this_keyMap_get : null;\n }\n at(idx) {\n const keys = [\n ...this.getKeys()\n ];\n return this.getItem(keys[idx]);\n }\n constructor(nodes, { expandedKeys: expandedKeys } = {}){\n this.keyMap = new Map();\n this.firstKey = null;\n this.lastKey = null;\n this.iterable = nodes;\n expandedKeys = expandedKeys || new Set();\n let visit = (node)=>{\n this.keyMap.set(node.key, node);\n if (node.childNodes && (node.type === 'section' || expandedKeys.has(node.key))) for (let child of node.childNodes)visit(child);\n };\n for (let node of nodes)visit(node);\n let last = null;\n let index = 0;\n for (let [key, node] of this.keyMap){\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = undefined;\n }\n if (node.type === 'item') node.index = index++;\n last = node;\n // Set nextKey as undefined since this might be the last node\n // If it isn't the last node, last.nextKey will properly set at start of new loop\n last.nextKey = undefined;\n }\n var _last_key;\n this.lastKey = (_last_key = last === null || last === void 0 ? void 0 : last.key) !== null && _last_key !== void 0 ? _last_key : null;\n }\n}\n\n\nexport {$05ca4cd7c4a5a999$export$863faf230ee2118a as TreeCollection};\n//# sourceMappingURL=TreeCollection.module.js.map\n","import {TreeCollection as $05ca4cd7c4a5a999$export$863faf230ee2118a} from \"./TreeCollection.mjs\";\nimport {useMultipleSelectionState as $75HV2$useMultipleSelectionState, SelectionManager as $75HV2$SelectionManager} from \"@react-stately/selection\";\nimport {useMemo as $75HV2$useMemo, useCallback as $75HV2$useCallback, useEffect as $75HV2$useEffect} from \"react\";\nimport {useCollection as $75HV2$useCollection} from \"@react-stately/collections\";\nimport {useControlledState as $75HV2$useControlledState} from \"@react-stately/utils\";\n\n/*\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\n\n\n\nfunction $875d6693e12af071$export$728d6ba534403756(props) {\n let { onExpandedChange: onExpandedChange } = props;\n let [expandedKeys, setExpandedKeys] = (0, $75HV2$useControlledState)(props.expandedKeys ? new Set(props.expandedKeys) : undefined, props.defaultExpandedKeys ? new Set(props.defaultExpandedKeys) : new Set(), onExpandedChange);\n let selectionState = (0, $75HV2$useMultipleSelectionState)(props);\n let disabledKeys = (0, $75HV2$useMemo)(()=>props.disabledKeys ? new Set(props.disabledKeys) : new Set(), [\n props.disabledKeys\n ]);\n let tree = (0, $75HV2$useCollection)(props, (0, $75HV2$useCallback)((nodes)=>new (0, $05ca4cd7c4a5a999$export$863faf230ee2118a)(nodes, {\n expandedKeys: expandedKeys\n }), [\n expandedKeys\n ]), null);\n // Reset focused key if that item is deleted from the collection.\n (0, $75HV2$useEffect)(()=>{\n if (selectionState.focusedKey != null && !tree.getItem(selectionState.focusedKey)) selectionState.setFocusedKey(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n tree,\n selectionState.focusedKey\n ]);\n let onToggle = (key)=>{\n setExpandedKeys($875d6693e12af071$var$toggleKey(expandedKeys, key));\n };\n return {\n collection: tree,\n expandedKeys: expandedKeys,\n disabledKeys: disabledKeys,\n toggleKey: onToggle,\n setExpandedKeys: setExpandedKeys,\n selectionManager: new (0, $75HV2$SelectionManager)(tree, selectionState)\n };\n}\nfunction $875d6693e12af071$var$toggleKey(set, key) {\n let res = new Set(set);\n if (res.has(key)) res.delete(key);\n else res.add(key);\n return res;\n}\n\n\nexport {$875d6693e12af071$export$728d6ba534403756 as useTreeState};\n//# sourceMappingURL=useTreeState.module.js.map\n","import {Provider as $64fa3d84918910a7$export$2881499e37b75b9a, removeDataAttributes as $64fa3d84918910a7$export$ef03459518577ad4, useSlottedContext as $64fa3d84918910a7$export$fabf2dc03a41866e} from \"./utils.mjs\";\nimport {SearchFieldContext as $440f4836bcb56932$export$d1c4e4c63cb03a11} from \"./SearchField.mjs\";\nimport {TextFieldContext as $bcdf0525bf22703d$export$2129e27b3ef0d483} from \"./TextField.mjs\";\nimport {UNSTABLE_useAutocomplete as $llkzs$UNSTABLE_useAutocomplete} from \"@react-aria/autocomplete\";\nimport {UNSTABLE_useAutocompleteState as $llkzs$UNSTABLE_useAutocompleteState} from \"@react-stately/autocomplete\";\nimport {mergeProps as $llkzs$mergeProps} from \"@react-aria/utils\";\nimport $llkzs$react, {createContext as $llkzs$createContext, useRef as $llkzs$useRef} from \"react\";\n\n/*\n * Copyright 2024 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\n\n\n\n\n\nconst $d2f53cda644affe3$export$4581e569cc48eb6b = /*#__PURE__*/ (0, $llkzs$createContext)(null);\nconst $d2f53cda644affe3$export$879ad50d6ce9688 = /*#__PURE__*/ (0, $llkzs$createContext)(null);\nconst $d2f53cda644affe3$export$65d2a03b8800d6e3 = /*#__PURE__*/ (0, $llkzs$createContext)(null);\nfunction $d2f53cda644affe3$export$d834fde4e1147cd8(props) {\n let ctx = (0, $64fa3d84918910a7$export$fabf2dc03a41866e)($d2f53cda644affe3$export$4581e569cc48eb6b, props.slot);\n props = (0, $llkzs$mergeProps)(ctx, props);\n let { filter: filter } = props;\n let state = (0, $llkzs$UNSTABLE_useAutocompleteState)(props);\n let collectionRef = (0, $llkzs$useRef)(null);\n let { textFieldProps: textFieldProps, collectionProps: collectionProps, collectionRef: mergedCollectionRef, filterFn: filterFn } = (0, $llkzs$UNSTABLE_useAutocomplete)({\n ...(0, $64fa3d84918910a7$export$ef03459518577ad4)(props),\n filter: filter,\n collectionRef: collectionRef\n }, state);\n return /*#__PURE__*/ (0, $llkzs$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n $d2f53cda644affe3$export$879ad50d6ce9688,\n state\n ],\n [\n (0, $440f4836bcb56932$export$d1c4e4c63cb03a11),\n textFieldProps\n ],\n [\n (0, $bcdf0525bf22703d$export$2129e27b3ef0d483),\n textFieldProps\n ],\n [\n $d2f53cda644affe3$export$65d2a03b8800d6e3,\n {\n filterFn: filterFn,\n collectionProps: collectionProps,\n collectionRef: mergedCollectionRef\n }\n ]\n ]\n }, props.children);\n}\n\n\nexport {$d2f53cda644affe3$export$4581e569cc48eb6b as UNSTABLE_AutocompleteContext, $d2f53cda644affe3$export$879ad50d6ce9688 as UNSTABLE_AutocompleteStateContext, $d2f53cda644affe3$export$65d2a03b8800d6e3 as UNSTABLE_InternalAutocompleteContext, $d2f53cda644affe3$export$d834fde4e1147cd8 as UNSTABLE_Autocomplete};\n//# sourceMappingURL=Autocomplete.module.js.map\n","import {createBranchComponent as $18I52$createBranchComponent, useCachedChildren as $18I52$useCachedChildren} from \"@react-aria/collections\";\nimport $18I52$react, {createContext as $18I52$createContext, useContext as $18I52$useContext, useMemo as $18I52$useMemo} from \"react\";\n\n/*\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\nconst $7135fc7d473fd974$export$d40e14dec8b060a8 = /*#__PURE__*/ (0, $18I52$createContext)(null);\nconst $7135fc7d473fd974$export$6e2c8f0811a474ce = /*#__PURE__*/ (0, $18I52$createBranchComponent)('section', (props, ref, section)=>{\n let { name: name, render: render } = (0, $18I52$useContext)($7135fc7d473fd974$export$d40e14dec8b060a8);\n console.warn(`<Section> is deprecated. Please use <${name}> instead.`);\n return render(props, ref, section, 'react-aria-Section');\n});\nconst $7135fc7d473fd974$export$a164736487e3f0ae = {\n CollectionRoot ({ collection: collection, renderDropIndicator: renderDropIndicator }) {\n return $7135fc7d473fd974$var$useCollectionRender(collection, null, renderDropIndicator);\n },\n CollectionBranch ({ collection: collection, parent: parent, renderDropIndicator: renderDropIndicator }) {\n return $7135fc7d473fd974$var$useCollectionRender(collection, parent, renderDropIndicator);\n }\n};\nfunction $7135fc7d473fd974$var$useCollectionRender(collection, parent, renderDropIndicator) {\n return (0, $18I52$useCachedChildren)({\n items: parent ? collection.getChildren(parent.key) : collection,\n dependencies: [\n renderDropIndicator\n ],\n children (node) {\n var _collection_getItem;\n let rendered = node.render(node);\n if (!renderDropIndicator || node.type !== 'item') return rendered;\n let key = node.key;\n let keyAfter = collection.getKeyAfter(key);\n return /*#__PURE__*/ (0, $18I52$react).createElement((0, $18I52$react).Fragment, null, renderDropIndicator({\n type: 'item',\n key: key,\n dropPosition: 'before'\n }), rendered, (keyAfter == null || ((_collection_getItem = collection.getItem(keyAfter)) === null || _collection_getItem === void 0 ? void 0 : _collection_getItem.type) !== 'item') && renderDropIndicator({\n type: 'item',\n key: key,\n dropPosition: 'after'\n }));\n }\n });\n}\nconst $7135fc7d473fd974$export$4feb769f8ddf26c5 = /*#__PURE__*/ (0, $18I52$createContext)($7135fc7d473fd974$export$a164736487e3f0ae);\nfunction $7135fc7d473fd974$export$90e00781bc59d8f9(focusedKey) {\n return (0, $18I52$useMemo)(()=>focusedKey != null ? new Set([\n focusedKey\n ]) : null, [\n focusedKey\n ]);\n}\n\n\nexport {$7135fc7d473fd974$export$d40e14dec8b060a8 as SectionContext, $7135fc7d473fd974$export$6e2c8f0811a474ce as Section, $7135fc7d473fd974$export$a164736487e3f0ae as DefaultCollectionRenderer, $7135fc7d473fd974$export$4feb769f8ddf26c5 as CollectionRendererContext, $7135fc7d473fd974$export$90e00781bc59d8f9 as usePersistedKeys};\n//# sourceMappingURL=Collection.module.js.map\n","import {useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415} from \"./utils.mjs\";\nimport {createLeafComponent as $i47tY$createLeafComponent} from \"@react-aria/collections\";\nimport $i47tY$react, {createContext as $i47tY$createContext} from \"react\";\n\n/*\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\n\nconst $72a5793c14baf454$export$e0e4026c12a8bdbb = /*#__PURE__*/ (0, $i47tY$createContext)({});\nconst $72a5793c14baf454$export$8b251419efc915eb = /*#__PURE__*/ (0, $i47tY$createLeafComponent)('header', function Header(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $72a5793c14baf454$export$e0e4026c12a8bdbb);\n return /*#__PURE__*/ (0, $i47tY$react).createElement(\"header\", {\n className: \"react-aria-Header\",\n ...props,\n ref: ref\n }, props.children);\n});\n\n\nexport {$72a5793c14baf454$export$e0e4026c12a8bdbb as HeaderContext, $72a5793c14baf454$export$8b251419efc915eb as Header};\n//# sourceMappingURL=Header.module.js.map\n","import {useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415} from \"./utils.mjs\";\nimport {useSeparator as $i9JCE$useSeparator} from \"react-aria\";\nimport {createLeafComponent as $i9JCE$createLeafComponent} from \"@react-aria/collections\";\nimport {filterDOMProps as $i9JCE$filterDOMProps} from \"@react-aria/utils\";\nimport $i9JCE$react, {createContext as $i9JCE$createContext} from \"react\";\n\n/*\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\n\n\n\nconst $431f98aba6844401$export$6615d83f6de245ce = /*#__PURE__*/ (0, $i9JCE$createContext)({});\nconst $431f98aba6844401$export$1ff3c3f08ae963c0 = /*#__PURE__*/ (0, $i9JCE$createLeafComponent)('separator', function Separator(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $431f98aba6844401$export$6615d83f6de245ce);\n let { elementType: elementType, orientation: orientation, style: style, className: className } = props;\n let Element = elementType || 'hr';\n if (Element === 'hr' && orientation === 'vertical') Element = 'div';\n let { separatorProps: separatorProps } = (0, $i9JCE$useSeparator)({\n elementType: elementType,\n orientation: orientation\n });\n return /*#__PURE__*/ (0, $i9JCE$react).createElement(Element, {\n ...(0, $i9JCE$filterDOMProps)(props),\n ...separatorProps,\n style: style,\n className: className !== null && className !== void 0 ? className : 'react-aria-Separator',\n ref: ref,\n slot: props.slot || undefined\n });\n});\n\n\nexport {$431f98aba6844401$export$6615d83f6de245ce as SeparatorContext, $431f98aba6844401$export$1ff3c3f08ae963c0 as Separator};\n//# sourceMappingURL=Separator.module.js.map\n","import {useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3} from \"./utils.mjs\";\nimport $8wt2Z$react, {createContext as $8wt2Z$createContext, forwardRef as $8wt2Z$forwardRef} from \"react\";\n\n/*\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\nconst $44f671af83e7d9e0$export$2de4954e8ae13b9f = /*#__PURE__*/ (0, $8wt2Z$createContext)({\n placement: 'bottom'\n});\nconst $44f671af83e7d9e0$export$746d02f47f4d381 = /*#__PURE__*/ (0, $8wt2Z$forwardRef)(function OverlayArrow(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $44f671af83e7d9e0$export$2de4954e8ae13b9f);\n let placement = props.placement;\n let style = {\n position: 'absolute',\n transform: placement === 'top' || placement === 'bottom' ? 'translateX(-50%)' : 'translateY(-50%)'\n };\n if (placement != null) style[placement] = '100%';\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n ...props,\n defaultClassName: 'react-aria-OverlayArrow',\n values: {\n placement: placement\n }\n });\n // remove undefined values from renderProps.style object so that it can be\n // spread merged with the other style object\n if (renderProps.style) Object.keys(renderProps.style).forEach((key)=>renderProps.style[key] === undefined && delete renderProps.style[key]);\n return /*#__PURE__*/ (0, $8wt2Z$react).createElement(\"div\", {\n ...props,\n ...renderProps,\n style: {\n ...style,\n ...renderProps.style\n },\n ref: ref,\n \"data-placement\": placement\n });\n});\n\n\nexport {$44f671af83e7d9e0$export$2de4954e8ae13b9f as OverlayArrowContext, $44f671af83e7d9e0$export$746d02f47f4d381 as OverlayArrow};\n//# sourceMappingURL=OverlayArrow.module.js.map\n","import {useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3} from \"./utils.mjs\";\nimport {OverlayArrowContext as $44f671af83e7d9e0$export$2de4954e8ae13b9f} from \"./OverlayArrow.mjs\";\nimport {OverlayTriggerStateContext as $de32f1b87079253c$export$d2f961adcb0afbe} from \"./Dialog.mjs\";\nimport {usePopover as $ehFet$usePopover, Overlay as $ehFet$Overlay, DismissButton as $ehFet$DismissButton} from \"react-aria\";\nimport {useExitAnimation as $ehFet$useExitAnimation, useLayoutEffect as $ehFet$useLayoutEffect, useEnterAnimation as $ehFet$useEnterAnimation, mergeProps as $ehFet$mergeProps, filterDOMProps as $ehFet$filterDOMProps} from \"@react-aria/utils\";\nimport {useOverlayTriggerState as $ehFet$useOverlayTriggerState} from \"react-stately\";\nimport $ehFet$react, {createContext as $ehFet$createContext, forwardRef as $ehFet$forwardRef, useContext as $ehFet$useContext, useRef as $ehFet$useRef, useState as $ehFet$useState} from \"react\";\nimport {useIsHidden as $ehFet$useIsHidden} from \"@react-aria/collections\";\n\n/*\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\n\n\n\n\n\n\nconst $07b14b47974efb58$export$9b9a0cd73afb7ca4 = /*#__PURE__*/ (0, $ehFet$createContext)(null);\nconst $07b14b47974efb58$export$5b6b19405a83ff9d = /*#__PURE__*/ (0, $ehFet$forwardRef)(function Popover(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $07b14b47974efb58$export$9b9a0cd73afb7ca4);\n let contextState = (0, $ehFet$useContext)((0, $de32f1b87079253c$export$d2f961adcb0afbe));\n let localState = (0, $ehFet$useOverlayTriggerState)(props);\n let state = props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;\n let isExiting = (0, $ehFet$useExitAnimation)(ref, state.isOpen) || props.isExiting || false;\n let isHidden = (0, $ehFet$useIsHidden)();\n // If we are in a hidden tree, we still need to preserve our children.\n if (isHidden) {\n let children = props.children;\n if (typeof children === 'function') children = children({\n trigger: props.trigger || null,\n placement: 'bottom',\n isEntering: false,\n isExiting: false,\n defaultChildren: null\n });\n return /*#__PURE__*/ (0, $ehFet$react).createElement((0, $ehFet$react).Fragment, null, children);\n }\n if (state && !state.isOpen && !isExiting) return null;\n return /*#__PURE__*/ (0, $ehFet$react).createElement($07b14b47974efb58$var$PopoverInner, {\n ...props,\n triggerRef: props.triggerRef,\n state: state,\n popoverRef: ref,\n isExiting: isExiting\n });\n});\nfunction $07b14b47974efb58$var$PopoverInner({ state: state, isExiting: isExiting, UNSTABLE_portalContainer: UNSTABLE_portalContainer, ...props }) {\n // Calculate the arrow size internally (and remove props.arrowSize from PopoverProps)\n // Referenced from: packages/@react-spectrum/tooltip/src/TooltipTrigger.tsx\n let arrowRef = (0, $ehFet$useRef)(null);\n let [arrowWidth, setArrowWidth] = (0, $ehFet$useState)(0);\n (0, $ehFet$useLayoutEffect)(()=>{\n if (arrowRef.current && state.isOpen) setArrowWidth(arrowRef.current.getBoundingClientRect().width);\n }, [\n state.isOpen,\n arrowRef\n ]);\n var _props_offset;\n let { popoverProps: popoverProps, underlayProps: underlayProps, arrowProps: arrowProps, placement: placement } = (0, $ehFet$usePopover)({\n ...props,\n offset: (_props_offset = props.offset) !== null && _props_offset !== void 0 ? _props_offset : 8,\n arrowSize: arrowWidth\n }, state);\n let ref = props.popoverRef;\n let isEntering = (0, $ehFet$useEnterAnimation)(ref, !!placement) || props.isEntering || false;\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n ...props,\n defaultClassName: 'react-aria-Popover',\n values: {\n trigger: props.trigger || null,\n placement: placement,\n isEntering: isEntering,\n isExiting: isExiting\n }\n });\n let style = {\n ...popoverProps.style,\n ...renderProps.style\n };\n return /*#__PURE__*/ (0, $ehFet$react).createElement((0, $ehFet$Overlay), {\n ...props,\n isExiting: isExiting,\n portalContainer: UNSTABLE_portalContainer\n }, !props.isNonModal && state.isOpen && /*#__PURE__*/ (0, $ehFet$react).createElement(\"div\", {\n \"data-testid\": \"underlay\",\n ...underlayProps,\n style: {\n position: 'fixed',\n inset: 0\n }\n }), /*#__PURE__*/ (0, $ehFet$react).createElement(\"div\", {\n ...(0, $ehFet$mergeProps)((0, $ehFet$filterDOMProps)(props), popoverProps),\n ...renderProps,\n ref: ref,\n slot: props.slot || undefined,\n style: style,\n \"data-trigger\": props.trigger,\n \"data-placement\": placement,\n \"data-entering\": isEntering || undefined,\n \"data-exiting\": isExiting || undefined\n }, !props.isNonModal && /*#__PURE__*/ (0, $ehFet$react).createElement((0, $ehFet$DismissButton), {\n onDismiss: state.close\n }), /*#__PURE__*/ (0, $ehFet$react).createElement((0, $44f671af83e7d9e0$export$2de4954e8ae13b9f).Provider, {\n value: {\n ...arrowProps,\n placement: placement,\n ref: arrowRef\n }\n }, renderProps.children), /*#__PURE__*/ (0, $ehFet$react).createElement((0, $ehFet$DismissButton), {\n onDismiss: state.close\n })));\n}\n\n\nexport {$07b14b47974efb58$export$9b9a0cd73afb7ca4 as PopoverContext, $07b14b47974efb58$export$5b6b19405a83ff9d as Popover};\n//# sourceMappingURL=Popover.module.js.map\n","import {useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415} from \"./utils.mjs\";\nimport $3zqIJ$react, {createContext as $3zqIJ$createContext, forwardRef as $3zqIJ$forwardRef} from \"react\";\n\n/*\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\nconst $63df2425e2108aa8$export$744d98a3b8a94e1c = /*#__PURE__*/ (0, $3zqIJ$createContext)({});\nconst $63df2425e2108aa8$export$16e4d70cc375e707 = /*#__PURE__*/ (0, $3zqIJ$forwardRef)(function Keyboard(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $63df2425e2108aa8$export$744d98a3b8a94e1c);\n return /*#__PURE__*/ (0, $3zqIJ$react).createElement(\"kbd\", {\n dir: \"ltr\",\n ...props,\n ref: ref\n });\n});\n\n\nexport {$63df2425e2108aa8$export$744d98a3b8a94e1c as KeyboardContext, $63df2425e2108aa8$export$16e4d70cc375e707 as Keyboard};\n//# sourceMappingURL=Keyboard.module.js.map\n","import {CollectionRendererContext as $7135fc7d473fd974$export$4feb769f8ddf26c5, SectionContext as $7135fc7d473fd974$export$d40e14dec8b060a8, usePersistedKeys as $7135fc7d473fd974$export$90e00781bc59d8f9} from \"./Collection.mjs\";\nimport {Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3, useSlot as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8, useSlottedContext as $64fa3d84918910a7$export$fabf2dc03a41866e} from \"./utils.mjs\";\nimport {HeaderContext as $72a5793c14baf454$export$e0e4026c12a8bdbb} from \"./Header.mjs\";\nimport {KeyboardContext as $63df2425e2108aa8$export$744d98a3b8a94e1c} from \"./Keyboard.mjs\";\nimport {OverlayTriggerStateContext as $de32f1b87079253c$export$d2f961adcb0afbe} from \"./Dialog.mjs\";\nimport {PopoverContext as $07b14b47974efb58$export$9b9a0cd73afb7ca4} from \"./Popover.mjs\";\nimport {SeparatorContext as $431f98aba6844401$export$6615d83f6de245ce} from \"./Separator.mjs\";\nimport {TextContext as $514c0188e459b4c0$export$9afb8bc826b033ea} from \"./Text.mjs\";\nimport {UNSTABLE_InternalAutocompleteContext as $d2f53cda644affe3$export$65d2a03b8800d6e3} from \"./Autocomplete.mjs\";\nimport {useMenuTrigger as $kM2ZM$useMenuTrigger, useMenu as $kM2ZM$useMenu, FocusScope as $kM2ZM$FocusScope, useMenuSection as $kM2ZM$useMenuSection, useMenuItem as $kM2ZM$useMenuItem, useFocusRing as $kM2ZM$useFocusRing, mergeProps as $kM2ZM$mergeProps} from \"react-aria\";\nimport {createBranchComponent as $kM2ZM$createBranchComponent, CollectionBuilder as $kM2ZM$CollectionBuilder, Collection as $kM2ZM$Collection, createLeafComponent as $kM2ZM$createLeafComponent} from \"@react-aria/collections\";\nimport {useMenuTriggerState as $kM2ZM$useMenuTriggerState, useTreeState as $kM2ZM$useTreeState} from \"react-stately\";\nimport {useResizeObserver as $kM2ZM$useResizeObserver, useObjectRef as $kM2ZM$useObjectRef, mergeRefs as $kM2ZM$mergeRefs, filterDOMProps as $kM2ZM$filterDOMProps} from \"@react-aria/utils\";\nimport {SelectionManager as $kM2ZM$SelectionManager, useMultipleSelectionState as $kM2ZM$useMultipleSelectionState} from \"@react-stately/selection\";\nimport {PressResponder as $kM2ZM$PressResponder, useHover as $kM2ZM$useHover} from \"@react-aria/interactions\";\nimport $kM2ZM$react, {createContext as $kM2ZM$createContext, useRef as $kM2ZM$useRef, useState as $kM2ZM$useState, useCallback as $kM2ZM$useCallback, useContext as $kM2ZM$useContext, forwardRef as $kM2ZM$forwardRef, useMemo as $kM2ZM$useMemo} from \"react\";\nimport {useSubmenuTriggerState as $kM2ZM$useSubmenuTriggerState} from \"@react-stately/menu\";\nimport {useSubmenuTrigger as $kM2ZM$useSubmenuTrigger} from \"@react-aria/menu\";\n\n/*\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst $3674c52c6b3c5bce$export$c7e742effb1c51e2 = /*#__PURE__*/ (0, $kM2ZM$createContext)(null);\nconst $3674c52c6b3c5bce$export$24aad8519b95b41b = /*#__PURE__*/ (0, $kM2ZM$createContext)(null);\nconst $3674c52c6b3c5bce$export$795aec4671cbae19 = /*#__PURE__*/ (0, $kM2ZM$createContext)(null);\nconst $3674c52c6b3c5bce$var$SelectionManagerContext = /*#__PURE__*/ (0, $kM2ZM$createContext)(null);\nfunction $3674c52c6b3c5bce$export$27d2ad3c5815583e(props) {\n let state = (0, $kM2ZM$useMenuTriggerState)(props);\n let ref = (0, $kM2ZM$useRef)(null);\n let { menuTriggerProps: menuTriggerProps, menuProps: menuProps } = (0, $kM2ZM$useMenuTrigger)({\n ...props,\n type: 'menu'\n }, state, ref);\n // Allows menu width to match button\n let [buttonWidth, setButtonWidth] = (0, $kM2ZM$useState)(null);\n let onResize = (0, $kM2ZM$useCallback)(()=>{\n if (ref.current) setButtonWidth(ref.current.offsetWidth + 'px');\n }, [\n ref\n ]);\n (0, $kM2ZM$useResizeObserver)({\n ref: ref,\n onResize: onResize\n });\n let scrollRef = (0, $kM2ZM$useRef)(null);\n return /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n $3674c52c6b3c5bce$export$c7e742effb1c51e2,\n {\n ...menuProps,\n ref: scrollRef\n }\n ],\n [\n (0, $de32f1b87079253c$export$d2f961adcb0afbe),\n state\n ],\n [\n $3674c52c6b3c5bce$export$795aec4671cbae19,\n state\n ],\n [\n (0, $07b14b47974efb58$export$9b9a0cd73afb7ca4),\n {\n trigger: 'MenuTrigger',\n triggerRef: ref,\n scrollRef: scrollRef,\n placement: 'bottom start',\n style: {\n '--trigger-width': buttonWidth\n }\n }\n ]\n ]\n }, /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $kM2ZM$PressResponder), {\n ...menuTriggerProps,\n ref: ref,\n isPressed: state.isOpen\n }, props.children));\n}\nconst $3674c52c6b3c5bce$var$SubmenuTriggerContext = /*#__PURE__*/ (0, $kM2ZM$createContext)(null);\nconst $3674c52c6b3c5bce$export$ecabc99eeffab7ca = /*#__PURE__*/ (0, $kM2ZM$createBranchComponent)('submenutrigger', (props, ref, item)=>{\n let { CollectionBranch: CollectionBranch } = (0, $kM2ZM$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));\n let state = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$export$24aad8519b95b41b);\n let rootMenuTriggerState = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$export$795aec4671cbae19);\n let submenuTriggerState = (0, $kM2ZM$useSubmenuTriggerState)({\n triggerKey: item.key\n }, rootMenuTriggerState);\n let submenuRef = (0, $kM2ZM$useRef)(null);\n let itemRef = (0, $kM2ZM$useObjectRef)(ref);\n let { parentMenuRef: parentMenuRef } = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$var$SubmenuTriggerContext);\n let { submenuTriggerProps: submenuTriggerProps, submenuProps: submenuProps, popoverProps: popoverProps } = (0, $kM2ZM$useSubmenuTrigger)({\n parentMenuRef: parentMenuRef,\n submenuRef: submenuRef,\n delay: props.delay\n }, submenuTriggerState, itemRef);\n return /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n $3674c52c6b3c5bce$var$MenuItemContext,\n {\n ...submenuTriggerProps,\n onAction: undefined,\n ref: itemRef\n }\n ],\n [\n $3674c52c6b3c5bce$export$c7e742effb1c51e2,\n submenuProps\n ],\n [\n (0, $de32f1b87079253c$export$d2f961adcb0afbe),\n submenuTriggerState\n ],\n [\n (0, $07b14b47974efb58$export$9b9a0cd73afb7ca4),\n {\n ref: submenuRef,\n trigger: 'SubmenuTrigger',\n triggerRef: itemRef,\n placement: 'end top',\n // Prevent parent popover from hiding submenu.\n // @ts-ignore\n 'data-react-aria-top-layer': true,\n ...popoverProps\n }\n ]\n ]\n }, /*#__PURE__*/ (0, $kM2ZM$react).createElement(CollectionBranch, {\n collection: state.collection,\n parent: item\n }), props.children[1]);\n}, (props)=>props.children[0]);\nconst $3674c52c6b3c5bce$export$d9b273488cd8ce6f = /*#__PURE__*/ (0, $kM2ZM$forwardRef)(function Menu(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $3674c52c6b3c5bce$export$c7e742effb1c51e2);\n // Delay rendering the actual menu until we have the collection so that auto focus works properly.\n return /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $kM2ZM$CollectionBuilder), {\n content: /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $kM2ZM$Collection), props)\n }, (collection)=>collection.size > 0 && /*#__PURE__*/ (0, $kM2ZM$react).createElement($3674c52c6b3c5bce$var$MenuInner, {\n props: props,\n collection: collection,\n menuRef: ref\n }));\n});\nfunction $3674c52c6b3c5bce$var$MenuInner({ props: props, collection: collection, menuRef: ref }) {\n let { filterFn: filterFn, collectionProps: autocompleteMenuProps, collectionRef: collectionRef } = (0, $kM2ZM$useContext)((0, $d2f53cda644affe3$export$65d2a03b8800d6e3)) || {};\n // Memoed so that useAutocomplete callback ref is properly only called once on mount and not everytime a rerender happens\n ref = (0, $kM2ZM$useObjectRef)((0, $kM2ZM$useMemo)(()=>(0, $kM2ZM$mergeRefs)(ref, collectionRef !== undefined ? collectionRef : null), [\n collectionRef,\n ref\n ]));\n let filteredCollection = (0, $kM2ZM$useMemo)(()=>filterFn ? collection.filter(filterFn) : collection, [\n collection,\n filterFn\n ]);\n let state = (0, $kM2ZM$useTreeState)({\n ...props,\n collection: filteredCollection,\n children: undefined\n });\n let triggerState = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$export$795aec4671cbae19);\n let { isVirtualized: isVirtualized, CollectionRoot: CollectionRoot } = (0, $kM2ZM$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));\n let { menuProps: menuProps } = (0, $kM2ZM$useMenu)({\n ...props,\n ...autocompleteMenuProps,\n isVirtualized: isVirtualized,\n onClose: props.onClose || (triggerState === null || triggerState === void 0 ? void 0 : triggerState.close)\n }, state, ref);\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n defaultClassName: 'react-aria-Menu',\n className: props.className,\n style: props.style,\n values: {}\n });\n return /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $kM2ZM$FocusScope), null, /*#__PURE__*/ (0, $kM2ZM$react).createElement(\"div\", {\n ...(0, $kM2ZM$filterDOMProps)(props),\n ...menuProps,\n ...renderProps,\n ref: ref,\n slot: props.slot || undefined,\n onScroll: props.onScroll\n }, /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n $3674c52c6b3c5bce$export$24aad8519b95b41b,\n state\n ],\n [\n (0, $431f98aba6844401$export$6615d83f6de245ce),\n {\n elementType: 'div'\n }\n ],\n [\n (0, $7135fc7d473fd974$export$d40e14dec8b060a8),\n {\n name: 'MenuSection',\n render: $3674c52c6b3c5bce$var$MenuSectionInner\n }\n ],\n [\n $3674c52c6b3c5bce$var$SubmenuTriggerContext,\n {\n parentMenuRef: ref\n }\n ],\n [\n $3674c52c6b3c5bce$var$MenuItemContext,\n null\n ],\n [\n $3674c52c6b3c5bce$var$SelectionManagerContext,\n state.selectionManager\n ]\n ]\n }, /*#__PURE__*/ (0, $kM2ZM$react).createElement(CollectionRoot, {\n collection: state.collection,\n persistedKeys: (0, $7135fc7d473fd974$export$90e00781bc59d8f9)(state.selectionManager.focusedKey),\n scrollRef: ref\n }))));\n}\n// A subclass of SelectionManager that forwards focus-related properties to the parent,\n// but has its own local selection state.\nclass $3674c52c6b3c5bce$var$GroupSelectionManager extends (0, $kM2ZM$SelectionManager) {\n get focusedKey() {\n return this.parent.focusedKey;\n }\n get isFocused() {\n return this.parent.isFocused;\n }\n setFocusedKey(key, childFocusStrategy) {\n return this.parent.setFocusedKey(key, childFocusStrategy);\n }\n setFocused(isFocused) {\n this.parent.setFocused(isFocused);\n }\n get childFocusStrategy() {\n return this.parent.childFocusStrategy;\n }\n constructor(parent, state){\n super(parent.collection, state);\n this.parent = parent;\n }\n}\nfunction $3674c52c6b3c5bce$var$MenuSectionInner(props, ref, section, className = 'react-aria-MenuSection') {\n var _section_props, _section_props1;\n let state = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$export$24aad8519b95b41b);\n let { CollectionBranch: CollectionBranch } = (0, $kM2ZM$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));\n let [headingRef, heading] = (0, $64fa3d84918910a7$export$9d4c57ee4c6ffdd8)();\n var _section_props_arialabel;\n let { headingProps: headingProps, groupProps: groupProps } = (0, $kM2ZM$useMenuSection)({\n heading: heading,\n 'aria-label': (_section_props_arialabel = section.props['aria-label']) !== null && _section_props_arialabel !== void 0 ? _section_props_arialabel : undefined\n });\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n defaultClassName: className,\n className: (_section_props = section.props) === null || _section_props === void 0 ? void 0 : _section_props.className,\n style: (_section_props1 = section.props) === null || _section_props1 === void 0 ? void 0 : _section_props1.style,\n values: {}\n });\n let parent = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$var$SelectionManagerContext);\n let selectionState = (0, $kM2ZM$useMultipleSelectionState)(props);\n let manager = props.selectionMode != null ? new $3674c52c6b3c5bce$var$GroupSelectionManager(parent, selectionState) : parent;\n return /*#__PURE__*/ (0, $kM2ZM$react).createElement(\"section\", {\n ...(0, $kM2ZM$filterDOMProps)(props),\n ...groupProps,\n ...renderProps,\n ref: ref\n }, /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n (0, $72a5793c14baf454$export$e0e4026c12a8bdbb),\n {\n ...headingProps,\n ref: headingRef\n }\n ],\n [\n $3674c52c6b3c5bce$var$SelectionManagerContext,\n manager\n ]\n ]\n }, /*#__PURE__*/ (0, $kM2ZM$react).createElement(CollectionBranch, {\n collection: state.collection,\n parent: section\n })));\n}\nconst $3674c52c6b3c5bce$export$4b1545b4f2016d26 = /*#__PURE__*/ (0, $kM2ZM$createBranchComponent)('section', $3674c52c6b3c5bce$var$MenuSectionInner);\nconst $3674c52c6b3c5bce$var$MenuItemContext = /*#__PURE__*/ (0, $kM2ZM$createContext)(null);\nconst $3674c52c6b3c5bce$export$2ce376c2cc3355c8 = /*#__PURE__*/ (0, $kM2ZM$createLeafComponent)('item', function MenuItem(props, forwardedRef, item) {\n var _useSlottedContext;\n [props, forwardedRef] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, forwardedRef, $3674c52c6b3c5bce$var$MenuItemContext);\n let id = (_useSlottedContext = (0, $64fa3d84918910a7$export$fabf2dc03a41866e)($3674c52c6b3c5bce$var$MenuItemContext)) === null || _useSlottedContext === void 0 ? void 0 : _useSlottedContext.id;\n let state = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$export$24aad8519b95b41b);\n let ref = (0, $kM2ZM$useObjectRef)(forwardedRef);\n let selectionManager = (0, $kM2ZM$useContext)($3674c52c6b3c5bce$var$SelectionManagerContext);\n let { menuItemProps: menuItemProps, labelProps: labelProps, descriptionProps: descriptionProps, keyboardShortcutProps: keyboardShortcutProps, ...states } = (0, $kM2ZM$useMenuItem)({\n ...props,\n id: id,\n key: item.key,\n selectionManager: selectionManager\n }, state, ref);\n let { isFocusVisible: isFocusVisible, focusProps: focusProps } = (0, $kM2ZM$useFocusRing)();\n let { hoverProps: hoverProps, isHovered: isHovered } = (0, $kM2ZM$useHover)({\n isDisabled: states.isDisabled\n });\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n ...props,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-MenuItem',\n values: {\n ...states,\n isHovered: isHovered,\n isFocusVisible: isFocusVisible,\n selectionMode: selectionManager.selectionMode,\n selectionBehavior: selectionManager.selectionBehavior,\n hasSubmenu: !!props['aria-haspopup'],\n isOpen: props['aria-expanded'] === 'true'\n }\n });\n let ElementType = props.href ? 'a' : 'div';\n return /*#__PURE__*/ (0, $kM2ZM$react).createElement(ElementType, {\n ...(0, $kM2ZM$mergeProps)(menuItemProps, focusProps, hoverProps),\n ...renderProps,\n ref: ref,\n \"data-disabled\": states.isDisabled || undefined,\n \"data-hovered\": isHovered || undefined,\n \"data-focused\": states.isFocused || undefined,\n \"data-focus-visible\": isFocusVisible || undefined,\n \"data-pressed\": states.isPressed || undefined,\n \"data-selected\": states.isSelected || undefined,\n \"data-selection-mode\": selectionManager.selectionMode === 'none' ? undefined : selectionManager.selectionMode,\n \"data-has-submenu\": !!props['aria-haspopup'] || undefined,\n \"data-open\": props['aria-expanded'] === 'true' || undefined\n }, /*#__PURE__*/ (0, $kM2ZM$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n (0, $514c0188e459b4c0$export$9afb8bc826b033ea),\n {\n slots: {\n label: labelProps,\n description: descriptionProps\n }\n }\n ],\n [\n (0, $63df2425e2108aa8$export$744d98a3b8a94e1c),\n keyboardShortcutProps\n ]\n ]\n }, renderProps.children));\n});\n\n\nexport {$3674c52c6b3c5bce$export$c7e742effb1c51e2 as MenuContext, $3674c52c6b3c5bce$export$24aad8519b95b41b as MenuStateContext, $3674c52c6b3c5bce$export$795aec4671cbae19 as RootMenuTriggerStateContext, $3674c52c6b3c5bce$export$27d2ad3c5815583e as MenuTrigger, $3674c52c6b3c5bce$export$ecabc99eeffab7ca as SubmenuTrigger, $3674c52c6b3c5bce$export$d9b273488cd8ce6f as Menu, $3674c52c6b3c5bce$export$4b1545b4f2016d26 as MenuSection, $3674c52c6b3c5bce$export$2ce376c2cc3355c8 as MenuItem};\n//# sourceMappingURL=Menu.module.js.map\n","import {ButtonContext as $d2b4bc8c273e7be6$export$24d547caef80ccd1} from \"./Button.mjs\";\nimport {DEFAULT_SLOT as $64fa3d84918910a7$export$c62b8e45d58ddad9, Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3} from \"./utils.mjs\";\nimport {HeadingContext as $4e85f108e88277b8$export$d688439359537581} from \"./RSPContexts.mjs\";\nimport {PopoverContext as $07b14b47974efb58$export$9b9a0cd73afb7ca4} from \"./Popover.mjs\";\nimport {RootMenuTriggerStateContext as $3674c52c6b3c5bce$export$795aec4671cbae19} from \"./Menu.mjs\";\nimport {useOverlayTrigger as $6IYYA$useOverlayTrigger, useId as $6IYYA$useId, useDialog as $6IYYA$useDialog} from \"react-aria\";\nimport {filterDOMProps as $6IYYA$filterDOMProps} from \"@react-aria/utils\";\nimport {useMenuTriggerState as $6IYYA$useMenuTriggerState} from \"react-stately\";\nimport {PressResponder as $6IYYA$PressResponder} from \"@react-aria/interactions\";\nimport $6IYYA$react, {createContext as $6IYYA$createContext, useRef as $6IYYA$useRef, forwardRef as $6IYYA$forwardRef, useContext as $6IYYA$useContext} from \"react\";\n\n/*\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\n\n\n\n\n\n\n\n\nconst $de32f1b87079253c$export$8b93a07348a7730c = /*#__PURE__*/ (0, $6IYYA$createContext)(null);\nconst $de32f1b87079253c$export$d2f961adcb0afbe = /*#__PURE__*/ (0, $6IYYA$createContext)(null);\nfunction $de32f1b87079253c$export$2e1e1122cf0cba88(props) {\n // Use useMenuTriggerState instead of useOverlayTriggerState in case a menu is embedded in the dialog.\n // This is needed to handle submenus.\n let state = (0, $6IYYA$useMenuTriggerState)(props);\n let buttonRef = (0, $6IYYA$useRef)(null);\n let { triggerProps: triggerProps, overlayProps: overlayProps } = (0, $6IYYA$useOverlayTrigger)({\n type: 'dialog'\n }, state, buttonRef);\n // Label dialog by the trigger as a fallback if there is no title slot.\n // This is done in RAC instead of hooks because otherwise we cannot distinguish\n // between context and props. Normally aria-labelledby overrides the title\n // but when sent by context we want the title to win.\n triggerProps.id = (0, $6IYYA$useId)();\n overlayProps['aria-labelledby'] = triggerProps.id;\n return /*#__PURE__*/ (0, $6IYYA$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n $de32f1b87079253c$export$d2f961adcb0afbe,\n state\n ],\n [\n (0, $3674c52c6b3c5bce$export$795aec4671cbae19),\n state\n ],\n [\n $de32f1b87079253c$export$8b93a07348a7730c,\n overlayProps\n ],\n [\n (0, $07b14b47974efb58$export$9b9a0cd73afb7ca4),\n {\n trigger: 'DialogTrigger',\n triggerRef: buttonRef\n }\n ]\n ]\n }, /*#__PURE__*/ (0, $6IYYA$react).createElement((0, $6IYYA$PressResponder), {\n ...triggerProps,\n ref: buttonRef,\n isPressed: state.isOpen\n }, props.children));\n}\nconst $de32f1b87079253c$export$3ddf2d174ce01153 = /*#__PURE__*/ (0, $6IYYA$forwardRef)(function Dialog(props, ref) {\n let originalAriaLabelledby = props['aria-labelledby'];\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $de32f1b87079253c$export$8b93a07348a7730c);\n let { dialogProps: dialogProps, titleProps: titleProps } = (0, $6IYYA$useDialog)({\n ...props,\n // Only pass aria-labelledby from props, not context.\n // Context is used as a fallback below.\n 'aria-labelledby': originalAriaLabelledby\n }, ref);\n let state = (0, $6IYYA$useContext)($de32f1b87079253c$export$d2f961adcb0afbe);\n if (!dialogProps['aria-label'] && !dialogProps['aria-labelledby']) {\n // If aria-labelledby exists on props, we know it came from context.\n // Use that as a fallback in case there is no title slot.\n if (props['aria-labelledby']) dialogProps['aria-labelledby'] = props['aria-labelledby'];\n else console.warn('If a Dialog does not contain a <Heading slot=\"title\">, it must have an aria-label or aria-labelledby attribute for accessibility.');\n }\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n defaultClassName: 'react-aria-Dialog',\n className: props.className,\n style: props.style,\n children: props.children,\n values: {\n close: (state === null || state === void 0 ? void 0 : state.close) || (()=>{})\n }\n });\n return /*#__PURE__*/ (0, $6IYYA$react).createElement(\"section\", {\n ...(0, $6IYYA$filterDOMProps)(props),\n ...dialogProps,\n ...renderProps,\n ref: ref,\n slot: props.slot || undefined\n }, /*#__PURE__*/ (0, $6IYYA$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n (0, $4e85f108e88277b8$export$d688439359537581),\n {\n slots: {\n [(0, $64fa3d84918910a7$export$c62b8e45d58ddad9)]: {},\n title: {\n ...titleProps,\n level: 2\n }\n }\n }\n ],\n [\n (0, $d2b4bc8c273e7be6$export$24d547caef80ccd1),\n {\n slots: {\n [(0, $64fa3d84918910a7$export$c62b8e45d58ddad9)]: {},\n close: {\n onPress: ()=>state === null || state === void 0 ? void 0 : state.close()\n }\n }\n }\n ]\n ]\n }, renderProps.children));\n});\n\n\nexport {$de32f1b87079253c$export$8b93a07348a7730c as DialogContext, $de32f1b87079253c$export$d2f961adcb0afbe as OverlayTriggerStateContext, $de32f1b87079253c$export$2e1e1122cf0cba88 as DialogTrigger, $de32f1b87079253c$export$3ddf2d174ce01153 as Dialog};\n//# sourceMappingURL=Dialog.module.js.map\n","import {CollectionRendererContext as $7135fc7d473fd974$export$4feb769f8ddf26c5, DefaultCollectionRenderer as $7135fc7d473fd974$export$a164736487e3f0ae, usePersistedKeys as $7135fc7d473fd974$export$90e00781bc59d8f9} from \"./Collection.mjs\";\nimport {Provider as $64fa3d84918910a7$export$2881499e37b75b9a, useContextProps as $64fa3d84918910a7$export$29f1550f4b0d4415, useRenderProps as $64fa3d84918910a7$export$4d86445c2cf5e3, useSlottedContext as $64fa3d84918910a7$export$fabf2dc03a41866e} from \"./utils.mjs\";\nimport {useFocusRing as $7aSLZ$useFocusRing, useTabList as $7aSLZ$useTabList, useTab as $7aSLZ$useTab, useHover as $7aSLZ$useHover, mergeProps as $7aSLZ$mergeProps, useTabPanel as $7aSLZ$useTabPanel} from \"react-aria\";\nimport {CollectionBuilder as $7aSLZ$CollectionBuilder, Collection as $7aSLZ$Collection, createLeafComponent as $7aSLZ$createLeafComponent, createHideableComponent as $7aSLZ$createHideableComponent} from \"@react-aria/collections\";\nimport {filterDOMProps as $7aSLZ$filterDOMProps, useObjectRef as $7aSLZ$useObjectRef} from \"@react-aria/utils\";\nimport {useTabListState as $7aSLZ$useTabListState} from \"react-stately\";\nimport $7aSLZ$react, {createContext as $7aSLZ$createContext, forwardRef as $7aSLZ$forwardRef, useMemo as $7aSLZ$useMemo, useContext as $7aSLZ$useContext} from \"react\";\n\n/*\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\n\n\n\n\n\nconst $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f = /*#__PURE__*/ (0, $7aSLZ$createContext)(null);\nconst $5e8ad37a45e1c704$export$364712098d2aa57c = /*#__PURE__*/ (0, $7aSLZ$createContext)(null);\nconst $5e8ad37a45e1c704$export$b2539bed5023c21c = /*#__PURE__*/ (0, $7aSLZ$forwardRef)(function Tabs(props, ref) {\n [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f);\n let { children: children, orientation: orientation = 'horizontal' } = props;\n children = (0, $7aSLZ$useMemo)(()=>typeof children === 'function' ? children({\n orientation: orientation,\n defaultChildren: null\n }) : children, [\n children,\n orientation\n ]);\n return /*#__PURE__*/ (0, $7aSLZ$react).createElement((0, $7aSLZ$CollectionBuilder), {\n content: children\n }, (collection)=>/*#__PURE__*/ (0, $7aSLZ$react).createElement($5e8ad37a45e1c704$var$TabsInner, {\n props: props,\n collection: collection,\n tabsRef: ref\n }));\n});\nfunction $5e8ad37a45e1c704$var$TabsInner({ props: props, tabsRef: ref, collection: collection }) {\n let { orientation: orientation = 'horizontal' } = props;\n let state = (0, $7aSLZ$useTabListState)({\n ...props,\n collection: collection,\n children: undefined\n });\n let { focusProps: focusProps, isFocused: isFocused, isFocusVisible: isFocusVisible } = (0, $7aSLZ$useFocusRing)({\n within: true\n });\n let values = (0, $7aSLZ$useMemo)(()=>({\n orientation: orientation,\n isFocusWithin: isFocused,\n isFocusVisible: isFocusVisible\n }), [\n orientation,\n isFocused,\n isFocusVisible\n ]);\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n ...props,\n defaultClassName: 'react-aria-Tabs',\n values: values\n });\n return /*#__PURE__*/ (0, $7aSLZ$react).createElement(\"div\", {\n ...(0, $7aSLZ$filterDOMProps)(props),\n ...focusProps,\n ...renderProps,\n ref: ref,\n slot: props.slot || undefined,\n \"data-focused\": isFocused || undefined,\n \"data-orientation\": orientation,\n \"data-focus-visible\": isFocusVisible || undefined,\n \"data-disabled\": state.isDisabled || undefined\n }, /*#__PURE__*/ (0, $7aSLZ$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f,\n props\n ],\n [\n $5e8ad37a45e1c704$export$364712098d2aa57c,\n state\n ]\n ]\n }, renderProps.children));\n}\nconst $5e8ad37a45e1c704$export$e51a686c67fdaa2d = /*#__PURE__*/ (0, $7aSLZ$forwardRef)(function TabList(props, ref) {\n let state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);\n return state ? /*#__PURE__*/ (0, $7aSLZ$react).createElement($5e8ad37a45e1c704$var$TabListInner, {\n props: props,\n forwardedRef: ref\n }) : /*#__PURE__*/ (0, $7aSLZ$react).createElement((0, $7aSLZ$Collection), props);\n});\nfunction $5e8ad37a45e1c704$var$TabListInner({ props: props, forwardedRef: ref }) {\n let state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);\n let { CollectionRoot: CollectionRoot } = (0, $7aSLZ$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));\n let { orientation: orientation = 'horizontal', keyboardActivation: keyboardActivation = 'automatic' } = (0, $64fa3d84918910a7$export$fabf2dc03a41866e)($5e8ad37a45e1c704$export$cfa7aa87c26e7d1f);\n let objectRef = (0, $7aSLZ$useObjectRef)(ref);\n let { tabListProps: tabListProps } = (0, $7aSLZ$useTabList)({\n ...props,\n orientation: orientation,\n keyboardActivation: keyboardActivation\n }, state, objectRef);\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n ...props,\n children: null,\n defaultClassName: 'react-aria-TabList',\n values: {\n orientation: orientation,\n state: state\n }\n });\n let DOMProps = (0, $7aSLZ$filterDOMProps)(props);\n delete DOMProps.id;\n return /*#__PURE__*/ (0, $7aSLZ$react).createElement(\"div\", {\n ...DOMProps,\n ...tabListProps,\n ref: objectRef,\n ...renderProps,\n \"data-orientation\": orientation || undefined\n }, /*#__PURE__*/ (0, $7aSLZ$react).createElement(CollectionRoot, {\n collection: state.collection,\n persistedKeys: (0, $7135fc7d473fd974$export$90e00781bc59d8f9)(state.selectionManager.focusedKey)\n }));\n}\nconst $5e8ad37a45e1c704$export$3e41faf802a29e71 = /*#__PURE__*/ (0, $7aSLZ$createLeafComponent)('item', (props, forwardedRef, item)=>{\n let state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);\n let ref = (0, $7aSLZ$useObjectRef)(forwardedRef);\n let { tabProps: tabProps, isSelected: isSelected, isDisabled: isDisabled, isPressed: isPressed } = (0, $7aSLZ$useTab)({\n key: item.key,\n ...props\n }, state, ref);\n let { focusProps: focusProps, isFocused: isFocused, isFocusVisible: isFocusVisible } = (0, $7aSLZ$useFocusRing)();\n let { hoverProps: hoverProps, isHovered: isHovered } = (0, $7aSLZ$useHover)({\n isDisabled: isDisabled,\n onHoverStart: props.onHoverStart,\n onHoverEnd: props.onHoverEnd,\n onHoverChange: props.onHoverChange\n });\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Tab',\n values: {\n isSelected: isSelected,\n isDisabled: isDisabled,\n isFocused: isFocused,\n isFocusVisible: isFocusVisible,\n isPressed: isPressed,\n isHovered: isHovered\n }\n });\n let ElementType = item.props.href ? 'a' : 'div';\n return /*#__PURE__*/ (0, $7aSLZ$react).createElement(ElementType, {\n ...(0, $7aSLZ$mergeProps)(tabProps, focusProps, hoverProps, renderProps),\n ref: ref,\n \"data-selected\": isSelected || undefined,\n \"data-disabled\": isDisabled || undefined,\n \"data-focused\": isFocused || undefined,\n \"data-focus-visible\": isFocusVisible || undefined,\n \"data-pressed\": isPressed || undefined,\n \"data-hovered\": isHovered || undefined\n });\n});\nconst $5e8ad37a45e1c704$export$3d96ec278d3efce4 = /*#__PURE__*/ (0, $7aSLZ$createHideableComponent)(function TabPanel(props, forwardedRef) {\n const state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);\n let ref = (0, $7aSLZ$useObjectRef)(forwardedRef);\n let { tabPanelProps: tabPanelProps } = (0, $7aSLZ$useTabPanel)(props, state, ref);\n let { focusProps: focusProps, isFocused: isFocused, isFocusVisible: isFocusVisible } = (0, $7aSLZ$useFocusRing)();\n let isSelected = state.selectedKey === props.id;\n let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({\n ...props,\n defaultClassName: 'react-aria-TabPanel',\n values: {\n isFocused: isFocused,\n isFocusVisible: isFocusVisible,\n isInert: !isSelected,\n state: state\n }\n });\n if (!isSelected && !props.shouldForceMount) return null;\n let DOMProps = (0, $7aSLZ$filterDOMProps)(props);\n delete DOMProps.id;\n let domProps = isSelected ? (0, $7aSLZ$mergeProps)(DOMProps, tabPanelProps, focusProps, renderProps) : renderProps;\n return /*#__PURE__*/ (0, $7aSLZ$react).createElement(\"div\", {\n ...domProps,\n ref: ref,\n \"data-focused\": isFocused || undefined,\n \"data-focus-visible\": isFocusVisible || undefined,\n // @ts-ignore\n inert: !isSelected ? 'true' : undefined,\n \"data-inert\": !isSelected ? 'true' : undefined\n }, /*#__PURE__*/ (0, $7aSLZ$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {\n values: [\n [\n $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f,\n null\n ],\n [\n $5e8ad37a45e1c704$export$364712098d2aa57c,\n null\n ]\n ]\n }, /*#__PURE__*/ (0, $7aSLZ$react).createElement((0, $7135fc7d473fd974$export$4feb769f8ddf26c5).Provider, {\n value: (0, $7135fc7d473fd974$export$a164736487e3f0ae)\n }, renderProps.children)));\n});\n\n\nexport {$5e8ad37a45e1c704$export$cfa7aa87c26e7d1f as TabsContext, $5e8ad37a45e1c704$export$364712098d2aa57c as TabListStateContext, $5e8ad37a45e1c704$export$b2539bed5023c21c as Tabs, $5e8ad37a45e1c704$export$e51a686c67fdaa2d as TabList, $5e8ad37a45e1c704$export$3e41faf802a29e71 as Tab, $5e8ad37a45e1c704$export$3d96ec278d3efce4 as TabPanel};\n//# sourceMappingURL=Tabs.module.js.map\n","import { Menu, MenuItem, Popover, Separator } from \"react-aria-components\";\nimport { DropdownMenuOption } from \"./types\";\nimport { Fragment, PropsWithChildren, useRef } from \"react\";\n\nexport type DropdownMenuProps = {\n options: DropdownMenuOption[];\n onOpenChange?: (isOpen: boolean) => void;\n selectedValues?: string[];\n onSelectValue?: (value: string) => void;\n isOpen?: boolean;\n};\n\nexport const DropdownMenu = ({\n options,\n isOpen = false,\n onOpenChange,\n children,\n selectedValues = [],\n onSelectValue,\n}: PropsWithChildren<DropdownMenuProps>) => {\n const onOpenChangeHandler = (isOpen: boolean) => {\n onOpenChange?.(isOpen);\n };\n\n const triggerRef = useRef(null);\n return (\n <>\n <div\n className=\"c__dropdown-menu-trigger\"\n ref={triggerRef}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {children}\n </div>\n\n <Popover\n triggerRef={triggerRef}\n style={{\n marginTop: \"0px\",\n }}\n isOpen={isOpen}\n onOpenChange={onOpenChangeHandler}\n >\n <Menu className=\"c__dropdown-menu\">\n {options.map((option) => {\n return (\n <Fragment key={option.label}>\n <MenuItem\n className=\"c__dropdown-menu-item\"\n aria-label={option.label}\n key={option.label}\n onAction={() => {\n if (option.value) {\n onSelectValue?.(option.value);\n }\n option.callback?.();\n onOpenChangeHandler(false);\n }}\n isDisabled={option.isDisabled}\n >\n {option.icon}\n <div\n className=\"c__dropdown-menu-item__label\"\n aria-label={option.label}\n >\n {option.label}\n </div>\n {(option.isChecked ||\n (option.value &&\n selectedValues.includes(option.value))) && (\n <span className=\"material-icons checked\">check</span>\n )}\n </MenuItem>\n {option.showSeparator && <Separator />}\n </Fragment>\n );\n })}\n </Menu>\n </Popover>\n </>\n );\n};\n","import { useState } from \"react\";\n\nexport const useDropdownMenu = () => {\n const [isOpen, setIsOpen] = useState(false);\n return { isOpen, setIsOpen };\n};\n","import { DropdownMenu } from \":/components/dropdown-menu/DropdownMenu\";\nimport { DropdownMenuOption } from \":/components/dropdown-menu/types\";\nimport { useDropdownMenu } from \":/components/dropdown-menu/useDropdownMenu\";\nimport { Button } from \"@openfun/cunningham-react\";\n\nexport type LanguagePickerProps = {\n languages: DropdownMenuOption[];\n};\n\nexport const LanguagePicker = ({ languages }: LanguagePickerProps) => {\n const { isOpen, setIsOpen } = useDropdownMenu();\n\n return (\n <DropdownMenu options={languages} isOpen={isOpen} onOpenChange={setIsOpen}>\n <Button\n onClick={() => setIsOpen(!isOpen)}\n color=\"primary-text\"\n className=\"c__language-picker\"\n >\n <span className=\"material-icons\">translate</span>\n <span className=\"c__language-picker__label\">Français</span>\n <span className=\"material-icons\">\n {isOpen ? \"arrow_drop_up\" : \"arrow_drop_down\"}\n </span>\n </Button>\n </DropdownMenu>\n );\n};\n","import { DropdownMenuOption } from \":/components/dropdown-menu/types\";\nimport { LanguagePicker } from \":/components/language/language-picker\";\n\nimport { Button, useCunningham } from \"@openfun/cunningham-react\";\n\nexport type HeaderProps = {\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n languages?: DropdownMenuOption[];\n onTogglePanel?: () => void;\n isPanelOpen?: boolean;\n};\n\nexport const Header = ({\n leftIcon,\n rightIcon,\n languages,\n onTogglePanel,\n isPanelOpen,\n}: HeaderProps) => {\n const { t } = useCunningham();\n return (\n <div className=\"c__header\">\n <div className=\"c__header__toggle-menu\">\n <Button\n size=\"medium\"\n onClick={onTogglePanel}\n aria-label={isPanelOpen ? t(\"Close the menu\") : t(\"Open the menu\")}\n color=\"tertiary-text\"\n icon={\n <span className=\"material-icons clr-primary-800\">\n {isPanelOpen ? \"close\" : \"menu\"}\n </span>\n }\n />\n </div>\n <div className=\"c__header__left\">{leftIcon}</div>\n <div className=\"c__header__right\">\n {languages && (\n <div className=\"c__header__right__language-picker\">\n <LanguagePicker languages={languages} />\n </div>\n )}\n\n {rightIcon}\n </div>\n </div>\n );\n};\n","const config = {\n themes: {\n default: {\n theme: {\n colors: {\n \"primary-text\": \"#000091\",\n \"primary-050\": \"#F5F5FE\",\n \"primary-100\": \"#ECECFE\",\n \"primary-150\": \"#F4F4FD\",\n \"primary-200\": \"#E3E3FD\",\n \"primary-300\": \"#CACAFB\",\n \"primary-400\": \"#8585F6\",\n \"primary-500\": \"#6A6AF4\",\n \"primary-600\": \"#313178\",\n \"primary-700\": \"#272747\",\n \"primary-800\": \"#000091\",\n \"primary-900\": \"#21213F\",\n \"secondary-text\": \"#fff\",\n \"secondary-100\": \"#fee9ea\",\n \"secondary-200\": \"#fedfdf\",\n \"secondary-300\": \"#fdbfbf\",\n \"secondary-400\": \"#e1020f\",\n \"secondary-500\": \"#c91a1f\",\n \"secondary-600\": \"#5e2b2b\",\n \"secondary-700\": \"#3b2424\",\n \"secondary-800\": \"#341f1f\",\n \"secondary-900\": \"#2b1919\",\n \"greyscale-text\": \"#303C4B\",\n \"greyscale-000\": \"#fff\",\n \"greyscale-050\": \"#F6F6F6\",\n \"greyscale-100\": \"#eee\",\n \"greyscale-200\": \"#E5E5E5\",\n \"greyscale-250\": \"#ddd\",\n \"greyscale-300\": \"#CECECE\",\n \"greyscale-350\": \"#ddd\",\n \"greyscale-400\": \"#929292\",\n \"greyscale-500\": \"#7C7C7C\",\n \"greyscale-600\": \"#666666\",\n \"greyscale-700\": \"#3A3A3A\",\n \"greyscale-750\": \"#353535\",\n \"greyscale-800\": \"#2A2A2A\",\n \"greyscale-900\": \"#242424\",\n \"greyscale-950\": \"#1E1E1E\",\n \"greyscale-1000\": \"#161616\",\n \"success-text\": \"#1f8d49\",\n \"success-100\": \"#dffee6\",\n \"success-200\": \"#b8fec9\",\n \"success-300\": \"#88fdaa\",\n \"success-400\": \"#3bea7e\",\n \"success-500\": \"#1f8d49\",\n \"success-600\": \"#18753c\",\n \"success-700\": \"#204129\",\n \"success-800\": \"#1e2e22\",\n \"success-900\": \"#19281d\",\n \"info-text\": \"#0078f3\",\n \"info-100\": \"#E8EDFF\",\n \"info-200\": \"#DDE5FF\",\n \"info-300\": \"#BCCDFF\",\n \"info-400\": \"#518FFF\",\n \"info-500\": \"#0078F3\",\n \"info-600\": \"#0063CB\",\n \"info-700\": \"#273961\",\n \"info-800\": \"#222A3F\",\n \"info-900\": \"#1D2437\",\n \"warning-text\": \"#d64d00\",\n \"warning-100\": \"#fff4f3\",\n \"warning-200\": \"#ffe9e6\",\n \"warning-300\": \"#ffded9\",\n \"warning-400\": \"#ffbeb4\",\n \"warning-500\": \"#d64d00\",\n \"warning-600\": \"#b34000\",\n \"warning-700\": \"#5e2c21\",\n \"warning-800\": \"#3e241e\",\n \"warning-900\": \"#361e19\",\n \"danger-text\": \"#FFF\",\n \"danger-100\": \"#FFE9E9\",\n \"danger-200\": \"#FFDDDD\",\n \"danger-300\": \"#FFBDBD\",\n \"danger-400\": \"#FF5655\",\n \"danger-500\": \"#F60700\",\n \"danger-600\": \"#CE0500\",\n \"danger-700\": \"#642626\",\n \"danger-800\": \"#412121\",\n \"danger-900\": \"#391C1C\",\n },\n font: {\n sizes: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n ml: \"0.938rem\",\n xl: \"1.25rem\",\n t: \"0.6875rem\",\n s: \"0.75rem\",\n h1: \"2rem\",\n h2: \"1.75rem\",\n h3: \"1.5rem\",\n h4: \"1.375rem\",\n h5: \"1.25rem\",\n h6: \"1.125rem\",\n \"xl-alt\": \"5rem\",\n \"lg-alt\": \"4.5rem\",\n \"md-alt\": \"4rem\",\n \"sm-alt\": \"3.5rem\",\n \"xs-alt\": \"3rem\",\n },\n weights: {\n thin: 100,\n extrabold: 800,\n black: 900,\n },\n families: {\n accent: \"Marianne\",\n base: \"Marianne\",\n },\n },\n logo: {\n src: \"/assets/logo-gouv.svg\",\n widthHeader: \"110px\",\n widthFooter: \"220px\",\n alt: \"Gouvernement Logo\",\n },\n spacings: {\n \"0\": \"0\",\n none: \"0\",\n auto: \"auto\",\n bx: \"2.2rem\",\n full: \"100%\",\n \"4xs\": \"0.125rem\",\n \"3xs\": \"0.25rem\",\n \"2xs\": \"0.375rem\",\n xs: \"0.5rem\",\n sm: \"0.75rem\",\n base: \"1rem\",\n md: \"1.5rem\",\n lg: \"2rem\",\n xl: \"2.5rem\",\n xxl: \"3rem\",\n xxxl: \"3.5rem\",\n \"4xl\": \"4rem\",\n \"5xl\": \"4.5rem\",\n \"6xl\": \"6rem\",\n \"7xl\": \"7.5rem\",\n },\n breakpoints: {\n xxs: \"320px\",\n xs: \"480px\",\n mobile: \"768px\",\n tablet: \"1024px\",\n },\n },\n components: {\n modal: {\n \"width-small\": \"342px\",\n },\n button: {\n \"medium-height\": \"40px\",\n \"medium-text-height\": \"40px\",\n \"border-radius\": \"4px\",\n \"small-height\": \"26px\",\n primary: {\n \"background--color\": \"var(--c--theme--colors--primary-text)\",\n \"background--color-hover\": \"#1212ff\",\n \"background--color-active\": \"#2323ff\",\n \"background--color-disabled\":\n \"var(--c--theme--colors--greyscale-100)\",\n color: \"#fff\",\n \"color-hover\": \"#fff\",\n \"color-active\": \"#fff\",\n \"color-focus-visible\": \"#fff\",\n disabled: \"var(--c--theme--colors--greyscale-500)\",\n },\n \"primary-text\": {\n \"background--color\": \"var(--c--theme--colors--primary-text)\",\n \"background--color-hover\": \"var(--c--theme--colors--greyscale-100)\",\n \"background--color-active\": \"var(--c--theme--colors--primary-100)\",\n \"background--color-focus-visible\": \"#fff\",\n \"background--color-disabled\":\n \"var(--c--theme--colors--greyscale-000)\",\n color: \"var(--c--theme--colors--primary-800)\",\n \"color-hover\": \"var(--c--theme--colors--primary-800)\",\n disabled: \"var(--c--theme--colors--greyscale-400)\",\n },\n secondary: {\n \"background--color-hover\": \"#F6F6F6\",\n \"background--color-active\": \"#EDEDED\",\n \"background--color-focus-visible\":\n \"var(--c--theme--colors--greyscale-000)\",\n \"background--disabled\": \"var(--c--theme--colors--greyscale-000)\",\n color: \"var(--c--theme--colors--primary-800)\",\n \"border--color\": \"var(--c--theme--colors--greyscale-300)\",\n \"border--color-hover\": \"var(--c--theme--colors--greyscale-300)\",\n \"border--color-disabled\": \"var(--c--theme--colors--greyscale-300)\",\n disabled: \"var(--c--theme--colors--greyscale-400)\",\n },\n tertiary: {\n \"background--color\": \"var(--c--theme--colors--primary-100)\",\n \"background--color-focus-visible\":\n \"var(--c--theme--colors--primary-100)\",\n \"background--color-hover\": \"var(--c--theme--colors--primary-300)\",\n \"background--color-active\": \"var(--c--theme--colors--primary-300)\",\n \"background--disabled\": \"var(--c--theme--colors--primary-050)\",\n color: \"var(--c--theme--colors--primary-800)\",\n disabled: \"var(--c--theme--colors--primary-300)\",\n },\n \"tertiary-text\": {\n \"background--color-hover\": \"var(--c--theme--colors--greyscale-100)\",\n \"color-hover\": \"var(--c--theme--colors--primary-text)\",\n color: \"var(--c--theme--colors--primary-600)\",\n },\n danger: {\n \"color-hover\": \"white\",\n \"background--color\": \"var(--c--theme--colors--danger-600)\",\n \"background--color-hover\": \"#FF2725\",\n \"background--color-focus-visible\":\n \"var(--c--theme--colors--danger-600)\",\n \"background--color-disabled\":\n \"var(--c--theme--colors--greyscale-100)\",\n \"color-disabled\": \"var(--c--theme--colors--greyscale-400)\",\n },\n },\n datagrid: {\n \"header--color\": \"ref(theme.colors.greyscale-600)\",\n \"header--size\": \"12px\",\n \"header--weight\": \"500\",\n \"body--background-color-hover\": \"ref(theme.colors.greyscale-100)\",\n },\n \"forms-checkbox\": {\n \"border-radius\": \"4px\",\n \"border-color\": \"var(--c--theme--colors--primary-800)\",\n \"background-color--hover\": \"var(--c--theme--colors--greyscale-100)\",\n \"border--color-disabled\": \"var(--c--theme--colors--greyscale-200)\",\n \"border--color\": \"var(--c--theme--colors--primary-800)\",\n \"background--disabled\": \"var(--c--theme--colors--greyscale-200)\",\n \"background--enable\": \"var(--c--theme--colors--primary-800)\",\n \"check--disabled\": \"var(--c--theme--colors--greyscale-300)\",\n \"check--enable\": \"var(--c--theme--colors--greyscale-000)\",\n color: \"var(--c--theme--colors--primary-text)\",\n \"label--color\": \"var(--c--theme--colors--greyscale-1000)\",\n \"label--size\": \"var(--c--theme--font--sizes--sm)\",\n \"label--weight\": \"500\",\n \"text--color\": \"var(--c--theme--colors--greyscale-600)\",\n \"text--size\": \"var(--c--theme--font--sizes--s)\",\n \"text--weight\": \"400\",\n \"text--color-disabled\": \"var(--c--theme--colors--greyscale-300)\",\n },\n \"forms-labelledbox\": {\n \"label-color--small\": \"ref(theme.colors.greyscale-950)\",\n \"label-color--small--disabled\": \"ref(theme.colors.greyscale-300)\",\n \"label-color--big\": \"ref(theme.colors.greyscale-950)\",\n \"label-color--big--disabled\": \"ref(theme.colors.greyscale-300)\",\n },\n \"forms-radio\": {\n \"border-color\": \"var(--c--theme--colors--primary-800)\",\n \"background-color\": \"var(--c--theme--colors--greyscale-000)\",\n \"accent-color\": \"var(--c--theme--colors--primary-800)\",\n \"accent-color-disabled\": \"var(--c--theme--colors--greyscale-300)\",\n },\n \"forms-switch\": {\n \"border--color-disabled\": \"var(--c--theme--colors--greyscale-300)\",\n \"border--color\": \"var(--c--theme--colors--primary-800)\",\n \"handle-background-color\": \"white\",\n \"handle-background-color--disabled\":\n \"var(--c--theme--colors--greyscale-000)\",\n \"rail-background-color--disabled\":\n \"var(--c--theme--colors--greyscale-000)\",\n \"accent-color\": \"var(--c--theme--colors--primary-800)\",\n },\n \"forms-textarea\": {\n \"label-color--focus\": \"ref(theme.colors.greyscale-1000)\",\n \"border-radius\": \"4px\",\n \"border-color\": \"ref(theme.colors.greyscale-400)\",\n \"box-shadow--color--hover\": \"ref(theme.colors.greyscale-400)\",\n \"box-shadow--color--focus\": \"ref(theme.colors.primary-800)\",\n \"value-color\": \"ref(theme.colors.greyscale-950)\",\n \"value-color--disabled\": \"ref(theme.colors.greyscale-300)\",\n \"font-size\": \"14px\",\n },\n \"forms-input\": {\n \"label-color--focus\": \"ref(theme.colors.greyscale-1000)\",\n \"border-radius\": \"4px\",\n \"border-color\": \"ref(theme.colors.greyscale-400)\",\n \"box-shadow--color--hover\": \"ref(theme.colors.greyscale-400)\",\n \"box-shadow--color--focus\": \"ref(theme.colors.primary-800)\",\n \"value-color\": \"ref(theme.colors.greyscale-950)\",\n \"value-color--disabled\": \"ref(theme.colors.greyscale-300)\",\n \"font-size\": \"14px\",\n },\n \"forms-select\": {\n \"label-color--focus\": \"ref(theme.colors.greyscale-1000)\",\n \"item-font-size\": \"14px\",\n \"border-radius\": \"4px\",\n \"border-radius-hover\": \"4px\",\n \"border-color\": \"ref(theme.colors.greyscale-400)\",\n \"box-shadow--color--hover\": \"ref(theme.colors.greyscale-400)\",\n \"box-shadow--color--focus\": \"ref(theme.colors.primary-800)\",\n \"value-color\": \"ref(theme.colors.greyscale-950)\",\n \"font-size\": \"14px\",\n },\n },\n },\n },\n};\n\nexport default config;\n","import { useEffect, useState } from \"react\";\nimport config from \"../../cunningham\";\n\nexport const useResponsive = () => {\n const [width, setWidth] = useState(window.innerWidth);\n const mobile = parseInt(\n config.themes.default.theme.breakpoints.mobile.replace(\"px\", \"\")\n );\n const tablet = parseInt(\n config.themes.default.theme.breakpoints.tablet.replace(\"px\", \"\")\n );\n\n const handleWindowSizeChange = () => {\n setWidth(window.innerWidth);\n };\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleWindowSizeChange);\n\n return () => {\n window.removeEventListener(\"resize\", handleWindowSizeChange);\n };\n }, []);\n\n const isMobile = width <= mobile;\n const isTablet = width <= tablet;\n const isDesktop = width > tablet;\n\n return { isMobile, isTablet, isDesktop };\n};\n","import { useResponsive } from \":/hooks/useResponsive\";\nimport clsx from \"clsx\";\nimport { PropsWithChildren } from \"react\";\n\nexport type LeftPanelProps = {\n isOpen?: boolean;\n};\nexport const LeftPanel = ({\n children,\n isOpen = false,\n}: PropsWithChildren<LeftPanelProps>) => {\n const { isDesktop } = useResponsive();\n\n if (!isDesktop) {\n return (\n <div\n className={clsx(\"c__left-panel__mobile\", {\n open: isOpen,\n })}\n >\n {children}\n </div>\n );\n }\n\n return <div className=\"c__left-panel\">{children}</div>;\n};\n","import * as React from 'react';\n\n// This module exists to work around Webpack issue https://github.com/webpack/webpack/issues/14814\n\n// eslint-disable-next-line no-restricted-imports\n\nconst {\n createElement,\n createContext,\n createRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} = React;\n\n// `Math.random()` and `.slice(0, 5)` prevents bundlers from trying to `import { useId } from 'react'`\nconst useId = React[`useId${Math.random()}`.slice(0, 5)];\nconst useLayoutEffect_do_not_use_directly = useLayoutEffect;\n\n// The \"contextmenu\" event is not supported as a PointerEvent in all browsers yet, so MouseEvent still need to be handled\n\nconst PanelGroupContext = createContext(null);\nPanelGroupContext.displayName = \"PanelGroupContext\";\n\nconst useIsomorphicLayoutEffect = useLayoutEffect_do_not_use_directly ;\n\nconst wrappedUseId = typeof useId === \"function\" ? useId : () => null;\nlet counter = 0;\nfunction useUniqueId(idFromParams = null) {\n const idFromUseId = wrappedUseId();\n const idRef = useRef(idFromParams || idFromUseId || null);\n if (idRef.current === null) {\n idRef.current = \"\" + counter++;\n }\n return idFromParams !== null && idFromParams !== void 0 ? idFromParams : idRef.current;\n}\n\nfunction PanelWithForwardedRef({\n children,\n className: classNameFromProps = \"\",\n collapsedSize,\n collapsible,\n defaultSize,\n forwardedRef,\n id: idFromProps,\n maxSize,\n minSize,\n onCollapse,\n onExpand,\n onResize,\n order,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const context = useContext(PanelGroupContext);\n if (context === null) {\n throw Error(`Panel components must be rendered within a PanelGroup container`);\n }\n const {\n collapsePanel,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n reevaluatePanelConstraints,\n registerPanel,\n resizePanel,\n unregisterPanel\n } = context;\n const panelId = useUniqueId(idFromProps);\n const panelDataRef = useRef({\n callbacks: {\n onCollapse,\n onExpand,\n onResize\n },\n constraints: {\n collapsedSize,\n collapsible,\n defaultSize,\n maxSize,\n minSize\n },\n id: panelId,\n idIsFromProps: idFromProps !== undefined,\n order\n });\n useRef({\n didLogMissingDefaultSizeWarning: false\n });\n useIsomorphicLayoutEffect(() => {\n const {\n callbacks,\n constraints\n } = panelDataRef.current;\n const prevConstraints = {\n ...constraints\n };\n panelDataRef.current.id = panelId;\n panelDataRef.current.idIsFromProps = idFromProps !== undefined;\n panelDataRef.current.order = order;\n callbacks.onCollapse = onCollapse;\n callbacks.onExpand = onExpand;\n callbacks.onResize = onResize;\n constraints.collapsedSize = collapsedSize;\n constraints.collapsible = collapsible;\n constraints.defaultSize = defaultSize;\n constraints.maxSize = maxSize;\n constraints.minSize = minSize;\n\n // If constraints have changed, we should revisit panel sizes.\n // This is uncommon but may happen if people are trying to implement pixel based constraints.\n if (prevConstraints.collapsedSize !== constraints.collapsedSize || prevConstraints.collapsible !== constraints.collapsible || prevConstraints.maxSize !== constraints.maxSize || prevConstraints.minSize !== constraints.minSize) {\n reevaluatePanelConstraints(panelDataRef.current, prevConstraints);\n }\n });\n useIsomorphicLayoutEffect(() => {\n const panelData = panelDataRef.current;\n registerPanel(panelData);\n return () => {\n unregisterPanel(panelData);\n };\n }, [order, panelId, registerPanel, unregisterPanel]);\n useImperativeHandle(forwardedRef, () => ({\n collapse: () => {\n collapsePanel(panelDataRef.current);\n },\n expand: minSize => {\n expandPanel(panelDataRef.current, minSize);\n },\n getId() {\n return panelId;\n },\n getSize() {\n return getPanelSize(panelDataRef.current);\n },\n isCollapsed() {\n return isPanelCollapsed(panelDataRef.current);\n },\n isExpanded() {\n return !isPanelCollapsed(panelDataRef.current);\n },\n resize: size => {\n resizePanel(panelDataRef.current, size);\n }\n }), [collapsePanel, expandPanel, getPanelSize, isPanelCollapsed, panelId, resizePanel]);\n const style = getPanelStyle(panelDataRef.current, defaultSize);\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n style: {\n ...style,\n ...styleFromProps\n },\n // CSS selectors\n \"data-panel\": \"\",\n \"data-panel-collapsible\": collapsible || undefined,\n \"data-panel-group-id\": groupId,\n \"data-panel-id\": panelId,\n \"data-panel-size\": parseFloat(\"\" + style.flexGrow).toFixed(1)\n });\n}\nconst Panel = forwardRef((props, ref) => createElement(PanelWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelWithForwardedRef.displayName = \"Panel\";\nPanel.displayName = \"forwardRef(Panel)\";\n\nlet nonce;\nfunction getNonce() {\n return nonce;\n}\nfunction setNonce(value) {\n nonce = value;\n}\n\nlet currentCursorStyle = null;\nlet enabled = true;\nlet styleElement = null;\nfunction disableGlobalCursorStyles() {\n enabled = false;\n}\nfunction enableGlobalCursorStyles() {\n enabled = true;\n}\nfunction getCursorStyle(state, constraintFlags) {\n if (constraintFlags) {\n const horizontalMin = (constraintFlags & EXCEEDED_HORIZONTAL_MIN) !== 0;\n const horizontalMax = (constraintFlags & EXCEEDED_HORIZONTAL_MAX) !== 0;\n const verticalMin = (constraintFlags & EXCEEDED_VERTICAL_MIN) !== 0;\n const verticalMax = (constraintFlags & EXCEEDED_VERTICAL_MAX) !== 0;\n if (horizontalMin) {\n if (verticalMin) {\n return \"se-resize\";\n } else if (verticalMax) {\n return \"ne-resize\";\n } else {\n return \"e-resize\";\n }\n } else if (horizontalMax) {\n if (verticalMin) {\n return \"sw-resize\";\n } else if (verticalMax) {\n return \"nw-resize\";\n } else {\n return \"w-resize\";\n }\n } else if (verticalMin) {\n return \"s-resize\";\n } else if (verticalMax) {\n return \"n-resize\";\n }\n }\n switch (state) {\n case \"horizontal\":\n return \"ew-resize\";\n case \"intersection\":\n return \"move\";\n case \"vertical\":\n return \"ns-resize\";\n }\n}\nfunction resetGlobalCursorStyle() {\n if (styleElement !== null) {\n document.head.removeChild(styleElement);\n currentCursorStyle = null;\n styleElement = null;\n }\n}\nfunction setGlobalCursorStyle(state, constraintFlags) {\n if (!enabled) {\n return;\n }\n const style = getCursorStyle(state, constraintFlags);\n if (currentCursorStyle === style) {\n return;\n }\n currentCursorStyle = style;\n if (styleElement === null) {\n styleElement = document.createElement(\"style\");\n const nonce = getNonce();\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n document.head.appendChild(styleElement);\n }\n styleElement.innerHTML = `*{cursor: ${style}!important;}`;\n}\n\nfunction isKeyDown(event) {\n return event.type === \"keydown\";\n}\nfunction isPointerEvent(event) {\n return event.type.startsWith(\"pointer\");\n}\nfunction isMouseEvent(event) {\n return event.type.startsWith(\"mouse\");\n}\n\nfunction getResizeEventCoordinates(event) {\n if (isPointerEvent(event)) {\n if (event.isPrimary) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n } else if (isMouseEvent(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n return {\n x: Infinity,\n y: Infinity\n };\n}\n\nfunction getInputType() {\n if (typeof matchMedia === \"function\") {\n return matchMedia(\"(pointer:coarse)\").matches ? \"coarse\" : \"fine\";\n }\n}\n\nfunction intersects(rectOne, rectTwo, strict) {\n if (strict) {\n return rectOne.x < rectTwo.x + rectTwo.width && rectOne.x + rectOne.width > rectTwo.x && rectOne.y < rectTwo.y + rectTwo.height && rectOne.y + rectOne.height > rectTwo.y;\n } else {\n return rectOne.x <= rectTwo.x + rectTwo.width && rectOne.x + rectOne.width >= rectTwo.x && rectOne.y <= rectTwo.y + rectTwo.height && rectOne.y + rectOne.height >= rectTwo.y;\n }\n}\n\n// Forked from NPM stacking-order@2.0.0\n\n/**\n * Determine which of two nodes appears in front of the other —\n * if `a` is in front, returns 1, otherwise returns -1\n * @param {HTMLElement | SVGElement} a\n * @param {HTMLElement | SVGElement} b\n */\nfunction compare(a, b) {\n if (a === b) throw new Error(\"Cannot compare node with itself\");\n const ancestors = {\n a: get_ancestors(a),\n b: get_ancestors(b)\n };\n let common_ancestor;\n\n // remove shared ancestors\n while (ancestors.a.at(-1) === ancestors.b.at(-1)) {\n a = ancestors.a.pop();\n b = ancestors.b.pop();\n common_ancestor = a;\n }\n assert(common_ancestor, \"Stacking order can only be calculated for elements with a common ancestor\");\n const z_indexes = {\n a: get_z_index(find_stacking_context(ancestors.a)),\n b: get_z_index(find_stacking_context(ancestors.b))\n };\n if (z_indexes.a === z_indexes.b) {\n const children = common_ancestor.childNodes;\n const furthest_ancestors = {\n a: ancestors.a.at(-1),\n b: ancestors.b.at(-1)\n };\n let i = children.length;\n while (i--) {\n const child = children[i];\n if (child === furthest_ancestors.a) return 1;\n if (child === furthest_ancestors.b) return -1;\n }\n }\n return Math.sign(z_indexes.a - z_indexes.b);\n}\nconst props = /\\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\\b/;\n\n/** @param {HTMLElement | SVGElement} node */\nfunction is_flex_item(node) {\n var _get_parent;\n // @ts-ignore\n const display = getComputedStyle((_get_parent = get_parent(node)) !== null && _get_parent !== void 0 ? _get_parent : node).display;\n return display === \"flex\" || display === \"inline-flex\";\n}\n\n/** @param {HTMLElement | SVGElement} node */\nfunction creates_stacking_context(node) {\n const style = getComputedStyle(node);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n if (style.position === \"fixed\") return true;\n // Forked to fix upstream bug https://github.com/Rich-Harris/stacking-order/issues/3\n // if (\n // (style.zIndex !== \"auto\" && style.position !== \"static\") ||\n // is_flex_item(node)\n // )\n if (style.zIndex !== \"auto\" && (style.position !== \"static\" || is_flex_item(node))) return true;\n if (+style.opacity < 1) return true;\n if (\"transform\" in style && style.transform !== \"none\") return true;\n if (\"webkitTransform\" in style && style.webkitTransform !== \"none\") return true;\n if (\"mixBlendMode\" in style && style.mixBlendMode !== \"normal\") return true;\n if (\"filter\" in style && style.filter !== \"none\") return true;\n if (\"webkitFilter\" in style && style.webkitFilter !== \"none\") return true;\n if (\"isolation\" in style && style.isolation === \"isolate\") return true;\n if (props.test(style.willChange)) return true;\n // @ts-expect-error\n if (style.webkitOverflowScrolling === \"touch\") return true;\n return false;\n}\n\n/** @param {(HTMLElement| SVGElement)[]} nodes */\nfunction find_stacking_context(nodes) {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n assert(node, \"Missing node\");\n if (creates_stacking_context(node)) return node;\n }\n return null;\n}\n\n/** @param {HTMLElement | SVGElement} node */\nfunction get_z_index(node) {\n return node && Number(getComputedStyle(node).zIndex) || 0;\n}\n\n/** @param {HTMLElement} node */\nfunction get_ancestors(node) {\n const ancestors = [];\n while (node) {\n ancestors.push(node);\n // @ts-ignore\n node = get_parent(node);\n }\n return ancestors; // [ node, ... <body>, <html>, document ]\n}\n\n/** @param {HTMLElement} node */\nfunction get_parent(node) {\n const {\n parentNode\n } = node;\n if (parentNode && parentNode instanceof ShadowRoot) {\n return parentNode.host;\n }\n return parentNode;\n}\n\nconst EXCEEDED_HORIZONTAL_MIN = 0b0001;\nconst EXCEEDED_HORIZONTAL_MAX = 0b0010;\nconst EXCEEDED_VERTICAL_MIN = 0b0100;\nconst EXCEEDED_VERTICAL_MAX = 0b1000;\nconst isCoarsePointer = getInputType() === \"coarse\";\nlet intersectingHandles = [];\nlet isPointerDown = false;\nlet ownerDocumentCounts = new Map();\nlet panelConstraintFlags = new Map();\nconst registeredResizeHandlers = new Set();\nfunction registerResizeHandle(resizeHandleId, element, direction, hitAreaMargins, setResizeHandlerState) {\n var _ownerDocumentCounts$;\n const {\n ownerDocument\n } = element;\n const data = {\n direction,\n element,\n hitAreaMargins,\n setResizeHandlerState\n };\n const count = (_ownerDocumentCounts$ = ownerDocumentCounts.get(ownerDocument)) !== null && _ownerDocumentCounts$ !== void 0 ? _ownerDocumentCounts$ : 0;\n ownerDocumentCounts.set(ownerDocument, count + 1);\n registeredResizeHandlers.add(data);\n updateListeners();\n return function unregisterResizeHandle() {\n var _ownerDocumentCounts$2;\n panelConstraintFlags.delete(resizeHandleId);\n registeredResizeHandlers.delete(data);\n const count = (_ownerDocumentCounts$2 = ownerDocumentCounts.get(ownerDocument)) !== null && _ownerDocumentCounts$2 !== void 0 ? _ownerDocumentCounts$2 : 1;\n ownerDocumentCounts.set(ownerDocument, count - 1);\n updateListeners();\n if (count === 1) {\n ownerDocumentCounts.delete(ownerDocument);\n }\n\n // If the resize handle that is currently unmounting is intersecting with the pointer,\n // update the global pointer to account for the change\n if (intersectingHandles.includes(data)) {\n const index = intersectingHandles.indexOf(data);\n if (index >= 0) {\n intersectingHandles.splice(index, 1);\n }\n updateCursor();\n\n // Also instruct the handle to stop dragging; this prevents the parent group from being left in an inconsistent state\n // See github.com/bvaughn/react-resizable-panels/issues/402\n setResizeHandlerState(\"up\", true, null);\n }\n };\n}\nfunction handlePointerDown(event) {\n const {\n target\n } = event;\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n isPointerDown = true;\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n updateListeners();\n if (intersectingHandles.length > 0) {\n updateResizeHandlerStates(\"down\", event);\n event.preventDefault();\n event.stopPropagation();\n }\n}\nfunction handlePointerMove(event) {\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n\n // Edge case (see #340)\n // Detect when the pointer has been released outside an iframe on a different domain\n if (isPointerDown && event.buttons === 0) {\n isPointerDown = false;\n updateResizeHandlerStates(\"up\", event);\n }\n if (!isPointerDown) {\n const {\n target\n } = event;\n\n // Recalculate intersecting handles whenever the pointer moves, except if it has already been pressed\n // at that point, the handles may not move with the pointer (depending on constraints)\n // but the same set of active handles should be locked until the pointer is released\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n }\n updateResizeHandlerStates(\"move\", event);\n\n // Update cursor based on return value(s) from active handles\n updateCursor();\n if (intersectingHandles.length > 0) {\n event.preventDefault();\n }\n}\nfunction handlePointerUp(event) {\n const {\n target\n } = event;\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n panelConstraintFlags.clear();\n isPointerDown = false;\n if (intersectingHandles.length > 0) {\n event.preventDefault();\n }\n updateResizeHandlerStates(\"up\", event);\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n updateCursor();\n updateListeners();\n}\nfunction recalculateIntersectingHandles({\n target,\n x,\n y\n}) {\n intersectingHandles.splice(0);\n let targetElement = null;\n if (target instanceof HTMLElement || target instanceof SVGElement) {\n targetElement = target;\n }\n registeredResizeHandlers.forEach(data => {\n const {\n element: dragHandleElement,\n hitAreaMargins\n } = data;\n const dragHandleRect = dragHandleElement.getBoundingClientRect();\n const {\n bottom,\n left,\n right,\n top\n } = dragHandleRect;\n const margin = isCoarsePointer ? hitAreaMargins.coarse : hitAreaMargins.fine;\n const eventIntersects = x >= left - margin && x <= right + margin && y >= top - margin && y <= bottom + margin;\n if (eventIntersects) {\n // TRICKY\n // We listen for pointers events at the root in order to support hit area margins\n // (determining when the pointer is close enough to an element to be considered a \"hit\")\n // Clicking on an element \"above\" a handle (e.g. a modal) should prevent a hit though\n // so at this point we need to compare stacking order of a potentially intersecting drag handle,\n // and the element that was actually clicked/touched\n if (targetElement !== null && document.contains(targetElement) && dragHandleElement !== targetElement && !dragHandleElement.contains(targetElement) && !targetElement.contains(dragHandleElement) &&\n // Calculating stacking order has a cost, so we should avoid it if possible\n // That is why we only check potentially intersecting handles,\n // and why we skip if the event target is within the handle's DOM\n compare(targetElement, dragHandleElement) > 0) {\n // If the target is above the drag handle, then we also need to confirm they overlap\n // If they are beside each other (e.g. a panel and its drag handle) then the handle is still interactive\n //\n // It's not enough to compare only the target\n // The target might be a small element inside of a larger container\n // (For example, a SPAN or a DIV inside of a larger modal dialog)\n let currentElement = targetElement;\n let didIntersect = false;\n while (currentElement) {\n if (currentElement.contains(dragHandleElement)) {\n break;\n } else if (intersects(currentElement.getBoundingClientRect(), dragHandleRect, true)) {\n didIntersect = true;\n break;\n }\n currentElement = currentElement.parentElement;\n }\n if (didIntersect) {\n return;\n }\n }\n intersectingHandles.push(data);\n }\n });\n}\nfunction reportConstraintsViolation(resizeHandleId, flag) {\n panelConstraintFlags.set(resizeHandleId, flag);\n}\nfunction updateCursor() {\n let intersectsHorizontal = false;\n let intersectsVertical = false;\n intersectingHandles.forEach(data => {\n const {\n direction\n } = data;\n if (direction === \"horizontal\") {\n intersectsHorizontal = true;\n } else {\n intersectsVertical = true;\n }\n });\n let constraintFlags = 0;\n panelConstraintFlags.forEach(flag => {\n constraintFlags |= flag;\n });\n if (intersectsHorizontal && intersectsVertical) {\n setGlobalCursorStyle(\"intersection\", constraintFlags);\n } else if (intersectsHorizontal) {\n setGlobalCursorStyle(\"horizontal\", constraintFlags);\n } else if (intersectsVertical) {\n setGlobalCursorStyle(\"vertical\", constraintFlags);\n } else {\n resetGlobalCursorStyle();\n }\n}\nfunction updateListeners() {\n ownerDocumentCounts.forEach((_, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n body.removeEventListener(\"contextmenu\", handlePointerUp);\n body.removeEventListener(\"pointerdown\", handlePointerDown);\n body.removeEventListener(\"pointerleave\", handlePointerMove);\n body.removeEventListener(\"pointermove\", handlePointerMove);\n });\n window.removeEventListener(\"pointerup\", handlePointerUp);\n window.removeEventListener(\"pointercancel\", handlePointerUp);\n if (registeredResizeHandlers.size > 0) {\n if (isPointerDown) {\n if (intersectingHandles.length > 0) {\n ownerDocumentCounts.forEach((count, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n if (count > 0) {\n body.addEventListener(\"contextmenu\", handlePointerUp);\n body.addEventListener(\"pointerleave\", handlePointerMove);\n body.addEventListener(\"pointermove\", handlePointerMove);\n }\n });\n }\n window.addEventListener(\"pointerup\", handlePointerUp);\n window.addEventListener(\"pointercancel\", handlePointerUp);\n } else {\n ownerDocumentCounts.forEach((count, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n if (count > 0) {\n body.addEventListener(\"pointerdown\", handlePointerDown, {\n capture: true\n });\n body.addEventListener(\"pointermove\", handlePointerMove);\n }\n });\n }\n }\n}\nfunction updateResizeHandlerStates(action, event) {\n registeredResizeHandlers.forEach(data => {\n const {\n setResizeHandlerState\n } = data;\n const isActive = intersectingHandles.includes(data);\n setResizeHandlerState(action, isActive, event);\n });\n}\n\nfunction useForceUpdate() {\n const [_, setCount] = useState(0);\n return useCallback(() => setCount(prevCount => prevCount + 1), []);\n}\n\nfunction assert(expectedCondition, message) {\n if (!expectedCondition) {\n console.error(message);\n throw Error(message);\n }\n}\n\nconst PRECISION = 10;\n\nfunction fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {\n if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {\n return 0;\n } else {\n return actual > expected ? 1 : -1;\n }\n}\nfunction fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {\n return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;\n}\n\nfunction fuzzyNumbersEqual(actual, expected, fractionDigits) {\n return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;\n}\n\nfunction fuzzyLayoutsEqual(actual, expected, fractionDigits) {\n if (actual.length !== expected.length) {\n return false;\n }\n for (let index = 0; index < actual.length; index++) {\n const actualSize = actual[index];\n const expectedSize = expected[index];\n if (!fuzzyNumbersEqual(actualSize, expectedSize, fractionDigits)) {\n return false;\n }\n }\n return true;\n}\n\n// Panel size must be in percentages; pixel values should be pre-converted\nfunction resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex,\n size\n}) {\n const panelConstraints = panelConstraintsArray[panelIndex];\n assert(panelConstraints != null, `Panel constraints not found for index ${panelIndex}`);\n let {\n collapsedSize = 0,\n collapsible,\n maxSize = 100,\n minSize = 0\n } = panelConstraints;\n if (fuzzyCompareNumbers(size, minSize) < 0) {\n if (collapsible) {\n // Collapsible panels should snap closed or open only once they cross the halfway point between collapsed and min size.\n const halfwayPoint = (collapsedSize + minSize) / 2;\n if (fuzzyCompareNumbers(size, halfwayPoint) < 0) {\n size = collapsedSize;\n } else {\n size = minSize;\n }\n } else {\n size = minSize;\n }\n }\n size = Math.min(maxSize, size);\n size = parseFloat(size.toFixed(PRECISION));\n return size;\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction adjustLayoutByDelta({\n delta,\n initialLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger\n}) {\n if (fuzzyNumbersEqual(delta, 0)) {\n return initialLayout;\n }\n const nextLayout = [...initialLayout];\n const [firstPivotIndex, secondPivotIndex] = pivotIndices;\n assert(firstPivotIndex != null, \"Invalid first pivot index\");\n assert(secondPivotIndex != null, \"Invalid second pivot index\");\n let deltaApplied = 0;\n\n // const DEBUG = [];\n // DEBUG.push(`adjustLayoutByDelta()`);\n // DEBUG.push(` initialLayout: ${initialLayout.join(\", \")}`);\n // DEBUG.push(` prevLayout: ${prevLayout.join(\", \")}`);\n // DEBUG.push(` delta: ${delta}`);\n // DEBUG.push(` pivotIndices: ${pivotIndices.join(\", \")}`);\n // DEBUG.push(` trigger: ${trigger}`);\n // DEBUG.push(\"\");\n\n // A resizing panel affects the panels before or after it.\n //\n // A negative delta means the panel(s) immediately after the resize handle should grow/expand by decreasing its offset.\n // Other panels may also need to shrink/contract (and shift) to make room, depending on the min weights.\n //\n // A positive delta means the panel(s) immediately before the resize handle should \"expand\".\n // This is accomplished by shrinking/contracting (and shifting) one or more of the panels after the resize handle.\n\n {\n // If this is a resize triggered by a keyboard event, our logic for expanding/collapsing is different.\n // We no longer check the halfway threshold because this may prevent the panel from expanding at all.\n if (trigger === \"keyboard\") {\n {\n // Check if we should expand a collapsed panel\n const index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `Panel constraints not found for index ${index}`);\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelConstraints;\n\n // DEBUG.push(`edge case check 1: ${index}`);\n // DEBUG.push(` -> collapsible? ${collapsible}`);\n if (collapsible) {\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n if (fuzzyNumbersEqual(prevSize, collapsedSize)) {\n const localDelta = minSize - prevSize;\n // DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n // DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n\n {\n // Check if we should collapse a panel at its minimum size\n const index = delta < 0 ? firstPivotIndex : secondPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `No panel constraints found for index ${index}`);\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelConstraints;\n\n // DEBUG.push(`edge case check 2: ${index}`);\n // DEBUG.push(` -> collapsible? ${collapsible}`);\n if (collapsible) {\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n if (fuzzyNumbersEqual(prevSize, minSize)) {\n const localDelta = prevSize - collapsedSize;\n // DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n // DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n }\n // DEBUG.push(\"\");\n }\n\n {\n // Pre-calculate max available delta in the opposite direction of our pivot.\n // This will be the maximum amount we're allowed to expand/contract the panels in the primary direction.\n // If this amount is less than the requested delta, adjust the requested delta.\n // If this amount is greater than the requested delta, that's useful information too–\n // as an expanding panel might change from collapsed to min size.\n\n const increment = delta < 0 ? 1 : -1;\n let index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let maxAvailableDelta = 0;\n\n // DEBUG.push(\"pre calc...\");\n while (true) {\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n const maxSafeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: 100\n });\n const delta = maxSafeSize - prevSize;\n // DEBUG.push(` ${index}: ${prevSize} -> ${maxSafeSize}`);\n\n maxAvailableDelta += delta;\n index += increment;\n if (index < 0 || index >= panelConstraintsArray.length) {\n break;\n }\n }\n\n // DEBUG.push(` -> max available delta: ${maxAvailableDelta}`);\n const minAbsDelta = Math.min(Math.abs(delta), Math.abs(maxAvailableDelta));\n delta = delta < 0 ? 0 - minAbsDelta : minAbsDelta;\n // DEBUG.push(` -> adjusted delta: ${delta}`);\n // DEBUG.push(\"\");\n }\n\n {\n // Delta added to a panel needs to be subtracted from other panels (within the constraints that those panels allow).\n\n const pivotIndex = delta < 0 ? firstPivotIndex : secondPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const deltaRemaining = Math.abs(delta) - Math.abs(deltaApplied);\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n const unsafeSize = prevSize - deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaApplied += prevSize - safeSize;\n nextLayout[index] = safeSize;\n if (deltaApplied.toPrecision(3).localeCompare(Math.abs(delta).toPrecision(3), undefined, {\n numeric: true\n }) >= 0) {\n break;\n }\n }\n if (delta < 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n // DEBUG.push(`after 1: ${nextLayout.join(\", \")}`);\n // DEBUG.push(` deltaApplied: ${deltaApplied}`);\n // DEBUG.push(\"\");\n\n // If we were unable to resize any of the panels panels, return the previous state.\n // This will essentially bailout and ignore e.g. drags past a panel's boundaries\n if (fuzzyLayoutsEqual(prevLayout, nextLayout)) {\n // DEBUG.push(`bailout to previous layout: ${prevLayout.join(\", \")}`);\n // console.log(DEBUG.join(\"\\n\"));\n\n return prevLayout;\n }\n {\n // Now distribute the applied delta to the panels in the other direction\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const prevSize = initialLayout[pivotIndex];\n assert(prevSize != null, `Previous layout not found for panel index ${pivotIndex}`);\n const unsafeSize = prevSize + deltaApplied;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: pivotIndex,\n size: unsafeSize\n });\n\n // Adjust the pivot panel before, but only by the amount that surrounding panels were able to shrink/contract.\n nextLayout[pivotIndex] = safeSize;\n\n // Edge case where expanding or contracting one panel caused another one to change collapsed state\n if (!fuzzyNumbersEqual(safeSize, unsafeSize)) {\n let deltaRemaining = unsafeSize - safeSize;\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const prevSize = nextLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n const unsafeSize = prevSize + deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaRemaining -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n }\n if (fuzzyNumbersEqual(deltaRemaining, 0)) {\n break;\n }\n if (delta > 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n }\n // DEBUG.push(`after 2: ${nextLayout.join(\", \")}`);\n // DEBUG.push(` deltaApplied: ${deltaApplied}`);\n // DEBUG.push(\"\");\n\n const totalSize = nextLayout.reduce((total, size) => size + total, 0);\n // DEBUG.push(`total size: ${totalSize}`);\n\n // If our new layout doesn't add up to 100%, that means the requested delta can't be applied\n // In that case, fall back to our most recent valid layout\n if (!fuzzyNumbersEqual(totalSize, 100)) {\n // DEBUG.push(`bailout to previous layout: ${prevLayout.join(\", \")}`);\n // console.log(DEBUG.join(\"\\n\"));\n\n return prevLayout;\n }\n\n // console.log(DEBUG.join(\"\\n\"));\n return nextLayout;\n}\n\nfunction calculateAriaValues({\n layout,\n panelsArray,\n pivotIndices\n}) {\n let currentMinSize = 0;\n let currentMaxSize = 100;\n let totalMinSize = 0;\n let totalMaxSize = 0;\n const firstIndex = pivotIndices[0];\n assert(firstIndex != null, \"No pivot index found\");\n\n // A panel's effective min/max sizes also need to account for other panel's sizes.\n panelsArray.forEach((panelData, index) => {\n const {\n constraints\n } = panelData;\n const {\n maxSize = 100,\n minSize = 0\n } = constraints;\n if (index === firstIndex) {\n currentMinSize = minSize;\n currentMaxSize = maxSize;\n } else {\n totalMinSize += minSize;\n totalMaxSize += maxSize;\n }\n });\n const valueMax = Math.min(currentMaxSize, 100 - totalMinSize);\n const valueMin = Math.max(currentMinSize, 100 - totalMaxSize);\n const valueNow = layout[firstIndex];\n return {\n valueMax,\n valueMin,\n valueNow\n };\n}\n\nfunction getResizeHandleElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[data-panel-resize-handle-id][data-panel-group-id=\"${groupId}\"]`));\n}\n\nfunction getResizeHandleElementIndex(groupId, id, scope = document) {\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handles.findIndex(handle => handle.getAttribute(\"data-panel-resize-handle-id\") === id);\n return index !== null && index !== void 0 ? index : null;\n}\n\nfunction determinePivotIndices(groupId, dragHandleId, panelGroupElement) {\n const index = getResizeHandleElementIndex(groupId, dragHandleId, panelGroupElement);\n return index != null ? [index, index + 1] : [-1, -1];\n}\n\nfunction getPanelGroupElement(id, rootElement = document) {\n var _dataset;\n //If the root element is the PanelGroup\n if (rootElement instanceof HTMLElement && (rootElement === null || rootElement === void 0 ? void 0 : (_dataset = rootElement.dataset) === null || _dataset === void 0 ? void 0 : _dataset.panelGroupId) == id) {\n return rootElement;\n }\n\n //Else query children\n const element = rootElement.querySelector(`[data-panel-group][data-panel-group-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandleElement(id, scope = document) {\n const element = scope.querySelector(`[data-panel-resize-handle-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandlePanelIds(groupId, handleId, panelsArray, scope = document) {\n var _panelsArray$index$id, _panelsArray$index, _panelsArray$id, _panelsArray;\n const handle = getResizeHandleElement(handleId, scope);\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handle ? handles.indexOf(handle) : -1;\n const idBefore = (_panelsArray$index$id = (_panelsArray$index = panelsArray[index]) === null || _panelsArray$index === void 0 ? void 0 : _panelsArray$index.id) !== null && _panelsArray$index$id !== void 0 ? _panelsArray$index$id : null;\n const idAfter = (_panelsArray$id = (_panelsArray = panelsArray[index + 1]) === null || _panelsArray === void 0 ? void 0 : _panelsArray.id) !== null && _panelsArray$id !== void 0 ? _panelsArray$id : null;\n return [idBefore, idAfter];\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout\n}) {\n useRef({\n didWarnAboutMissingResizeHandle: false\n });\n useIsomorphicLayoutEffect(() => {\n if (!panelGroupElement) {\n return;\n }\n const resizeHandleElements = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n for (let index = 0; index < panelDataArray.length - 1; index++) {\n const {\n valueMax,\n valueMin,\n valueNow\n } = calculateAriaValues({\n layout,\n panelsArray: panelDataArray,\n pivotIndices: [index, index + 1]\n });\n const resizeHandleElement = resizeHandleElements[index];\n if (resizeHandleElement == null) ; else {\n const panelData = panelDataArray[index];\n assert(panelData, `No panel data found for index \"${index}\"`);\n resizeHandleElement.setAttribute(\"aria-controls\", panelData.id);\n resizeHandleElement.setAttribute(\"aria-valuemax\", \"\" + Math.round(valueMax));\n resizeHandleElement.setAttribute(\"aria-valuemin\", \"\" + Math.round(valueMin));\n resizeHandleElement.setAttribute(\"aria-valuenow\", valueNow != null ? \"\" + Math.round(valueNow) : \"\");\n }\n }\n return () => {\n resizeHandleElements.forEach((resizeHandleElement, index) => {\n resizeHandleElement.removeAttribute(\"aria-controls\");\n resizeHandleElement.removeAttribute(\"aria-valuemax\");\n resizeHandleElement.removeAttribute(\"aria-valuemin\");\n resizeHandleElement.removeAttribute(\"aria-valuenow\");\n });\n };\n }, [groupId, layout, panelDataArray, panelGroupElement]);\n useEffect(() => {\n if (!panelGroupElement) {\n return;\n }\n const eagerValues = eagerValuesRef.current;\n assert(eagerValues, `Eager values not found`);\n const {\n panelDataArray\n } = eagerValues;\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement != null, `No group found for id \"${groupId}\"`);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n assert(handles, `No resize handles found for group id \"${groupId}\"`);\n const cleanupFunctions = handles.map(handle => {\n const handleId = handle.getAttribute(\"data-panel-resize-handle-id\");\n assert(handleId, `Resize handle element has no handle id attribute`);\n const [idBefore, idAfter] = getResizeHandlePanelIds(groupId, handleId, panelDataArray, panelGroupElement);\n if (idBefore == null || idAfter == null) {\n return () => {};\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"Enter\":\n {\n event.preventDefault();\n const index = panelDataArray.findIndex(panelData => panelData.id === idBefore);\n if (index >= 0) {\n const panelData = panelDataArray[index];\n assert(panelData, `No panel data found for index ${index}`);\n const size = layout[index];\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelData.constraints;\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize) ? minSize - collapsedSize : collapsedSize - size,\n initialLayout: layout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints),\n pivotIndices: determinePivotIndices(groupId, handleId, panelGroupElement),\n prevLayout: layout,\n trigger: \"keyboard\"\n });\n if (layout !== nextLayout) {\n setLayout(nextLayout);\n }\n }\n }\n break;\n }\n }\n };\n handle.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handle.removeEventListener(\"keydown\", onKeyDown);\n };\n });\n return () => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction());\n };\n }, [panelGroupElement, committedValuesRef, eagerValuesRef, groupId, layout, panelDataArray, setLayout]);\n}\n\nfunction areEqual(arrayA, arrayB) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n for (let index = 0; index < arrayA.length; index++) {\n if (arrayA[index] !== arrayB[index]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getResizeEventCursorPosition(direction, event) {\n const isHorizontal = direction === \"horizontal\";\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n return isHorizontal ? x : y;\n}\n\nfunction calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement) {\n const isHorizontal = direction === \"horizontal\";\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement);\n assert(handleElement, `No resize handle element found for id \"${dragHandleId}\"`);\n const groupId = handleElement.getAttribute(\"data-panel-group-id\");\n assert(groupId, `Resize handle element has no group id attribute`);\n let {\n initialCursorPosition\n } = initialDragState;\n const cursorPosition = getResizeEventCursorPosition(direction, event);\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement, `No group element found for id \"${groupId}\"`);\n const groupRect = groupElement.getBoundingClientRect();\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height;\n const offsetPixels = cursorPosition - initialCursorPosition;\n const offsetPercentage = offsetPixels / groupSizeInPixels * 100;\n return offsetPercentage;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nfunction calculateDeltaPercentage(event, dragHandleId, direction, initialDragState, keyboardResizeBy, panelGroupElement) {\n if (isKeyDown(event)) {\n const isHorizontal = direction === \"horizontal\";\n let delta = 0;\n if (event.shiftKey) {\n delta = 100;\n } else if (keyboardResizeBy != null) {\n delta = keyboardResizeBy;\n } else {\n delta = 10;\n }\n let movement = 0;\n switch (event.key) {\n case \"ArrowDown\":\n movement = isHorizontal ? 0 : delta;\n break;\n case \"ArrowLeft\":\n movement = isHorizontal ? -delta : 0;\n break;\n case \"ArrowRight\":\n movement = isHorizontal ? delta : 0;\n break;\n case \"ArrowUp\":\n movement = isHorizontal ? 0 : -delta;\n break;\n case \"End\":\n movement = 100;\n break;\n case \"Home\":\n movement = -100;\n break;\n }\n return movement;\n } else {\n if (initialDragState == null) {\n return 0;\n }\n return calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement);\n }\n}\n\nfunction calculateUnsafeDefaultLayout({\n panelDataArray\n}) {\n const layout = Array(panelDataArray.length);\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n let numPanelsWithSizes = 0;\n let remainingSize = 100;\n\n // Distribute default sizes first\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `Panel constraints not found for index ${index}`);\n const {\n defaultSize\n } = panelConstraints;\n if (defaultSize != null) {\n numPanelsWithSizes++;\n layout[index] = defaultSize;\n remainingSize -= defaultSize;\n }\n }\n\n // Remaining size should be distributed evenly between panels without default sizes\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `Panel constraints not found for index ${index}`);\n const {\n defaultSize\n } = panelConstraints;\n if (defaultSize != null) {\n continue;\n }\n const numRemainingPanels = panelDataArray.length - numPanelsWithSizes;\n const size = remainingSize / numRemainingPanels;\n numPanelsWithSizes++;\n layout[index] = size;\n remainingSize -= size;\n }\n return layout;\n}\n\n// Layout should be pre-converted into percentages\nfunction callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {\n layout.forEach((size, index) => {\n const panelData = panelsArray[index];\n assert(panelData, `Panel data not found for index ${index}`);\n const {\n callbacks,\n constraints,\n id: panelId\n } = panelData;\n const {\n collapsedSize = 0,\n collapsible\n } = constraints;\n const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];\n if (lastNotifiedSize == null || size !== lastNotifiedSize) {\n panelIdToLastNotifiedSizeMap[panelId] = size;\n const {\n onCollapse,\n onExpand,\n onResize\n } = callbacks;\n if (onResize) {\n onResize(size, lastNotifiedSize);\n }\n if (collapsible && (onCollapse || onExpand)) {\n if (onExpand && (lastNotifiedSize == null || fuzzyNumbersEqual$1(lastNotifiedSize, collapsedSize)) && !fuzzyNumbersEqual$1(size, collapsedSize)) {\n onExpand();\n }\n if (onCollapse && (lastNotifiedSize == null || !fuzzyNumbersEqual$1(lastNotifiedSize, collapsedSize)) && fuzzyNumbersEqual$1(size, collapsedSize)) {\n onCollapse();\n }\n }\n }\n });\n}\n\nfunction compareLayouts(a, b) {\n if (a.length !== b.length) {\n return false;\n } else {\n for (let index = 0; index < a.length; index++) {\n if (a[index] != b[index]) {\n return false;\n }\n }\n }\n return true;\n}\n\n// This method returns a number between 1 and 100 representing\n\n// the % of the group's overall space this panel should occupy.\nfunction computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData,\n panelIndex,\n precision = 3\n}) {\n const size = layout[panelIndex];\n let flexGrow;\n if (size == null) {\n // Initial render (before panels have registered themselves)\n // In order to support server rendering, fall back to default size if provided\n flexGrow = defaultSize != undefined ? defaultSize.toPrecision(precision) : \"1\";\n } else if (panelData.length === 1) {\n // Special case: Single panel group should always fill full width/height\n flexGrow = \"1\";\n } else {\n flexGrow = size.toPrecision(precision);\n }\n return {\n flexBasis: 0,\n flexGrow,\n flexShrink: 1,\n // Without this, Panel sizes may be unintentionally overridden by their content\n overflow: \"hidden\",\n // Disable pointer events inside of a panel during resize\n // This avoid edge cases like nested iframes\n pointerEvents: dragState !== null ? \"none\" : undefined\n };\n}\n\nfunction debounce(callback, durationMs = 10) {\n let timeoutId = null;\n let callable = (...args) => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n callback(...args);\n }, durationMs);\n };\n return callable;\n}\n\n// PanelGroup might be rendering in a server-side environment where localStorage is not available\n// or on a browser with cookies/storage disabled.\n// In either case, this function avoids accessing localStorage until needed,\n// and avoids throwing user-visible errors.\nfunction initializeDefaultStorage(storageObject) {\n try {\n if (typeof localStorage !== \"undefined\") {\n // Bypass this check for future calls\n storageObject.getItem = name => {\n return localStorage.getItem(name);\n };\n storageObject.setItem = (name, value) => {\n localStorage.setItem(name, value);\n };\n } else {\n throw new Error(\"localStorage not supported in this environment\");\n }\n } catch (error) {\n console.error(error);\n storageObject.getItem = () => null;\n storageObject.setItem = () => {};\n }\n}\n\nfunction getPanelGroupKey(autoSaveId) {\n return `react-resizable-panels:${autoSaveId}`;\n}\n\n// Note that Panel ids might be user-provided (stable) or useId generated (non-deterministic)\n// so they should not be used as part of the serialization key.\n// Using the min/max size attributes should work well enough as a backup.\n// Pre-sorting by minSize allows remembering layouts even if panels are re-ordered/dragged.\nfunction getPanelKey(panels) {\n return panels.map(panel => {\n const {\n constraints,\n id,\n idIsFromProps,\n order\n } = panel;\n if (idIsFromProps) {\n return id;\n } else {\n return order ? `${order}:${JSON.stringify(constraints)}` : JSON.stringify(constraints);\n }\n }).sort((a, b) => a.localeCompare(b)).join(\",\");\n}\nfunction loadSerializedPanelGroupState(autoSaveId, storage) {\n try {\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const serialized = storage.getItem(panelGroupKey);\n if (serialized) {\n const parsed = JSON.parse(serialized);\n if (typeof parsed === \"object\" && parsed != null) {\n return parsed;\n }\n }\n } catch (error) {}\n return null;\n}\nfunction loadPanelGroupState(autoSaveId, panels, storage) {\n var _loadSerializedPanelG, _state$panelKey;\n const state = (_loadSerializedPanelG = loadSerializedPanelGroupState(autoSaveId, storage)) !== null && _loadSerializedPanelG !== void 0 ? _loadSerializedPanelG : {};\n const panelKey = getPanelKey(panels);\n return (_state$panelKey = state[panelKey]) !== null && _state$panelKey !== void 0 ? _state$panelKey : null;\n}\nfunction savePanelGroupState(autoSaveId, panels, panelSizesBeforeCollapse, sizes, storage) {\n var _loadSerializedPanelG2;\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const panelKey = getPanelKey(panels);\n const state = (_loadSerializedPanelG2 = loadSerializedPanelGroupState(autoSaveId, storage)) !== null && _loadSerializedPanelG2 !== void 0 ? _loadSerializedPanelG2 : {};\n state[panelKey] = {\n expandToSizes: Object.fromEntries(panelSizesBeforeCollapse.entries()),\n layout: sizes\n };\n try {\n storage.setItem(panelGroupKey, JSON.stringify(state));\n } catch (error) {\n console.error(error);\n }\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction validatePanelGroupLayout({\n layout: prevLayout,\n panelConstraints\n}) {\n const nextLayout = [...prevLayout];\n const nextLayoutTotalSize = nextLayout.reduce((accumulated, current) => accumulated + current, 0);\n\n // Validate layout expectations\n if (nextLayout.length !== panelConstraints.length) {\n throw Error(`Invalid ${panelConstraints.length} panel layout: ${nextLayout.map(size => `${size}%`).join(\", \")}`);\n } else if (!fuzzyNumbersEqual(nextLayoutTotalSize, 100) && nextLayout.length > 0) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null, `No layout data found for index ${index}`);\n const safeSize = 100 / nextLayoutTotalSize * unsafeSize;\n nextLayout[index] = safeSize;\n }\n }\n let remainingSize = 0;\n\n // First pass: Validate the proposed layout given each panel's constraints\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null, `No layout data found for index ${index}`);\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (unsafeSize != safeSize) {\n remainingSize += unsafeSize - safeSize;\n nextLayout[index] = safeSize;\n }\n }\n\n // If there is additional, left over space, assign it to any panel(s) that permits it\n // (It's not worth taking multiple additional passes to evenly distribute)\n if (!fuzzyNumbersEqual(remainingSize, 0)) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const prevSize = nextLayout[index];\n assert(prevSize != null, `No layout data found for index ${index}`);\n const unsafeSize = prevSize + remainingSize;\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (prevSize !== safeSize) {\n remainingSize -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n\n // Once we've used up the remainder, bail\n if (fuzzyNumbersEqual(remainingSize, 0)) {\n break;\n }\n }\n }\n }\n return nextLayout;\n}\n\nconst LOCAL_STORAGE_DEBOUNCE_INTERVAL = 100;\nconst defaultStorage = {\n getItem: name => {\n initializeDefaultStorage(defaultStorage);\n return defaultStorage.getItem(name);\n },\n setItem: (name, value) => {\n initializeDefaultStorage(defaultStorage);\n defaultStorage.setItem(name, value);\n }\n};\nconst debounceMap = {};\nfunction PanelGroupWithForwardedRef({\n autoSaveId = null,\n children,\n className: classNameFromProps = \"\",\n direction,\n forwardedRef,\n id: idFromProps = null,\n onLayout = null,\n keyboardResizeBy = null,\n storage = defaultStorage,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const groupId = useUniqueId(idFromProps);\n const panelGroupElementRef = useRef(null);\n const [dragState, setDragState] = useState(null);\n const [layout, setLayout] = useState([]);\n const forceUpdate = useForceUpdate();\n const panelIdToLastNotifiedSizeMapRef = useRef({});\n const panelSizeBeforeCollapseRef = useRef(new Map());\n const prevDeltaRef = useRef(0);\n const committedValuesRef = useRef({\n autoSaveId,\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout,\n storage\n });\n const eagerValuesRef = useRef({\n layout,\n panelDataArray: [],\n panelDataArrayChanged: false\n });\n useRef({\n didLogIdAndOrderWarning: false,\n didLogPanelConstraintsWarning: false,\n prevPanelIds: []\n });\n useImperativeHandle(forwardedRef, () => ({\n getId: () => committedValuesRef.current.id,\n getLayout: () => {\n const {\n layout\n } = eagerValuesRef.current;\n return layout;\n },\n setLayout: unsafeLayout => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const safeLayout = validatePanelGroupLayout({\n layout: unsafeLayout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints)\n });\n if (!areEqual(prevLayout, safeLayout)) {\n setLayout(safeLayout);\n eagerValuesRef.current.layout = safeLayout;\n if (onLayout) {\n onLayout(safeLayout);\n }\n callPanelCallbacks(panelDataArray, safeLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }), []);\n useIsomorphicLayoutEffect(() => {\n committedValuesRef.current.autoSaveId = autoSaveId;\n committedValuesRef.current.direction = direction;\n committedValuesRef.current.dragState = dragState;\n committedValuesRef.current.id = groupId;\n committedValuesRef.current.onLayout = onLayout;\n committedValuesRef.current.storage = storage;\n });\n useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray: eagerValuesRef.current.panelDataArray,\n setLayout,\n panelGroupElement: panelGroupElementRef.current\n });\n useEffect(() => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n\n // If this panel has been configured to persist sizing information, save sizes to local storage.\n if (autoSaveId) {\n if (layout.length === 0 || layout.length !== panelDataArray.length) {\n return;\n }\n let debouncedSave = debounceMap[autoSaveId];\n\n // Limit the frequency of localStorage updates.\n if (debouncedSave == null) {\n debouncedSave = debounce(savePanelGroupState, LOCAL_STORAGE_DEBOUNCE_INTERVAL);\n debounceMap[autoSaveId] = debouncedSave;\n }\n\n // Clone mutable data before passing to the debounced function,\n // else we run the risk of saving an incorrect combination of mutable and immutable values to state.\n const clonedPanelDataArray = [...panelDataArray];\n const clonedPanelSizesBeforeCollapse = new Map(panelSizeBeforeCollapseRef.current);\n debouncedSave(autoSaveId, clonedPanelDataArray, clonedPanelSizesBeforeCollapse, layout, storage);\n }\n }, [autoSaveId, layout, storage]);\n\n // DEV warnings\n useEffect(() => {\n });\n\n // External APIs are safe to memoize via committed values ref\n const collapsePanel = useCallback(panelData => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {\n // Store size before collapse;\n // This is the size that gets restored if the expand() API is used.\n panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - collapsedSize : collapsedSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const expandPanel = useCallback((panelData, minSizeOverride) => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize = 0,\n minSize: minSizeFromProps = 0,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n const minSize = minSizeOverride !== null && minSizeOverride !== void 0 ? minSizeOverride : minSizeFromProps;\n if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {\n // Restore this panel to the size it was before it was collapsed, if possible.\n const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);\n const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - baseSize : baseSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const getPanelSize = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n return panelSize;\n }, []);\n\n // This API should never read from committedValuesRef\n const getPanelStyle = useCallback((panelData, defaultSize) => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n return computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData: panelDataArray,\n panelIndex\n });\n }, [dragState, layout]);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelCollapsed = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelExpanded = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;\n }, []);\n const registerPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n panelDataArray.push(panelData);\n panelDataArray.sort((panelA, panelB) => {\n const orderA = panelA.order;\n const orderB = panelB.order;\n if (orderA == null && orderB == null) {\n return 0;\n } else if (orderA == null) {\n return -1;\n } else if (orderB == null) {\n return 1;\n } else {\n return orderA - orderB;\n }\n });\n eagerValuesRef.current.panelDataArrayChanged = true;\n forceUpdate();\n }, [forceUpdate]);\n\n // (Re)calculate group layout whenever panels are registered or unregistered.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useIsomorphicLayoutEffect(() => {\n if (eagerValuesRef.current.panelDataArrayChanged) {\n eagerValuesRef.current.panelDataArrayChanged = false;\n const {\n autoSaveId,\n onLayout,\n storage\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n\n // If this panel has been configured to persist sizing information,\n // default size should be restored from local storage if possible.\n let unsafeLayout = null;\n if (autoSaveId) {\n const state = loadPanelGroupState(autoSaveId, panelDataArray, storage);\n if (state) {\n panelSizeBeforeCollapseRef.current = new Map(Object.entries(state.expandToSizes));\n unsafeLayout = state.layout;\n }\n }\n if (unsafeLayout == null) {\n unsafeLayout = calculateUnsafeDefaultLayout({\n panelDataArray\n });\n }\n\n // Validate even saved layouts in case something has changed since last render\n // e.g. for pixel groups, this could be the size of the window\n const nextLayout = validatePanelGroupLayout({\n layout: unsafeLayout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints)\n });\n if (!areEqual(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n });\n\n // Reset the cached layout if hidden by the Activity/Offscreen API\n useIsomorphicLayoutEffect(() => {\n const eagerValues = eagerValuesRef.current;\n return () => {\n eagerValues.layout = [];\n };\n }, []);\n const registerResizeHandle = useCallback(dragHandleId => {\n let isRTL = false;\n const panelGroupElement = panelGroupElementRef.current;\n if (panelGroupElement) {\n const style = window.getComputedStyle(panelGroupElement, null);\n if (style.getPropertyValue(\"direction\") === \"rtl\") {\n isRTL = true;\n }\n }\n return function resizeHandler(event) {\n event.preventDefault();\n const panelGroupElement = panelGroupElementRef.current;\n if (!panelGroupElement) {\n return () => null;\n }\n const {\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n initialLayout\n } = dragState !== null && dragState !== void 0 ? dragState : {};\n const pivotIndices = determinePivotIndices(groupId, dragHandleId, panelGroupElement);\n let delta = calculateDeltaPercentage(event, dragHandleId, direction, dragState, keyboardResizeBy, panelGroupElement);\n const isHorizontal = direction === \"horizontal\";\n if (isHorizontal && isRTL) {\n delta = -delta;\n }\n const panelConstraints = panelDataArray.map(panelData => panelData.constraints);\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: initialLayout !== null && initialLayout !== void 0 ? initialLayout : prevLayout,\n panelConstraints,\n pivotIndices,\n prevLayout,\n trigger: isKeyDown(event) ? \"keyboard\" : \"mouse-or-touch\"\n });\n const layoutChanged = !compareLayouts(prevLayout, nextLayout);\n\n // Only update the cursor for layout changes triggered by touch/mouse events (not keyboard)\n // Update the cursor even if the layout hasn't changed (we may need to show an invalid cursor state)\n if (isPointerEvent(event) || isMouseEvent(event)) {\n // Watch for multiple subsequent deltas; this might occur for tiny cursor movements.\n // In this case, Panel sizes might not change–\n // but updating cursor in this scenario would cause a flicker.\n if (prevDeltaRef.current != delta) {\n prevDeltaRef.current = delta;\n if (!layoutChanged && delta !== 0) {\n // If the pointer has moved too far to resize the panel any further, note this so we can update the cursor.\n // This mimics VS Code behavior.\n if (isHorizontal) {\n reportConstraintsViolation(dragHandleId, delta < 0 ? EXCEEDED_HORIZONTAL_MIN : EXCEEDED_HORIZONTAL_MAX);\n } else {\n reportConstraintsViolation(dragHandleId, delta < 0 ? EXCEEDED_VERTICAL_MIN : EXCEEDED_VERTICAL_MAX);\n }\n } else {\n reportConstraintsViolation(dragHandleId, 0);\n }\n }\n }\n if (layoutChanged) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n };\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const resizePanel = useCallback((panelData, unsafePanelSize) => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - unsafePanelSize : unsafePanelSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }, []);\n const reevaluatePanelConstraints = useCallback((panelData, prevConstraints) => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize: prevCollapsedSize = 0,\n collapsible: prevCollapsible\n } = prevConstraints;\n const {\n collapsedSize: nextCollapsedSize = 0,\n collapsible: nextCollapsible,\n maxSize: nextMaxSize = 100,\n minSize: nextMinSize = 0\n } = panelData.constraints;\n const {\n panelSize: prevPanelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n if (prevPanelSize == null) {\n // It's possible that the panels in this group have changed since the last render\n return;\n }\n if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {\n if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {\n resizePanel(panelData, nextCollapsedSize);\n }\n } else if (prevPanelSize < nextMinSize) {\n resizePanel(panelData, nextMinSize);\n } else if (prevPanelSize > nextMaxSize) {\n resizePanel(panelData, nextMaxSize);\n }\n }, [resizePanel]);\n\n // TODO Multiple drag handles can be active at the same time so this API is a bit awkward now\n const startDragging = useCallback((dragHandleId, event) => {\n const {\n direction\n } = committedValuesRef.current;\n const {\n layout\n } = eagerValuesRef.current;\n if (!panelGroupElementRef.current) {\n return;\n }\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElementRef.current);\n assert(handleElement, `Drag handle element not found for id \"${dragHandleId}\"`);\n const initialCursorPosition = getResizeEventCursorPosition(direction, event);\n setDragState({\n dragHandleId,\n dragHandleRect: handleElement.getBoundingClientRect(),\n initialCursorPosition,\n initialLayout: layout\n });\n }, []);\n const stopDragging = useCallback(() => {\n setDragState(null);\n }, []);\n const unregisterPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const index = findPanelDataIndex(panelDataArray, panelData);\n if (index >= 0) {\n panelDataArray.splice(index, 1);\n\n // TRICKY\n // When a panel is removed from the group, we should delete the most recent prev-size entry for it.\n // If we don't do this, then a conditionally rendered panel might not call onResize when it's re-mounted.\n // Strict effects mode makes this tricky though because all panels will be registered, unregistered, then re-registered on mount.\n delete panelIdToLastNotifiedSizeMapRef.current[panelData.id];\n eagerValuesRef.current.panelDataArrayChanged = true;\n forceUpdate();\n }\n }, [forceUpdate]);\n const context = useMemo(() => ({\n collapsePanel,\n direction,\n dragState,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n isPanelExpanded,\n reevaluatePanelConstraints,\n registerPanel,\n registerResizeHandle,\n resizePanel,\n startDragging,\n stopDragging,\n unregisterPanel,\n panelGroupElement: panelGroupElementRef.current\n }), [collapsePanel, dragState, direction, expandPanel, getPanelSize, getPanelStyle, groupId, isPanelCollapsed, isPanelExpanded, reevaluatePanelConstraints, registerPanel, registerResizeHandle, resizePanel, startDragging, stopDragging, unregisterPanel]);\n const style = {\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n height: \"100%\",\n overflow: \"hidden\",\n width: \"100%\"\n };\n return createElement(PanelGroupContext.Provider, {\n value: context\n }, createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n ref: panelGroupElementRef,\n style: {\n ...style,\n ...styleFromProps\n },\n // CSS selectors\n \"data-panel-group\": \"\",\n \"data-panel-group-direction\": direction,\n \"data-panel-group-id\": groupId\n }));\n}\nconst PanelGroup = forwardRef((props, ref) => createElement(PanelGroupWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelGroupWithForwardedRef.displayName = \"PanelGroup\";\nPanelGroup.displayName = \"forwardRef(PanelGroup)\";\nfunction findPanelDataIndex(panelDataArray, panelData) {\n return panelDataArray.findIndex(prevPanelData => prevPanelData === panelData || prevPanelData.id === panelData.id);\n}\nfunction panelDataHelper(panelDataArray, panelData, layout) {\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n const isLastPanel = panelIndex === panelDataArray.length - 1;\n const pivotIndices = isLastPanel ? [panelIndex - 1, panelIndex] : [panelIndex, panelIndex + 1];\n const panelSize = layout[panelIndex];\n return {\n ...panelData.constraints,\n panelSize,\n pivotIndices\n };\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement\n}) {\n useEffect(() => {\n if (disabled || resizeHandler == null || panelGroupElement == null) {\n return;\n }\n const handleElement = getResizeHandleElement(handleId, panelGroupElement);\n if (handleElement == null) {\n return;\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n case \"ArrowUp\":\n case \"End\":\n case \"Home\":\n {\n event.preventDefault();\n resizeHandler(event);\n break;\n }\n case \"F6\":\n {\n event.preventDefault();\n const groupId = handleElement.getAttribute(\"data-panel-group-id\");\n assert(groupId, `No group element found for id \"${groupId}\"`);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n const index = getResizeHandleElementIndex(groupId, handleId, panelGroupElement);\n assert(index !== null, `No resize element found for id \"${handleId}\"`);\n const nextIndex = event.shiftKey ? index > 0 ? index - 1 : handles.length - 1 : index + 1 < handles.length ? index + 1 : 0;\n const nextHandle = handles[nextIndex];\n nextHandle.focus();\n break;\n }\n }\n };\n handleElement.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handleElement.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [panelGroupElement, disabled, handleId, resizeHandler]);\n}\n\nfunction PanelResizeHandle({\n children = null,\n className: classNameFromProps = \"\",\n disabled = false,\n hitAreaMargins,\n id: idFromProps,\n onBlur,\n onDragging,\n onFocus,\n style: styleFromProps = {},\n tabIndex = 0,\n tagName: Type = \"div\",\n ...rest\n}) {\n var _hitAreaMargins$coars, _hitAreaMargins$fine;\n const elementRef = useRef(null);\n\n // Use a ref to guard against users passing inline props\n const callbacksRef = useRef({\n onDragging\n });\n useEffect(() => {\n callbacksRef.current.onDragging = onDragging;\n });\n const panelGroupContext = useContext(PanelGroupContext);\n if (panelGroupContext === null) {\n throw Error(`PanelResizeHandle components must be rendered within a PanelGroup container`);\n }\n const {\n direction,\n groupId,\n registerResizeHandle: registerResizeHandleWithParentGroup,\n startDragging,\n stopDragging,\n panelGroupElement\n } = panelGroupContext;\n const resizeHandleId = useUniqueId(idFromProps);\n const [state, setState] = useState(\"inactive\");\n const [isFocused, setIsFocused] = useState(false);\n const [resizeHandler, setResizeHandler] = useState(null);\n const committedValuesRef = useRef({\n state\n });\n useIsomorphicLayoutEffect(() => {\n committedValuesRef.current.state = state;\n });\n useEffect(() => {\n if (disabled) {\n setResizeHandler(null);\n } else {\n const resizeHandler = registerResizeHandleWithParentGroup(resizeHandleId);\n setResizeHandler(() => resizeHandler);\n }\n }, [disabled, resizeHandleId, registerResizeHandleWithParentGroup]);\n\n // Extract hit area margins before passing them to the effect's dependency array\n // so that inline object values won't trigger re-renders\n const coarseHitAreaMargins = (_hitAreaMargins$coars = hitAreaMargins === null || hitAreaMargins === void 0 ? void 0 : hitAreaMargins.coarse) !== null && _hitAreaMargins$coars !== void 0 ? _hitAreaMargins$coars : 15;\n const fineHitAreaMargins = (_hitAreaMargins$fine = hitAreaMargins === null || hitAreaMargins === void 0 ? void 0 : hitAreaMargins.fine) !== null && _hitAreaMargins$fine !== void 0 ? _hitAreaMargins$fine : 5;\n useEffect(() => {\n if (disabled || resizeHandler == null) {\n return;\n }\n const element = elementRef.current;\n assert(element, \"Element ref not attached\");\n const setResizeHandlerState = (action, isActive, event) => {\n if (isActive) {\n switch (action) {\n case \"down\":\n {\n setState(\"drag\");\n assert(event, 'Expected event to be defined for \"down\" action');\n startDragging(resizeHandleId, event);\n const {\n onDragging\n } = callbacksRef.current;\n if (onDragging) {\n onDragging(true);\n }\n break;\n }\n case \"move\":\n {\n const {\n state\n } = committedValuesRef.current;\n if (state !== \"drag\") {\n setState(\"hover\");\n }\n assert(event, 'Expected event to be defined for \"move\" action');\n resizeHandler(event);\n break;\n }\n case \"up\":\n {\n setState(\"hover\");\n stopDragging();\n const {\n onDragging\n } = callbacksRef.current;\n if (onDragging) {\n onDragging(false);\n }\n break;\n }\n }\n } else {\n setState(\"inactive\");\n }\n };\n return registerResizeHandle(resizeHandleId, element, direction, {\n coarse: coarseHitAreaMargins,\n fine: fineHitAreaMargins\n }, setResizeHandlerState);\n }, [coarseHitAreaMargins, direction, disabled, fineHitAreaMargins, registerResizeHandleWithParentGroup, resizeHandleId, resizeHandler, startDragging, stopDragging]);\n useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId: resizeHandleId,\n resizeHandler,\n panelGroupElement\n });\n const style = {\n touchAction: \"none\",\n userSelect: \"none\"\n };\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n onBlur: () => {\n setIsFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur();\n },\n onFocus: () => {\n setIsFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus();\n },\n ref: elementRef,\n role: \"separator\",\n style: {\n ...style,\n ...styleFromProps\n },\n tabIndex,\n // CSS selectors\n \"data-panel-group-direction\": direction,\n \"data-panel-group-id\": groupId,\n \"data-resize-handle\": \"\",\n \"data-resize-handle-active\": state === \"drag\" ? \"pointer\" : isFocused ? \"keyboard\" : undefined,\n \"data-resize-handle-state\": state,\n \"data-panel-resize-handle-enabled\": !disabled,\n \"data-panel-resize-handle-id\": resizeHandleId\n });\n}\nPanelResizeHandle.displayName = \"PanelResizeHandle\";\n\nfunction getPanelElement(id, scope = document) {\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getPanelElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`));\n}\n\nfunction getIntersectingRectangle(rectOne, rectTwo, strict) {\n if (!intersects(rectOne, rectTwo, strict)) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n return {\n x: Math.max(rectOne.x, rectTwo.x),\n y: Math.max(rectOne.y, rectTwo.y),\n width: Math.min(rectOne.x + rectOne.width, rectTwo.x + rectTwo.width) - Math.max(rectOne.x, rectTwo.x),\n height: Math.min(rectOne.y + rectOne.height, rectTwo.y + rectTwo.height) - Math.max(rectOne.y, rectTwo.y)\n };\n}\n\nexport { Panel, PanelGroup, PanelResizeHandle, assert, disableGlobalCursorStyles, enableGlobalCursorStyles, getIntersectingRectangle, getPanelElement, getPanelElementsForGroup, getPanelGroupElement, getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup, getResizeHandlePanelIds, intersects, setNonce };\n","import { PropsWithChildren, useEffect, useState } from \"react\";\nimport { Header } from \"./header/Header\";\nimport { LeftPanel } from \"./left-panel/LeftPanel\";\n\nimport { useResponsive } from \":/hooks/useResponsive\";\nimport { Panel, PanelGroup, PanelResizeHandle } from \"react-resizable-panels\";\nimport { DropdownMenuOption } from \"../dropdown-menu/types\";\n\nexport type MainLayoutProps = {\n icon?: React.ReactNode;\n leftPanelContent?: React.ReactNode;\n rightHeaderContent?: React.ReactNode;\n languages?: DropdownMenuOption[];\n onTogglePanel?: () => void;\n\n enableResize?: boolean;\n};\n\nexport const MainLayout = ({\n icon,\n children,\n leftPanelContent,\n rightHeaderContent,\n languages,\n enableResize = false,\n}: PropsWithChildren<MainLayoutProps>) => {\n const [isLeftPanelOpen, setIsLeftPanelOpen] = useState(false);\n const { isDesktop } = useResponsive();\n const [minPanelSize, setMinPanelSize] = useState(\n calculateDefaultSize(300, isDesktop)\n );\n const [maxPanelSize, setMaxPanelSize] = useState(\n calculateDefaultSize(450, isDesktop)\n );\n\n const onTogglePanel = () => {\n setIsLeftPanelOpen(!isLeftPanelOpen);\n };\n\n useEffect(() => {\n const updatePanelSize = () => {\n const min = calculateDefaultSize(300, isDesktop);\n const max = Math.min(calculateDefaultSize(450, isDesktop), 40);\n setMinPanelSize(isDesktop ? min : 0);\n if (enableResize) {\n setMaxPanelSize(max);\n } else {\n setMaxPanelSize(min);\n }\n };\n\n updatePanelSize();\n window.addEventListener(\"resize\", () => {\n updatePanelSize();\n });\n\n return () => {\n window.removeEventListener(\"resize\", updatePanelSize);\n };\n }, [isDesktop, enableResize]);\n\n return (\n <div className=\"c__main-layout\">\n <div className=\"c__main-layout__header\">\n <Header\n onTogglePanel={onTogglePanel}\n isPanelOpen={isLeftPanelOpen}\n rightIcon={rightHeaderContent}\n leftIcon={icon}\n languages={languages}\n />\n </div>\n <div className=\"c__main-layout__content\">\n <PanelGroup direction=\"horizontal\">\n <Panel\n defaultSize={minPanelSize}\n minSize={minPanelSize}\n maxSize={maxPanelSize}\n >\n <LeftPanel isOpen={isLeftPanelOpen}>{leftPanelContent}</LeftPanel>\n </Panel>\n {isDesktop && (\n <PanelResizeHandle\n className=\"bg-greyscale-200\"\n style={{\n width: \"1px\",\n }}\n />\n )}\n <Panel>\n <div className=\"c__main-layout__content__children\">{children}</div>\n </Panel>\n </PanelGroup>\n </div>\n </div>\n );\n};\n\nconst calculateDefaultSize = (targetWidth: number, isDesktop: boolean) => {\n if (!isDesktop) {\n return 0;\n }\n const windowWidth = window.innerWidth;\n return (targetWidth / windowWidth) * 100;\n};\n","export const headerHeight = 52;\n","interface SpinnerProps {\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nexport const Spinner = ({ size = \"sm\" }: SpinnerProps) => {\n return <div className={[\"c__spinner\", size].join(\" \")} />;\n};\n","import { LabelHTMLAttributes } from \"react\";\n\nexport const Label = ({\n children,\n text,\n ...props\n}: LabelHTMLAttributes<HTMLLabelElement> & { text?: string }) => {\n return (\n <div className=\"suite__label__container\">\n <label {...props}>{children}</label>\n {text && (\n <span className=\"suite__label__container__description\">{text}</span>\n )}\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { PropsWithChildren } from \"react\";\nimport { Label } from \"./label\";\n\nexport type WithLabelProps = {\n label: string;\n text?: string;\n labelSide?: \"left\" | \"right\";\n};\n\nexport const WithLabel = ({\n label,\n text,\n labelSide = \"right\",\n children,\n}: PropsWithChildren<WithLabelProps>) => {\n return (\n <div className={clsx(\"c__with-label\", { [labelSide]: true })}>\n <Label children={label} text={text} />\n {children}\n </div>\n );\n};\n","var U=1,Y=.9,H=.8,J=.17,p=.1,u=.999,$=.9999;var k=.99,m=/[\\\\\\/_+.#\"@\\[\\(\\{&]/,B=/[\\\\\\/_+.#\"@\\[\\(\\{&]/g,K=/[\\s-]/,X=/[\\s-]/g;function G(_,C,h,P,A,f,O){if(f===C.length)return A===_.length?U:k;var T=`${A},${f}`;if(O[T]!==void 0)return O[T];for(var L=P.charAt(f),c=h.indexOf(L,A),S=0,E,N,R,M;c>=0;)E=G(_,C,h,P,c+1,f+1,O),E>S&&(c===A?E*=U:m.test(_.charAt(c-1))?(E*=H,R=_.slice(A,c-1).match(B),R&&A>0&&(E*=Math.pow(u,R.length))):K.test(_.charAt(c-1))?(E*=Y,M=_.slice(A,c-1).match(X),M&&A>0&&(E*=Math.pow(u,M.length))):(E*=J,A>0&&(E*=Math.pow(u,c-A))),_.charAt(c)!==C.charAt(f)&&(E*=$)),(E<p&&h.charAt(c-1)===P.charAt(f+1)||P.charAt(f+1)===P.charAt(f)&&h.charAt(c-1)!==P.charAt(f))&&(N=G(_,C,h,P,c+1,f+2,O),N*p>E&&(E=N*p)),E>S&&(S=E),c=h.indexOf(L,c+1);return O[T]=S,S}function D(_){return _.toLowerCase().replace(X,\" \")}function W(_,C,h){return _=h&&h.length>0?`${_+\" \"+h.join(\" \")}`:_,G(_,C,D(_),D(C),0,0,{})}export{W as a};\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-scope/src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/portal/src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/focus-guards/src/FocusGuards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\nexport {\n FocusGuards,\n Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","\"use client\";\n\n// packages/react/dialog/src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";import{a as ce}from\"./chunk-NZJY6EH4.mjs\";import*as w from\"@radix-ui/react-dialog\";import*as n from\"react\";import{Primitive as D}from\"@radix-ui/react-primitive\";import{useId as L}from\"@radix-ui/react-id\";import{useSyncExternalStore as Re}from\"use-sync-external-store/shim/index.js\";var N='[cmdk-group=\"\"]',Q='[cmdk-group-items=\"\"]',be='[cmdk-group-heading=\"\"]',Z='[cmdk-item=\"\"]',le=`${Z}:not([aria-disabled=\"true\"])`,Y=\"cmdk-item-select\",I=\"data-value\",he=(r,o,t)=>ce(r,o,t),ue=n.createContext(void 0),K=()=>n.useContext(ue),de=n.createContext(void 0),ee=()=>n.useContext(de),fe=n.createContext(void 0);var me=n.forwardRef((r,o)=>{let t=k(()=>{var e,s;return{search:\"\",value:(s=(e=r.value)!=null?e:r.defaultValue)!=null?s:\"\",filtered:{count:0,items:new Map,groups:new Set}}}),u=k(()=>new Set),c=k(()=>new Map),d=k(()=>new Map),f=k(()=>new Set),p=pe(r),{label:v,children:b,value:l,onValueChange:y,filter:E,shouldFilter:C,loop:H,disablePointerSelection:ge=!1,vimBindings:$=!0,...O}=r,te=L(),B=L(),F=L(),x=n.useRef(null),R=Te();M(()=>{if(l!==void 0){let e=l.trim();t.current.value=e,h.emit()}},[l]),M(()=>{R(6,re)},[]);let h=n.useMemo(()=>({subscribe:e=>(f.current.add(e),()=>f.current.delete(e)),snapshot:()=>t.current,setState:(e,s,i)=>{var a,m,g;if(!Object.is(t.current[e],s)){if(t.current[e]=s,e===\"search\")W(),U(),R(1,z);else if(e===\"value\"&&(i||R(5,re),((a=p.current)==null?void 0:a.value)!==void 0)){let S=s!=null?s:\"\";(g=(m=p.current).onValueChange)==null||g.call(m,S);return}h.emit()}},emit:()=>{f.current.forEach(e=>e())}}),[]),q=n.useMemo(()=>({value:(e,s,i)=>{var a;s!==((a=d.current.get(e))==null?void 0:a.value)&&(d.current.set(e,{value:s,keywords:i}),t.current.filtered.items.set(e,ne(s,i)),R(2,()=>{U(),h.emit()}))},item:(e,s)=>(u.current.add(e),s&&(c.current.has(s)?c.current.get(s).add(e):c.current.set(s,new Set([e]))),R(3,()=>{W(),U(),t.current.value||z(),h.emit()}),()=>{d.current.delete(e),u.current.delete(e),t.current.filtered.items.delete(e);let i=A();R(4,()=>{W(),(i==null?void 0:i.getAttribute(\"id\"))===e&&z(),h.emit()})}),group:e=>(c.current.has(e)||c.current.set(e,new Set),()=>{d.current.delete(e),c.current.delete(e)}),filter:()=>p.current.shouldFilter,label:v||r[\"aria-label\"],getDisablePointerSelection:()=>p.current.disablePointerSelection,listId:te,inputId:F,labelId:B,listInnerRef:x}),[]);function ne(e,s){var a,m;let i=(m=(a=p.current)==null?void 0:a.filter)!=null?m:he;return e?i(e,t.current.search,s):0}function U(){if(!t.current.search||p.current.shouldFilter===!1)return;let e=t.current.filtered.items,s=[];t.current.filtered.groups.forEach(a=>{let m=c.current.get(a),g=0;m.forEach(S=>{let P=e.get(S);g=Math.max(P,g)}),s.push([a,g])});let i=x.current;_().sort((a,m)=>{var P,V;let g=a.getAttribute(\"id\"),S=m.getAttribute(\"id\");return((P=e.get(S))!=null?P:0)-((V=e.get(g))!=null?V:0)}).forEach(a=>{let m=a.closest(Q);m?m.appendChild(a.parentElement===m?a:a.closest(`${Q} > *`)):i.appendChild(a.parentElement===i?a:a.closest(`${Q} > *`))}),s.sort((a,m)=>m[1]-a[1]).forEach(a=>{var g;let m=(g=x.current)==null?void 0:g.querySelector(`${N}[${I}=\"${encodeURIComponent(a[0])}\"]`);m==null||m.parentElement.appendChild(m)})}function z(){let e=_().find(i=>i.getAttribute(\"aria-disabled\")!==\"true\"),s=e==null?void 0:e.getAttribute(I);h.setState(\"value\",s||void 0)}function W(){var s,i,a,m;if(!t.current.search||p.current.shouldFilter===!1){t.current.filtered.count=u.current.size;return}t.current.filtered.groups=new Set;let e=0;for(let g of u.current){let S=(i=(s=d.current.get(g))==null?void 0:s.value)!=null?i:\"\",P=(m=(a=d.current.get(g))==null?void 0:a.keywords)!=null?m:[],V=ne(S,P);t.current.filtered.items.set(g,V),V>0&&e++}for(let[g,S]of c.current)for(let P of S)if(t.current.filtered.items.get(P)>0){t.current.filtered.groups.add(g);break}t.current.filtered.count=e}function re(){var s,i,a;let e=A();e&&(((s=e.parentElement)==null?void 0:s.firstChild)===e&&((a=(i=e.closest(N))==null?void 0:i.querySelector(be))==null||a.scrollIntoView({block:\"nearest\"})),e.scrollIntoView({block:\"nearest\"}))}function A(){var e;return(e=x.current)==null?void 0:e.querySelector(`${Z}[aria-selected=\"true\"]`)}function _(){var e;return Array.from(((e=x.current)==null?void 0:e.querySelectorAll(le))||[])}function J(e){let i=_()[e];i&&h.setState(\"value\",i.getAttribute(I))}function X(e){var g;let s=A(),i=_(),a=i.findIndex(S=>S===s),m=i[a+e];(g=p.current)!=null&&g.loop&&(m=a+e<0?i[i.length-1]:a+e===i.length?i[0]:i[a+e]),m&&h.setState(\"value\",m.getAttribute(I))}function oe(e){let s=A(),i=s==null?void 0:s.closest(N),a;for(;i&&!a;)i=e>0?Ie(i,N):Me(i,N),a=i==null?void 0:i.querySelector(le);a?h.setState(\"value\",a.getAttribute(I)):X(e)}let ie=()=>J(_().length-1),ae=e=>{e.preventDefault(),e.metaKey?ie():e.altKey?oe(1):X(1)},se=e=>{e.preventDefault(),e.metaKey?J(0):e.altKey?oe(-1):X(-1)};return n.createElement(D.div,{ref:o,tabIndex:-1,...O,\"cmdk-root\":\"\",onKeyDown:e=>{var s;if((s=O.onKeyDown)==null||s.call(O,e),!e.defaultPrevented)switch(e.key){case\"n\":case\"j\":{$&&e.ctrlKey&&ae(e);break}case\"ArrowDown\":{ae(e);break}case\"p\":case\"k\":{$&&e.ctrlKey&&se(e);break}case\"ArrowUp\":{se(e);break}case\"Home\":{e.preventDefault(),J(0);break}case\"End\":{e.preventDefault(),ie();break}case\"Enter\":if(!e.nativeEvent.isComposing&&e.keyCode!==229){e.preventDefault();let i=A();if(i){let a=new Event(Y);i.dispatchEvent(a)}}}}},n.createElement(\"label\",{\"cmdk-label\":\"\",htmlFor:q.inputId,id:q.labelId,style:Le},v),j(r,e=>n.createElement(de.Provider,{value:h},n.createElement(ue.Provider,{value:q},e))))}),ye=n.forwardRef((r,o)=>{var F,x;let t=L(),u=n.useRef(null),c=n.useContext(fe),d=K(),f=pe(r),p=(x=(F=f.current)==null?void 0:F.forceMount)!=null?x:c==null?void 0:c.forceMount;M(()=>{if(!p)return d.item(t,c==null?void 0:c.id)},[p]);let v=ve(t,u,[r.value,r.children,u],r.keywords),b=ee(),l=T(R=>R.value&&R.value===v.current),y=T(R=>p||d.filter()===!1?!0:R.search?R.filtered.items.get(t)>0:!0);n.useEffect(()=>{let R=u.current;if(!(!R||r.disabled))return R.addEventListener(Y,E),()=>R.removeEventListener(Y,E)},[y,r.onSelect,r.disabled]);function E(){var R,h;C(),(h=(R=f.current).onSelect)==null||h.call(R,v.current)}function C(){b.setState(\"value\",v.current,!0)}if(!y)return null;let{disabled:H,value:ge,onSelect:$,forceMount:O,keywords:te,...B}=r;return n.createElement(D.div,{ref:G([u,o]),...B,id:t,\"cmdk-item\":\"\",role:\"option\",\"aria-disabled\":!!H,\"aria-selected\":!!l,\"data-disabled\":!!H,\"data-selected\":!!l,onPointerMove:H||d.getDisablePointerSelection()?void 0:C,onClick:H?void 0:E},r.children)}),Se=n.forwardRef((r,o)=>{let{heading:t,children:u,forceMount:c,...d}=r,f=L(),p=n.useRef(null),v=n.useRef(null),b=L(),l=K(),y=T(C=>c||l.filter()===!1?!0:C.search?C.filtered.groups.has(f):!0);M(()=>l.group(f),[]),ve(f,p,[r.value,r.heading,v]);let E=n.useMemo(()=>({id:f,forceMount:c}),[c]);return n.createElement(D.div,{ref:G([p,o]),...d,\"cmdk-group\":\"\",role:\"presentation\",hidden:y?void 0:!0},t&&n.createElement(\"div\",{ref:v,\"cmdk-group-heading\":\"\",\"aria-hidden\":!0,id:b},t),j(r,C=>n.createElement(\"div\",{\"cmdk-group-items\":\"\",role:\"group\",\"aria-labelledby\":t?b:void 0},n.createElement(fe.Provider,{value:E},C))))}),Ee=n.forwardRef((r,o)=>{let{alwaysRender:t,...u}=r,c=n.useRef(null),d=T(f=>!f.search);return!t&&!d?null:n.createElement(D.div,{ref:G([c,o]),...u,\"cmdk-separator\":\"\",role:\"separator\"})}),Ce=n.forwardRef((r,o)=>{let{onValueChange:t,...u}=r,c=r.value!=null,d=ee(),f=T(l=>l.search),p=T(l=>l.value),v=K(),b=n.useMemo(()=>{var y;let l=(y=v.listInnerRef.current)==null?void 0:y.querySelector(`${Z}[${I}=\"${encodeURIComponent(p)}\"]`);return l==null?void 0:l.getAttribute(\"id\")},[]);return n.useEffect(()=>{r.value!=null&&d.setState(\"search\",r.value)},[r.value]),n.createElement(D.input,{ref:o,...u,\"cmdk-input\":\"\",autoComplete:\"off\",autoCorrect:\"off\",spellCheck:!1,\"aria-autocomplete\":\"list\",role:\"combobox\",\"aria-expanded\":!0,\"aria-controls\":v.listId,\"aria-labelledby\":v.labelId,\"aria-activedescendant\":b,id:v.inputId,type:\"text\",value:c?r.value:f,onChange:l=>{c||d.setState(\"search\",l.target.value),t==null||t(l.target.value)}})}),xe=n.forwardRef((r,o)=>{let{children:t,label:u=\"Suggestions\",...c}=r,d=n.useRef(null),f=n.useRef(null),p=K();return n.useEffect(()=>{if(f.current&&d.current){let v=f.current,b=d.current,l,y=new ResizeObserver(()=>{l=requestAnimationFrame(()=>{let E=v.offsetHeight;b.style.setProperty(\"--cmdk-list-height\",E.toFixed(1)+\"px\")})});return y.observe(v),()=>{cancelAnimationFrame(l),y.unobserve(v)}}},[]),n.createElement(D.div,{ref:G([d,o]),...c,\"cmdk-list\":\"\",role:\"listbox\",\"aria-label\":u,id:p.listId},j(r,v=>n.createElement(\"div\",{ref:G([f,p.listInnerRef]),\"cmdk-list-sizer\":\"\"},v)))}),Pe=n.forwardRef((r,o)=>{let{open:t,onOpenChange:u,overlayClassName:c,contentClassName:d,container:f,...p}=r;return n.createElement(w.Root,{open:t,onOpenChange:u},n.createElement(w.Portal,{container:f},n.createElement(w.Overlay,{\"cmdk-overlay\":\"\",className:c}),n.createElement(w.Content,{\"aria-label\":r.label,\"cmdk-dialog\":\"\",className:d},n.createElement(me,{ref:o,...p}))))}),we=n.forwardRef((r,o)=>T(u=>u.filtered.count===0)?n.createElement(D.div,{ref:o,...r,\"cmdk-empty\":\"\",role:\"presentation\"}):null),De=n.forwardRef((r,o)=>{let{progress:t,children:u,label:c=\"Loading...\",...d}=r;return n.createElement(D.div,{ref:o,...d,\"cmdk-loading\":\"\",role:\"progressbar\",\"aria-valuenow\":t,\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-label\":c},j(r,f=>n.createElement(\"div\",{\"aria-hidden\":!0},f)))}),Ve=Object.assign(me,{List:xe,Item:ye,Input:Ce,Group:Se,Separator:Ee,Dialog:Pe,Empty:we,Loading:De});function Ie(r,o){let t=r.nextElementSibling;for(;t;){if(t.matches(o))return t;t=t.nextElementSibling}}function Me(r,o){let t=r.previousElementSibling;for(;t;){if(t.matches(o))return t;t=t.previousElementSibling}}function pe(r){let o=n.useRef(r);return M(()=>{o.current=r}),o}var M=typeof window==\"undefined\"?n.useEffect:n.useLayoutEffect;function k(r){let o=n.useRef();return o.current===void 0&&(o.current=r()),o}function G(r){return o=>{r.forEach(t=>{typeof t==\"function\"?t(o):t!=null&&(t.current=o)})}}function T(r){let o=ee(),t=()=>r(o.snapshot());return Re(o.subscribe,t,t)}function ve(r,o,t,u=[]){let c=n.useRef(),d=K();return M(()=>{var v;let f=(()=>{var b;for(let l of t){if(typeof l==\"string\")return l.trim();if(typeof l==\"object\"&&\"current\"in l)return l.current?(b=l.current.textContent)==null?void 0:b.trim():c.current}})(),p=u.map(b=>b.trim());d.value(r,f,p),(v=o.current)==null||v.setAttribute(I,f),c.current=f}),c}var Te=()=>{let[r,o]=n.useState(),t=k(()=>new Map);return M(()=>{t.current.forEach(u=>u()),t.current=new Map},[r]),(u,c)=>{t.current.set(u,c),o({})}};function ke(r){let o=r.type;return typeof o==\"function\"?o(r.props):\"render\"in o?o.render(r.props):r}function j({asChild:r,children:o},t){return r&&n.isValidElement(o)?n.cloneElement(ke(o),{ref:o.ref},t(o.props.children)):t(o)}var Le={position:\"absolute\",width:\"1px\",height:\"1px\",padding:\"0\",margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\"};export{Ve as Command,Pe as CommandDialog,we as CommandEmpty,Se as CommandGroup,Ce as CommandInput,ye as CommandItem,xe as CommandList,De as CommandLoading,me as CommandRoot,Ee as CommandSeparator,he as defaultFilter,T as useCommandState};\n","import clsx from \"clsx\";\n\ntype Props = {\n withPadding?: boolean;\n};\n\nexport const HorizontalSeparator = ({ withPadding = true }: Props) => {\n return (\n <div\n className={clsx(\"c__horizontal-separator\", {\n \"with-padding\": withPadding,\n })}\n />\n );\n};\n","import { Command } from \"cmdk\";\nimport { ReactNode } from \"react\";\nimport { Spinner } from \":/components/loader/Spinner\";\nimport { useCunningham } from \"@openfun/cunningham-react\";\nimport { HorizontalSeparator } from \":/components/separator/HorizontalSeparator\";\n\ntype Props = {\n loading?: boolean;\n inputValue?: string;\n onFilter?: (str: string) => void;\n placeholder?: string;\n children?: ReactNode;\n withSeparator?: boolean;\n};\nexport const QuickSearchInput = ({\n loading,\n inputValue,\n onFilter,\n placeholder,\n children,\n withSeparator: separator = true,\n}: Props) => {\n const { t } = useCunningham();\n\n if (children) {\n return (\n <>\n {children}\n {separator && <HorizontalSeparator />}\n </>\n );\n }\n\n return (\n <>\n <div className=\"quick-search-input-container\">\n {!loading && <span className=\"material-icons\">search</span>}\n {loading && (\n <div>\n <Spinner size=\"sm\" />\n </div>\n )}\n <Command.Input\n autoFocus={true}\n aria-label={t(\"Quick search input\")}\n onClick={(e) => {\n e.stopPropagation();\n }}\n role=\"combobox\"\n value={inputValue}\n placeholder={placeholder}\n onValueChange={onFilter}\n />\n </div>\n {separator && <HorizontalSeparator withPadding={false} />}\n </>\n );\n};\n","import { Children, ReactNode } from \"react\";\n\nexport const hasChildrens = (element: ReactNode): boolean => {\n let hasChildren = false;\n Children.forEach(element, (child: ReactNode) => {\n hasChildren = hasChildren || !!child;\n });\n return hasChildren;\n};\n","import { Command } from \"cmdk\";\nimport { ReactNode, useRef } from \"react\";\nimport { QuickSearchInput } from \"./QuickSearchInput\";\nimport { hasChildrens } from \":/utils/children\";\n\nexport type QuickSearchProps = {\n onFilter?: (str: string) => void;\n inputValue?: string;\n inputContent?: ReactNode;\n showInput?: boolean;\n loading?: boolean;\n label?: string;\n placeholder?: string;\n children?: ReactNode;\n};\n\nexport const QuickSearch = ({\n onFilter,\n inputContent,\n inputValue,\n loading,\n showInput = true,\n label,\n placeholder,\n children,\n}: QuickSearchProps) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n return (\n <>\n <div className=\"quick-search-container\">\n <Command label={label} shouldFilter={false} ref={ref}>\n {showInput && (\n <QuickSearchInput\n loading={loading}\n withSeparator={hasChildrens(children)}\n inputValue={inputValue}\n onFilter={onFilter}\n placeholder={placeholder}\n >\n {inputContent}\n </QuickSearchInput>\n )}\n <Command.List>\n <div>{children}</div>\n </Command.List>\n </Command>\n </div>\n </>\n );\n};\n","import { Command } from \"cmdk\";\nimport { PropsWithChildren } from \"react\";\n\ntype Props = {\n onSelect?: (value: string) => void;\n id?: string;\n};\nexport const QuickSearchItem = ({\n children,\n onSelect,\n id,\n}: PropsWithChildren<Props>) => {\n return (\n <Command.Item value={id} onSelect={onSelect}>\n {children}\n </Command.Item>\n );\n};\n","import { ReactNode } from \"react\";\nimport { Command } from \"cmdk\";\n\nimport { QuickSearchData } from \"./types\";\nimport { QuickSearchItem } from \"./QuickSearchItem\";\n\nexport type QuickSearchGroupProps<T> = {\n group: QuickSearchData<T>;\n renderElement?: (element: T) => ReactNode;\n onSelect?: (element: T) => void;\n};\n\nexport const QuickSearchGroup = <T,>({\n group,\n onSelect,\n renderElement,\n}: QuickSearchGroupProps<T>) => {\n if (!group.showWhenEmpty && group.elements.length === 0) {\n return null;\n }\n return (\n <div className=\"pt-base\">\n <Command.Group\n key={group.groupName}\n heading={group.groupName}\n forceMount={false}\n >\n {group.startActions?.map((action, index) => {\n return (\n <QuickSearchItem\n key={`${group.groupName}-action-${index}`}\n onSelect={action.onSelect}\n >\n {action.content}\n </QuickSearchItem>\n );\n })}\n {group.elements.map((groupElement, index) => {\n return (\n <QuickSearchItem\n id={`${group.groupName}-element-${index}`}\n key={`${group.groupName}-element-${index}`}\n onSelect={() => {\n onSelect?.(groupElement);\n }}\n >\n {renderElement?.(groupElement)}\n </QuickSearchItem>\n );\n })}\n {group.endActions?.map((action, index) => {\n return (\n <QuickSearchItem\n key={`${group.groupName}-action-${index}`}\n onSelect={action.onSelect}\n >\n {action.content}\n </QuickSearchItem>\n );\n })}\n {group.emptyString && group.elements.length === 0 && (\n <span className=\"ml-b clr-greyscale-500\">{group.emptyString}</span>\n )}\n </Command.Group>\n </div>\n );\n};\n","import { useResponsive } from \":/hooks/useResponsive\";\nimport clsx from \"clsx\";\nimport { ReactNode } from \"react\";\n\nexport type QuickSearchItemTemplateProps = {\n alwaysShowRight?: boolean;\n left: ReactNode;\n right?: ReactNode;\n};\n\nexport const QuickSearchItemTemplate = ({\n alwaysShowRight,\n left,\n right,\n}: QuickSearchItemTemplateProps) => {\n const { isDesktop } = useResponsive();\n return (\n <div className=\"c__quick-search-item-template\">\n <div className=\"c__quick-search-item-template__left\">{left}</div>\n\n {isDesktop && right && (\n <div\n className={clsx(\"c__quick-search-item-template__right\", {\n \"show-right-on-focus\": alwaysShowRight,\n })}\n >\n {right}\n </div>\n )}\n </div>\n );\n};\n","import { Tabs, TabList, Tab, TabPanel } from \"react-aria-components\";\nimport { TabData } from \"./types\";\nimport clsx from \"clsx\";\n\nexport type TabsProps = {\n tabs: TabData[];\n defaultSelectedTab?: string;\n fullWidth?: boolean;\n};\n\nexport const CustomTabs = ({\n tabs,\n defaultSelectedTab,\n fullWidth = false,\n}: TabsProps) => {\n if (tabs.length === 0) {\n return null;\n }\n\n return (\n <div\n className={clsx(\"c__tabs\", {\n \"c__tabs__full-width\": fullWidth,\n })}\n >\n <Tabs defaultSelectedKey={defaultSelectedTab}>\n <TabList aria-label=\"History of Ancient Rome\">\n {tabs.map((tab) => (\n <Tab key={tab.id} id={tab.id}>\n {tab.icon && <span className=\"material-icons\">{tab.icon}</span>}\n {tab.label}\n </Tab>\n ))}\n </TabList>\n {tabs.map((tab) => (\n <TabPanel key={tab.id} id={tab.id}>\n {tab.content}\n </TabPanel>\n ))}\n </Tabs>\n </div>\n );\n};\n","import { createContext, useContext } from \"react\";\nexport const TreeApiContext = createContext(null);\nexport function useTreeApi() {\n const value = useContext(TreeApiContext);\n if (value === null)\n throw new Error(\"No Tree Api Provided\");\n return value;\n}\nexport const NodesContext = createContext(null);\nexport function useNodesContext() {\n const value = useContext(NodesContext);\n if (value === null)\n throw new Error(\"Provide a NodesContext\");\n return value;\n}\nexport const DndContext = createContext(null);\nexport function useDndContext() {\n const value = useContext(DndContext);\n if (value === null)\n throw new Error(\"Provide a DnDContext\");\n return value;\n}\nexport const DataUpdatesContext = createContext(0);\nexport function useDataUpdates() {\n useContext(DataUpdatesContext);\n}\n","export function bound(n, min, max) {\n return Math.max(Math.min(n, max), min);\n}\nexport function isItem(node) {\n return node && node.isLeaf;\n}\nexport function isClosed(node) {\n return node && node.isInternal && !node.isOpen;\n}\nexport function isOpenWithEmptyChildren(node) {\n var _a;\n return node && node.isOpen && !((_a = node.children) === null || _a === void 0 ? void 0 : _a.length);\n}\n/**\n * Is first param a descendant of the second param\n */\nexport const isDescendant = (a, b) => {\n let n = a;\n while (n) {\n if (n.id === b.id)\n return true;\n n = n.parent;\n }\n return false;\n};\nexport const indexOf = (node) => {\n if (!node.parent)\n throw Error(\"Node does not have a parent\");\n return node.parent.children.findIndex((c) => c.id === node.id);\n};\nexport function noop() { }\nexport function dfs(node, id) {\n if (!node)\n return null;\n if (node.id === id)\n return node;\n if (node.children) {\n for (let child of node.children) {\n const result = dfs(child, id);\n if (result)\n return result;\n }\n }\n return null;\n}\nexport function walk(node, fn) {\n fn(node);\n if (node.children) {\n for (let child of node.children) {\n walk(child, fn);\n }\n }\n}\nexport function focusNextElement(target) {\n const elements = getFocusable(target);\n let next;\n for (let i = 0; i < elements.length; ++i) {\n const item = elements[i];\n if (item === target) {\n next = nextItem(elements, i);\n break;\n }\n }\n // @ts-ignore ??\n next === null || next === void 0 ? void 0 : next.focus();\n}\nexport function focusPrevElement(target) {\n const elements = getFocusable(target);\n let next;\n for (let i = 0; i < elements.length; ++i) {\n const item = elements[i];\n if (item === target) {\n next = prevItem(elements, i);\n break;\n }\n }\n // @ts-ignore\n next === null || next === void 0 ? void 0 : next.focus();\n}\nfunction nextItem(list, index) {\n if (index + 1 < list.length) {\n return list[index + 1];\n }\n else {\n return list[0];\n }\n}\nfunction prevItem(list, index) {\n if (index - 1 >= 0) {\n return list[index - 1];\n }\n else {\n return list[list.length - 1];\n }\n}\nfunction getFocusable(target) {\n return Array.from(document.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled]), details:not([disabled]), summary:not(:disabled)')).filter((e) => e === target || !target.contains(e));\n}\nexport function access(obj, accessor) {\n if (typeof accessor === \"boolean\")\n return accessor;\n if (typeof accessor === \"string\")\n return obj[accessor];\n return accessor(obj);\n}\nexport function identifyNull(obj) {\n if (obj === null)\n return null;\n else\n return identify(obj);\n}\nexport function identify(obj) {\n return typeof obj === \"string\" ? obj : obj.id;\n}\nexport function mergeRefs(...refs) {\n return (instance) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(instance);\n }\n else if (ref != null) {\n ref.current = instance;\n }\n });\n };\n}\nexport function safeRun(fn, ...args) {\n if (fn)\n return fn(...args);\n}\nexport function waitFor(fn) {\n return new Promise((resolve, reject) => {\n let tries = 0;\n function check() {\n tries += 1;\n if (tries === 100)\n reject();\n if (fn())\n resolve();\n else\n setTimeout(check, 10);\n }\n check();\n });\n}\nexport function getInsertIndex(tree) {\n var _a, _b;\n const focus = tree.focusedNode;\n if (!focus)\n return (_b = (_a = tree.root.children) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;\n if (focus.isOpen)\n return 0;\n if (focus.parent)\n return focus.childIndex + 1;\n return 0;\n}\nexport function getInsertParentId(tree) {\n const focus = tree.focusedNode;\n if (!focus)\n return null;\n if (focus.isOpen)\n return focus.id;\n if (focus.parent && !focus.parent.isRoot)\n return focus.parent.id;\n return null;\n}\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React from \"react\";\nconst placeholderStyle = {\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n};\nconst lineStyle = {\n flex: 1,\n height: \"2px\",\n background: \"#4B91E2\",\n borderRadius: \"1px\",\n};\nconst circleStyle = {\n width: \"4px\",\n height: \"4px\",\n boxShadow: \"0 0 0 3px #4B91E2\",\n borderRadius: \"50%\",\n};\nexport const DefaultCursor = React.memo(function DefaultCursor({ top, left, indent, }) {\n const style = {\n position: \"absolute\",\n pointerEvents: \"none\",\n top: top - 2 + \"px\",\n left: left + \"px\",\n right: indent + \"px\",\n };\n return (_jsxs(\"div\", { style: Object.assign(Object.assign({}, placeholderStyle), style), children: [_jsx(\"div\", { style: Object.assign({}, circleStyle) }), _jsx(\"div\", { style: Object.assign({}, lineStyle) })] }));\n});\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function DefaultRow({ node, attrs, innerRef, children, }) {\n return (_jsx(\"div\", Object.assign({}, attrs, { ref: innerRef, onFocus: (e) => e.stopPropagation(), onClick: node.handleClick, children: children })));\n}\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useEffect, useRef } from \"react\";\nexport function DefaultNode(props) {\n return (_jsxs(\"div\", { ref: props.dragHandle, style: props.style, children: [_jsx(\"span\", { onClick: (e) => {\n e.stopPropagation();\n props.node.toggle();\n }, children: props.node.isLeaf ? \"🌳\" : props.node.isOpen ? \"🗁\" : \"🗀\" }), \" \", props.node.isEditing ? _jsx(Edit, Object.assign({}, props)) : _jsx(Show, Object.assign({}, props))] }));\n}\nfunction Show(props) {\n return (_jsx(_Fragment, { children: _jsx(\"span\", { children: props.node.data.name }) }));\n}\nfunction Edit({ node }) {\n const input = useRef();\n useEffect(() => {\n var _a, _b;\n (_a = input.current) === null || _a === void 0 ? void 0 : _a.focus();\n (_b = input.current) === null || _b === void 0 ? void 0 : _b.select();\n }, []);\n return (_jsx(\"input\", { ref: input, \n // @ts-ignore\n defaultValue: node.data.name, onBlur: () => node.reset(), onKeyDown: (e) => {\n var _a;\n if (e.key === \"Escape\")\n node.reset();\n if (e.key === \"Enter\")\n node.submit(((_a = input.current) === null || _a === void 0 ? void 0 : _a.value) || \"\");\n } }));\n}\n","/* Actions */\nexport function edit(id) {\n return { type: \"EDIT\", id };\n}\n/* Reducer */\nexport function reducer(state = { id: null }, action) {\n if (action.type === \"EDIT\") {\n return Object.assign(Object.assign({}, state), { id: action.id });\n }\n else {\n return state;\n }\n}\n","/* Types */\n/* Actions */\nexport function focus(id) {\n return { type: \"FOCUS\", id };\n}\nexport function treeBlur() {\n return { type: \"TREE_BLUR\" };\n}\n/* Reducer */\nexport function reducer(state = { id: null, treeFocused: false }, action) {\n if (action.type === \"FOCUS\") {\n return Object.assign(Object.assign({}, state), { id: action.id, treeFocused: true });\n }\n else if (action.type === \"TREE_BLUR\") {\n return Object.assign(Object.assign({}, state), { treeFocused: false });\n }\n else {\n return state;\n }\n}\n","import { ROOT_ID } from \"../data/create-root\";\nexport class NodeApi {\n constructor(params) {\n this.handleClick = (e) => {\n if (e.metaKey && !this.tree.props.disableMultiSelection) {\n this.isSelected ? this.deselect() : this.selectMulti();\n }\n else if (e.shiftKey && !this.tree.props.disableMultiSelection) {\n this.selectContiguous();\n }\n else {\n this.select();\n this.activate();\n }\n };\n this.tree = params.tree;\n this.id = params.id;\n this.data = params.data;\n this.level = params.level;\n this.children = params.children;\n this.parent = params.parent;\n this.isDraggable = params.isDraggable;\n this.rowIndex = params.rowIndex;\n }\n get isRoot() {\n return this.id === ROOT_ID;\n }\n get isLeaf() {\n return !Array.isArray(this.children);\n }\n get isInternal() {\n return !this.isLeaf;\n }\n get isOpen() {\n return this.isLeaf ? false : this.tree.isOpen(this.id);\n }\n get isClosed() {\n return this.isLeaf ? false : !this.tree.isOpen(this.id);\n }\n get isEditable() {\n return this.tree.isEditable(this.data);\n }\n get isEditing() {\n return this.tree.editingId === this.id;\n }\n get isSelected() {\n return this.tree.isSelected(this.id);\n }\n get isOnlySelection() {\n return this.isSelected && this.tree.hasOneSelection;\n }\n get isSelectedStart() {\n var _a;\n return this.isSelected && !((_a = this.prev) === null || _a === void 0 ? void 0 : _a.isSelected);\n }\n get isSelectedEnd() {\n var _a;\n return this.isSelected && !((_a = this.next) === null || _a === void 0 ? void 0 : _a.isSelected);\n }\n get isFocused() {\n return this.tree.isFocused(this.id);\n }\n get isDragging() {\n return this.tree.isDragging(this.id);\n }\n get willReceiveDrop() {\n return this.tree.willReceiveDrop(this.id);\n }\n get state() {\n return {\n isClosed: this.isClosed,\n isDragging: this.isDragging,\n isEditing: this.isEditing,\n isFocused: this.isFocused,\n isInternal: this.isInternal,\n isLeaf: this.isLeaf,\n isOpen: this.isOpen,\n isSelected: this.isSelected,\n isSelectedEnd: this.isSelectedEnd,\n isSelectedStart: this.isSelectedStart,\n willReceiveDrop: this.willReceiveDrop,\n };\n }\n get childIndex() {\n if (this.parent && this.parent.children) {\n return this.parent.children.findIndex((child) => child.id === this.id);\n }\n else {\n return -1;\n }\n }\n get next() {\n if (this.rowIndex === null)\n return null;\n return this.tree.at(this.rowIndex + 1);\n }\n get prev() {\n if (this.rowIndex === null)\n return null;\n return this.tree.at(this.rowIndex - 1);\n }\n get nextSibling() {\n var _a, _b;\n const i = this.childIndex;\n return (_b = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children[i + 1]) !== null && _b !== void 0 ? _b : null;\n }\n isAncestorOf(node) {\n if (!node)\n return false;\n let ancestor = node;\n while (ancestor) {\n if (ancestor.id === this.id)\n return true;\n ancestor = ancestor.parent;\n }\n return false;\n }\n select() {\n this.tree.select(this);\n }\n deselect() {\n this.tree.deselect(this);\n }\n selectMulti() {\n this.tree.selectMulti(this);\n }\n selectContiguous() {\n this.tree.selectContiguous(this);\n }\n activate() {\n this.tree.activate(this);\n }\n focus() {\n this.tree.focus(this);\n }\n toggle() {\n this.tree.toggle(this);\n }\n open() {\n this.tree.open(this);\n }\n openParents() {\n this.tree.openParents(this);\n }\n close() {\n this.tree.close(this);\n }\n submit(value) {\n this.tree.submit(this, value);\n }\n reset() {\n this.tree.reset();\n }\n clone() {\n return new NodeApi(Object.assign({}, this));\n }\n edit() {\n return this.tree.edit(this);\n }\n}\n","import { NodeApi } from \"../interfaces/node-api\";\nexport const ROOT_ID = \"__REACT_ARBORIST_INTERNAL_ROOT__\";\nexport function createRoot(tree) {\n var _a;\n function visitSelfAndChildren(data, level, parent) {\n const id = tree.accessId(data);\n const node = new NodeApi({\n tree,\n data,\n level,\n parent,\n id,\n children: null,\n isDraggable: tree.isDraggable(data),\n rowIndex: null,\n });\n const children = tree.accessChildren(data);\n if (children) {\n node.children = children.map((child) => visitSelfAndChildren(child, level + 1, node));\n }\n return node;\n }\n const root = new NodeApi({\n tree,\n id: ROOT_ID,\n // @ts-ignore\n data: { id: ROOT_ID },\n level: -1,\n parent: null,\n children: null,\n isDraggable: true,\n rowIndex: null,\n });\n const data = (_a = tree.props.data) !== null && _a !== void 0 ? _a : [];\n root.children = data.map((child) => {\n return visitSelfAndChildren(child, 0, root);\n });\n return root;\n}\n","/* Actions */\nexport const actions = {\n open(id, filtered) {\n return { type: \"VISIBILITY_OPEN\", id, filtered };\n },\n close(id, filtered) {\n return { type: \"VISIBILITY_CLOSE\", id, filtered };\n },\n toggle(id, filtered) {\n return { type: \"VISIBILITY_TOGGLE\", id, filtered };\n },\n clear(filtered) {\n return { type: \"VISIBILITY_CLEAR\", filtered };\n },\n};\n/* Reducer */\nfunction openMapReducer(state = {}, action) {\n if (action.type === \"VISIBILITY_OPEN\") {\n return Object.assign(Object.assign({}, state), { [action.id]: true });\n }\n else if (action.type === \"VISIBILITY_CLOSE\") {\n return Object.assign(Object.assign({}, state), { [action.id]: false });\n }\n else if (action.type === \"VISIBILITY_TOGGLE\") {\n const prev = state[action.id];\n return Object.assign(Object.assign({}, state), { [action.id]: !prev });\n }\n else if (action.type === \"VISIBILITY_CLEAR\") {\n return {};\n }\n else {\n return state;\n }\n}\nexport function reducer(state = { filtered: {}, unfiltered: {} }, action) {\n if (!action.type.startsWith(\"VISIBILITY\"))\n return state;\n if (action.filtered) {\n return Object.assign(Object.assign({}, state), { filtered: openMapReducer(state.filtered, action) });\n }\n else {\n return Object.assign(Object.assign({}, state), { unfiltered: openMapReducer(state.unfiltered, action) });\n }\n}\n","export const initialState = (props) => {\n var _a;\n return ({\n nodes: {\n // Changes together\n open: { filtered: {}, unfiltered: (_a = props === null || props === void 0 ? void 0 : props.initialOpenState) !== null && _a !== void 0 ? _a : {} },\n focus: { id: null, treeFocused: false },\n edit: { id: null },\n drag: {\n id: null,\n selectedIds: [],\n destinationParentId: null,\n destinationIndex: null,\n },\n selection: { ids: new Set(), anchor: null, mostRecent: null },\n },\n dnd: {\n cursor: { type: \"none\" },\n dragId: null,\n dragIds: [],\n parentId: null,\n index: -1,\n },\n });\n};\n","import { identify } from \"../utils\";\nimport { initialState } from \"./initial\";\n/* Actions */\nexport const actions = {\n clear: () => ({ type: \"SELECTION_CLEAR\" }),\n only: (id) => ({\n type: \"SELECTION_ONLY\",\n id: identify(id),\n }),\n add: (id) => ({\n type: \"SELECTION_ADD\",\n ids: (Array.isArray(id) ? id : [id]).map(identify),\n }),\n remove: (id) => ({\n type: \"SELECTION_REMOVE\",\n ids: (Array.isArray(id) ? id : [id]).map(identify),\n }),\n set: (args) => (Object.assign({ type: \"SELECTION_SET\" }, args)),\n mostRecent: (id) => ({\n type: \"SELECTION_MOST_RECENT\",\n id: id === null ? null : identify(id),\n }),\n anchor: (id) => ({\n type: \"SELECTION_ANCHOR\",\n id: id === null ? null : identify(id),\n }),\n};\n/* Reducer */\nexport function reducer(state = initialState()[\"nodes\"][\"selection\"], action) {\n const ids = state.ids;\n switch (action.type) {\n case \"SELECTION_CLEAR\":\n return Object.assign(Object.assign({}, state), { ids: new Set() });\n case \"SELECTION_ONLY\":\n return Object.assign(Object.assign({}, state), { ids: new Set([action.id]) });\n case \"SELECTION_ADD\":\n if (action.ids.length === 0)\n return state;\n action.ids.forEach((id) => ids.add(id));\n return Object.assign(Object.assign({}, state), { ids: new Set(ids) });\n case \"SELECTION_REMOVE\":\n if (action.ids.length === 0)\n return state;\n action.ids.forEach((id) => ids.delete(id));\n return Object.assign(Object.assign({}, state), { ids: new Set(ids) });\n case \"SELECTION_SET\":\n return Object.assign(Object.assign({}, state), { ids: action.ids, mostRecent: action.mostRecent, anchor: action.anchor });\n case \"SELECTION_MOST_RECENT\":\n return Object.assign(Object.assign({}, state), { mostRecent: action.id });\n case \"SELECTION_ANCHOR\":\n return Object.assign(Object.assign({}, state), { anchor: action.id });\n default:\n return state;\n }\n}\n","import { initialState } from \"./initial\";\n/* Actions */\nexport const actions = {\n cursor(cursor) {\n return { type: \"DND_CURSOR\", cursor };\n },\n dragStart(id, dragIds) {\n return { type: \"DND_DRAG_START\", id, dragIds };\n },\n dragEnd() {\n return { type: \"DND_DRAG_END\" };\n },\n hovering(parentId, index) {\n return { type: \"DND_HOVERING\", parentId, index };\n },\n};\n/* Reducer */\nexport function reducer(state = initialState()[\"dnd\"], action) {\n switch (action.type) {\n case \"DND_CURSOR\":\n return Object.assign(Object.assign({}, state), { cursor: action.cursor });\n case \"DND_DRAG_START\":\n return Object.assign(Object.assign({}, state), { dragId: action.id, dragIds: action.dragIds });\n case \"DND_DRAG_END\":\n return initialState()[\"dnd\"];\n case \"DND_HOVERING\":\n return Object.assign(Object.assign({}, state), { parentId: action.parentId, index: action.index });\n default:\n return state;\n }\n}\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { memo } from \"react\";\nimport { useTreeApi } from \"../context\";\nconst layerStyles = {\n position: \"fixed\",\n pointerEvents: \"none\",\n zIndex: 100,\n left: 0,\n top: 0,\n width: \"100%\",\n height: \"100%\",\n};\nconst getStyle = (offset) => {\n if (!offset)\n return { display: \"none\" };\n const { x, y } = offset;\n return { transform: `translate(${x}px, ${y}px)` };\n};\nconst getCountStyle = (offset) => {\n if (!offset)\n return { display: \"none\" };\n const { x, y } = offset;\n return { transform: `translate(${x + 10}px, ${y + 10}px)` };\n};\nexport function DefaultDragPreview({ offset, mouse, id, dragIds, isDragging, }) {\n return (_jsxs(Overlay, { isDragging: isDragging, children: [_jsx(Position, { offset: offset, children: _jsx(PreviewNode, { id: id, dragIds: dragIds }) }), _jsx(Count, { mouse: mouse, count: dragIds.length })] }));\n}\nconst Overlay = memo(function Overlay(props) {\n if (!props.isDragging)\n return null;\n return _jsx(\"div\", { style: layerStyles, children: props.children });\n});\nfunction Position(props) {\n return (_jsx(\"div\", { className: \"row preview\", style: getStyle(props.offset), children: props.children }));\n}\nfunction Count(props) {\n const { count, mouse } = props;\n if (count > 1)\n return (_jsx(\"div\", { className: \"selected-count\", style: getCountStyle(mouse), children: count }));\n else\n return null;\n}\nconst PreviewNode = memo(function PreviewNode(props) {\n const tree = useTreeApi();\n const node = tree.get(props.id);\n if (!node)\n return null;\n return (_jsx(tree.renderNode, { preview: true, node: node, style: {\n paddingLeft: node.level * tree.indent,\n opacity: 0.2,\n background: \"transparent\",\n }, tree: tree }));\n});\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\nvar now = hasNativePerformanceNow ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nfunction cancelTimeout(timeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\nfunction requestTimeout(callback, delay) {\n var start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n var timeoutID = {\n id: requestAnimationFrame(tick)\n };\n return timeoutID;\n}\n\nvar size = -1; // This utility copied from \"dom-helpers\" package.\n\nfunction getScrollbarSize(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (size === -1 || recalculate) {\n var div = document.createElement('div');\n var style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n document.body.appendChild(div);\n size = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return size;\n}\nvar cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\n\nfunction getRTLOffsetType(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (cachedRTLResult === null || recalculate) {\n var outerDiv = document.createElement('div');\n var outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n var innerDiv = document.createElement('div');\n var innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n outerDiv.appendChild(innerDiv);\n document.body.appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n document.body.removeChild(outerDiv);\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nvar defaultItemKey = function defaultItemKey(_ref) {\n var columnIndex = _ref.columnIndex,\n data = _ref.data,\n rowIndex = _ref.rowIndex;\n return rowIndex + \":\" + columnIndex;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsOverscanCount = null;\nvar devWarningsOverscanRowsColumnsCount = null;\nvar devWarningsTagName = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount = /*#__PURE__*/new WeakSet();\n devWarningsOverscanRowsColumnsCount = /*#__PURE__*/new WeakSet();\n devWarningsTagName = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createGridComponent(_ref2) {\n var _class;\n\n var getColumnOffset = _ref2.getColumnOffset,\n getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex,\n getColumnWidth = _ref2.getColumnWidth,\n getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight,\n getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment,\n getRowHeight = _ref2.getRowHeight,\n getRowOffset = _ref2.getRowOffset,\n getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset,\n getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex,\n initInstanceProps = _ref2.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref2.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(Grid, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function Grid(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._resetIsScrollingTimeoutId = null;\n _this._outerRef = void 0;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft: typeof _this.props.initialScrollLeft === 'number' ? _this.props.initialScrollLeft : 0,\n scrollTop: typeof _this.props.initialScrollTop === 'number' ? _this.props.initialScrollTop : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward'\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) {\n return _this.props.onItemsRendered({\n overscanColumnStartIndex: overscanColumnStartIndex,\n overscanColumnStopIndex: overscanColumnStopIndex,\n overscanRowStartIndex: overscanRowStartIndex,\n overscanRowStopIndex: overscanRowStopIndex,\n visibleColumnStartIndex: visibleColumnStartIndex,\n visibleColumnStopIndex: visibleColumnStopIndex,\n visibleRowStartIndex: visibleRowStartIndex,\n visibleRowStopIndex: visibleRowStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n horizontalScrollDirection: horizontalScrollDirection,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n verticalScrollDirection: verticalScrollDirection,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (rowIndex, columnIndex) {\n var _this$props = _this.props,\n columnWidth = _this$props.columnWidth,\n direction = _this$props.direction,\n rowHeight = _this$props.rowHeight;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight);\n\n var key = rowIndex + \":\" + columnIndex;\n var style;\n\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps);\n\n var isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : _offset,\n right: isRtl ? _offset : undefined,\n top: getRowOffset(_this.props, rowIndex, _this._instanceProps),\n height: getRowHeight(_this.props, rowIndex, _this._instanceProps),\n width: getColumnWidth(_this.props, columnIndex, _this._instanceProps)\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScroll = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientHeight = _event$currentTarget.clientHeight,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop,\n scrollHeight = _event$currentTarget.scrollHeight,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n\n var calculatedScrollLeft = scrollLeft;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth));\n var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1);\n });\n };\n\n return _this;\n }\n\n Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = Grid.prototype;\n\n _proto.scrollTo = function scrollTo(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(function (prevState) {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n return null;\n }\n\n return {\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward'\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(_ref4) {\n var _ref4$align = _ref4.align,\n align = _ref4$align === void 0 ? 'auto' : _ref4$align,\n columnIndex = _ref4.columnIndex,\n rowIndex = _ref4.rowIndex;\n var _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n height = _this$props2.height,\n rowCount = _this$props2.rowCount,\n width = _this$props2.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n var scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n\n var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0;\n var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0;\n this.scrollTo({\n scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, verticalScrollbarSize) : scrollLeft,\n scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop\n });\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n initialScrollLeft = _this$props3.initialScrollLeft,\n initialScrollTop = _this$props3.initialScrollTop;\n\n if (this._outerRef != null) {\n var outerRef = this._outerRef;\n\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var direction = this.props.direction;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollTop = _this$state2.scrollTop,\n scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n var outerRef = this._outerRef;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n columnCount = _this$props4.columnCount,\n direction = _this$props4.direction,\n height = _this$props4.height,\n innerRef = _this$props4.innerRef,\n innerElementType = _this$props4.innerElementType,\n innerTagName = _this$props4.innerTagName,\n itemData = _this$props4.itemData,\n _this$props4$itemKey = _this$props4.itemKey,\n itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey,\n outerElementType = _this$props4.outerElementType,\n outerTagName = _this$props4.outerTagName,\n rowCount = _this$props4.rowCount,\n style = _this$props4.style,\n useIsScrolling = _this$props4.useIsScrolling,\n width = _this$props4.width;\n var isScrolling = this.state.isScrolling;\n\n var _this$_getHorizontalR = this._getHorizontalRangeToRender(),\n columnStartIndex = _this$_getHorizontalR[0],\n columnStopIndex = _this$_getHorizontalR[1];\n\n var _this$_getVerticalRan = this._getVerticalRangeToRender(),\n rowStartIndex = _this$_getVerticalRan[0],\n rowStopIndex = _this$_getVerticalRan[1];\n\n var items = [];\n\n if (columnCount > 0 && rowCount) {\n for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) {\n for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) {\n items.push(createElement(children, {\n columnIndex: _columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({\n columnIndex: _columnIndex,\n data: itemData,\n rowIndex: _rowIndex\n }),\n rowIndex: _rowIndex,\n style: this._getItemStyle(_rowIndex, _columnIndex)\n }));\n }\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n var _this$props5 = this.props,\n columnCount = _this$props5.columnCount,\n onItemsRendered = _this$props5.onItemsRendered,\n onScroll = _this$props5.onScroll,\n rowCount = _this$props5.rowCount;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(),\n _overscanColumnStartIndex = _this$_getHorizontalR2[0],\n _overscanColumnStopIndex = _this$_getHorizontalR2[1],\n _visibleColumnStartIndex = _this$_getHorizontalR2[2],\n _visibleColumnStopIndex = _this$_getHorizontalR2[3];\n\n var _this$_getVerticalRan2 = this._getVerticalRangeToRender(),\n _overscanRowStartIndex = _this$_getVerticalRan2[0],\n _overscanRowStopIndex = _this$_getVerticalRan2[1],\n _visibleRowStartIndex = _this$_getVerticalRan2[2],\n _visibleRowStopIndex = _this$_getVerticalRan2[3];\n\n this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex);\n }\n }\n\n if (typeof onScroll === 'function') {\n var _this$state3 = this.state,\n _horizontalScrollDirection = _this$state3.horizontalScrollDirection,\n _scrollLeft = _this$state3.scrollLeft,\n _scrollTop = _this$state3.scrollTop,\n _scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested,\n _verticalScrollDirection = _this$state3.verticalScrollDirection;\n\n this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() {\n var _this$props6 = this.props,\n columnCount = _this$props6.columnCount,\n overscanColumnCount = _this$props6.overscanColumnCount,\n overscanColumnsCount = _this$props6.overscanColumnsCount,\n overscanCount = _this$props6.overscanCount,\n rowCount = _this$props6.rowCount;\n var _this$state4 = this.state,\n horizontalScrollDirection = _this$state4.horizontalScrollDirection,\n isScrolling = _this$state4.isScrolling,\n scrollLeft = _this$state4.scrollLeft;\n var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps);\n var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || horizontalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || horizontalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n _proto._getVerticalRangeToRender = function _getVerticalRangeToRender() {\n var _this$props7 = this.props,\n columnCount = _this$props7.columnCount,\n overscanCount = _this$props7.overscanCount,\n overscanRowCount = _this$props7.overscanRowCount,\n overscanRowsCount = _this$props7.overscanRowsCount,\n rowCount = _this$props7.rowCount;\n var _this$state5 = this.state,\n isScrolling = _this$state5.isScrolling,\n verticalScrollDirection = _this$state5.verticalScrollDirection,\n scrollTop = _this$state5.scrollTop;\n var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps);\n var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || verticalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || verticalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return Grid;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false\n }, _class;\n}\n\nvar validateSharedProps = function validateSharedProps(_ref5, _ref6) {\n var children = _ref5.children,\n direction = _ref5.direction,\n height = _ref5.height,\n innerTagName = _ref5.innerTagName,\n outerTagName = _ref5.outerTagName,\n overscanColumnsCount = _ref5.overscanColumnsCount,\n overscanCount = _ref5.overscanCount,\n overscanRowsCount = _ref5.overscanRowsCount,\n width = _ref5.width;\n var instance = _ref6.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn('The overscanCount prop has been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (typeof overscanColumnsCount === 'number' || typeof overscanRowsCount === 'number') {\n if (devWarningsOverscanRowsColumnsCount && !devWarningsOverscanRowsColumnsCount.has(instance)) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn('The overscanColumnsCount and overscanRowsCount props have been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n if (typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Grids must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n }\n\n if (typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Grids must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE = 50;\n\nvar getEstimatedTotalHeight = function getEstimatedTotalHeight(_ref, _ref2) {\n var rowCount = _ref.rowCount;\n var rowMetadataMap = _ref2.rowMetadataMap,\n estimatedRowHeight = _ref2.estimatedRowHeight,\n lastMeasuredRowIndex = _ref2.lastMeasuredRowIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredRowIndex >= rowCount) {\n lastMeasuredRowIndex = rowCount - 1;\n }\n\n if (lastMeasuredRowIndex >= 0) {\n var itemMetadata = rowMetadataMap[lastMeasuredRowIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = rowCount - lastMeasuredRowIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedRowHeight;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getEstimatedTotalWidth = function getEstimatedTotalWidth(_ref3, _ref4) {\n var columnCount = _ref3.columnCount;\n var columnMetadataMap = _ref4.columnMetadataMap,\n estimatedColumnWidth = _ref4.estimatedColumnWidth,\n lastMeasuredColumnIndex = _ref4.lastMeasuredColumnIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredColumnIndex >= columnCount) {\n lastMeasuredColumnIndex = columnCount - 1;\n }\n\n if (lastMeasuredColumnIndex >= 0) {\n var itemMetadata = columnMetadataMap[lastMeasuredColumnIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = columnCount - lastMeasuredColumnIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedColumnWidth;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getItemMetadata = function getItemMetadata(itemType, props, index, instanceProps) {\n var itemMetadataMap, itemSize, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n itemSize = props.columnWidth;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n itemSize = props.rowHeight;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n if (itemType === 'column') {\n instanceProps.lastMeasuredColumnIndex = index;\n } else {\n instanceProps.lastMeasuredRowIndex = index;\n }\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem = function findNearestItem(itemType, props, instanceProps, offset) {\n var itemMetadataMap, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch(itemType, props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch(itemType, props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch = function findNearestItemBinarySearch(itemType, props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata(itemType, props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch = function findNearestItemExponentialSearch(itemType, props, instanceProps, index, offset) {\n var itemCount = itemType === 'column' ? props.columnCount : props.rowCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata(itemType, props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch(itemType, props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getOffsetForIndexAndAlignment = function getOffsetForIndexAndAlignment(itemType, props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var size = itemType === 'column' ? props.width : props.height;\n var itemMetadata = getItemMetadata(itemType, props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = itemType === 'column' ? getEstimatedTotalWidth(props, instanceProps) : getEstimatedTotalHeight(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + scrollbarSize + itemMetadata.size);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n};\n\nvar VariableSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(props, index, instanceProps) {\n return getItemMetadata('column', props, index, instanceProps).offset;\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(props, scrollLeft, instanceProps) {\n return findNearestItem('column', props, instanceProps, scrollLeft);\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, instanceProps) {\n var columnCount = props.columnCount,\n width = props.width;\n var itemMetadata = getItemMetadata('column', props, startIndex, instanceProps);\n var maxOffset = scrollLeft + width;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < columnCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('column', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n getColumnWidth: function getColumnWidth(props, index, instanceProps) {\n return instanceProps.columnMetadataMap[index].size;\n },\n getEstimatedTotalHeight: getEstimatedTotalHeight,\n getEstimatedTotalWidth: getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('column', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('row', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getRowOffset: function getRowOffset(props, index, instanceProps) {\n return getItemMetadata('row', props, index, instanceProps).offset;\n },\n getRowHeight: function getRowHeight(props, index, instanceProps) {\n return instanceProps.rowMetadataMap[index].size;\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(props, scrollTop, instanceProps) {\n return findNearestItem('row', props, instanceProps, scrollTop);\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(props, startIndex, scrollTop, instanceProps) {\n var rowCount = props.rowCount,\n height = props.height;\n var itemMetadata = getItemMetadata('row', props, startIndex, instanceProps);\n var maxOffset = scrollTop + height;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < rowCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('row', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref5 = props,\n estimatedColumnWidth = _ref5.estimatedColumnWidth,\n estimatedRowHeight = _ref5.estimatedRowHeight;\n var instanceProps = {\n columnMetadataMap: {},\n estimatedColumnWidth: estimatedColumnWidth || DEFAULT_ESTIMATED_ITEM_SIZE,\n estimatedRowHeight: estimatedRowHeight || DEFAULT_ESTIMATED_ITEM_SIZE,\n lastMeasuredColumnIndex: -1,\n lastMeasuredRowIndex: -1,\n rowMetadataMap: {}\n };\n\n instance.resetAfterColumnIndex = function (columnIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n columnIndex: columnIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterRowIndex = function (rowIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n rowIndex: rowIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterIndices = function (_ref6) {\n var columnIndex = _ref6.columnIndex,\n rowIndex = _ref6.rowIndex,\n _ref6$shouldForceUpda = _ref6.shouldForceUpdate,\n shouldForceUpdate = _ref6$shouldForceUpda === void 0 ? true : _ref6$shouldForceUpda;\n\n if (typeof columnIndex === 'number') {\n instanceProps.lastMeasuredColumnIndex = Math.min(instanceProps.lastMeasuredColumnIndex, columnIndex - 1);\n }\n\n if (typeof rowIndex === 'number') {\n instanceProps.lastMeasuredRowIndex = Math.min(instanceProps.lastMeasuredRowIndex, rowIndex - 1);\n } // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref7) {\n var columnWidth = _ref7.columnWidth,\n rowHeight = _ref7.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'function') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n } else if (typeof rowHeight !== 'function') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150;\n\nvar defaultItemKey$1 = function defaultItemKey(index, data) {\n return index;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsDirection = null;\nvar devWarningsTagName$1 = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = /*#__PURE__*/new WeakSet();\n devWarningsTagName$1 = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createListComponent(_ref) {\n var _class;\n\n var getItemOffset = _ref.getItemOffset,\n getEstimatedTotalSize = _ref.getEstimatedTotalSize,\n getItemSize = _ref.getItemSize,\n getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment,\n getStartIndexForOffset = _ref.getStartIndexForOffset,\n getStopIndexForStartIndex = _ref.getStopIndexForStartIndex,\n initInstanceProps = _ref.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(List, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function List(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._outerRef = void 0;\n _this._resetIsScrollingTimeoutId = null;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset: typeof _this.props.initialScrollOffset === 'number' ? _this.props.initialScrollOffset : 0,\n scrollUpdateWasRequested: false\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) {\n return _this.props.onItemsRendered({\n overscanStartIndex: overscanStartIndex,\n overscanStopIndex: overscanStopIndex,\n visibleStartIndex: visibleStartIndex,\n visibleStopIndex: visibleStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n scrollDirection: scrollDirection,\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (index) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n itemSize = _this$props.itemSize,\n layout = _this$props.layout;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction);\n\n var style;\n\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n var _offset = getItemOffset(_this.props, index, _this._instanceProps);\n\n var size = getItemSize(_this.props, index, _this._instanceProps); // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var isRtl = direction === 'rtl';\n var offsetHorizontal = isHorizontal ? _offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? _offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScrollHorizontal = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction;\n var scrollOffset = scrollLeft;\n\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._onScrollVertical = function (event) {\n var _event$currentTarget2 = event.currentTarget,\n clientHeight = _event$currentTarget2.clientHeight,\n scrollHeight = _event$currentTarget2.scrollHeight,\n scrollTop = _event$currentTarget2.scrollTop;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1, null);\n });\n };\n\n return _this;\n }\n\n List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps$1(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = List.prototype;\n\n _proto.scrollTo = function scrollTo(scrollOffset) {\n scrollOffset = Math.max(0, scrollOffset);\n this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n\n return {\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(index, align) {\n if (align === void 0) {\n align = 'auto';\n }\n\n var _this$props2 = this.props,\n itemCount = _this$props2.itemCount,\n layout = _this$props2.layout;\n var scrollOffset = this.state.scrollOffset;\n index = Math.max(0, Math.min(index, itemCount - 1)); // The scrollbar size should be considered when scrolling an item into view, to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n // This is an edge case for lists; normally they only scroll in the dominant direction.\n\n var scrollbarSize = 0;\n\n if (this._outerRef) {\n var outerRef = this._outerRef;\n\n if (layout === 'vertical') {\n scrollbarSize = outerRef.scrollWidth > outerRef.clientWidth ? getScrollbarSize() : 0;\n } else {\n scrollbarSize = outerRef.scrollHeight > outerRef.clientHeight ? getScrollbarSize() : 0;\n }\n }\n\n this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps, scrollbarSize));\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n direction = _this$props3.direction,\n initialScrollOffset = _this$props3.initialScrollOffset,\n layout = _this$props3.layout;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props4 = this.props,\n direction = _this$props4.direction,\n layout = _this$props4.layout;\n var _this$state = this.state,\n scrollOffset = _this$state.scrollOffset,\n scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n className = _this$props5.className,\n direction = _this$props5.direction,\n height = _this$props5.height,\n innerRef = _this$props5.innerRef,\n innerElementType = _this$props5.innerElementType,\n innerTagName = _this$props5.innerTagName,\n itemCount = _this$props5.itemCount,\n itemData = _this$props5.itemData,\n _this$props5$itemKey = _this$props5.itemKey,\n itemKey = _this$props5$itemKey === void 0 ? defaultItemKey$1 : _this$props5$itemKey,\n layout = _this$props5.layout,\n outerElementType = _this$props5.outerElementType,\n outerTagName = _this$props5.outerTagName,\n style = _this$props5.style,\n useIsScrolling = _this$props5.useIsScrolling,\n width = _this$props5.width;\n var isScrolling = this.state.isScrolling; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical;\n\n var _this$_getRangeToRend = this._getRangeToRender(),\n startIndex = _this$_getRangeToRend[0],\n stopIndex = _this$_getRangeToRend[1];\n\n var items = [];\n\n if (itemCount > 0) {\n for (var _index = startIndex; _index <= stopIndex; _index++) {\n items.push(createElement(children, {\n data: itemData,\n key: itemKey(_index, itemData),\n index: _index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(_index)\n }));\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%'\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n var itemCount = this.props.itemCount;\n\n if (itemCount > 0) {\n var _this$_getRangeToRend2 = this._getRangeToRender(),\n _overscanStartIndex = _this$_getRangeToRend2[0],\n _overscanStopIndex = _this$_getRangeToRend2[1],\n _visibleStartIndex = _this$_getRangeToRend2[2],\n _visibleStopIndex = _this$_getRangeToRend2[3];\n\n this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex);\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n var _this$state2 = this.state,\n _scrollDirection = _this$state2.scrollDirection,\n _scrollOffset = _this$state2.scrollOffset,\n _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getRangeToRender = function _getRangeToRender() {\n var _this$props6 = this.props,\n itemCount = _this$props6.itemCount,\n overscanCount = _this$props6.overscanCount;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollDirection = _this$state3.scrollDirection,\n scrollOffset = _this$state3.scrollOffset;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps);\n var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || scrollDirection === 'backward' ? Math.max(1, overscanCount) : 1;\n var overscanForward = !isScrolling || scrollDirection === 'forward' ? Math.max(1, overscanCount) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return List;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false\n }, _class;\n} // NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nvar validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) {\n var children = _ref2.children,\n direction = _ref2.direction,\n height = _ref2.height,\n layout = _ref2.layout,\n innerTagName = _ref2.innerTagName,\n outerTagName = _ref2.outerTagName,\n width = _ref2.width;\n var instance = _ref3.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName$1 && !devWarningsTagName$1.has(instance)) {\n devWarningsTagName$1.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n } // TODO Deprecate direction \"horizontal\"\n\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.');\n }\n\n break;\n\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + (\"\\\"\" + layout + \"\\\" was specified.\"));\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE$1 = 50;\n\nvar getItemMetadata$1 = function getItemMetadata(props, index, instanceProps) {\n var _ref = props,\n itemSize = _ref.itemSize;\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n instanceProps.lastMeasuredIndex = index;\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem$1 = function findNearestItem(props, instanceProps, offset) {\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch$1(props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch$1(props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch$1 = function findNearestItemBinarySearch(props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata$1(props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch$1 = function findNearestItemExponentialSearch(props, instanceProps, index, offset) {\n var itemCount = props.itemCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata$1(props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch$1(props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getEstimatedTotalSize = function getEstimatedTotalSize(_ref2, _ref3) {\n var itemCount = _ref2.itemCount;\n var itemMetadataMap = _ref3.itemMetadataMap,\n estimatedItemSize = _ref3.estimatedItemSize,\n lastMeasuredIndex = _ref3.lastMeasuredIndex;\n var totalSizeOfMeasuredItems = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredIndex >= itemCount) {\n lastMeasuredIndex = itemCount - 1;\n }\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\n\nvar VariableSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(props, index, instanceProps) {\n return getItemMetadata$1(props, index, instanceProps).offset;\n },\n getItemSize: function getItemSize(props, index, instanceProps) {\n return instanceProps.itemMetadataMap[index].size;\n },\n getEstimatedTotalSize: getEstimatedTotalSize,\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = props.direction,\n height = props.height,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = getEstimatedTotalSize(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + itemMetadata.size + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(props, offset, instanceProps) {\n return findNearestItem$1(props, instanceProps, offset);\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(props, startIndex, scrollOffset, instanceProps) {\n var direction = props.direction,\n height = props.height,\n itemCount = props.itemCount,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, startIndex, instanceProps);\n var maxOffset = scrollOffset + size;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < itemCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata$1(props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref4 = props,\n estimatedItemSize = _ref4.estimatedItemSize;\n var instanceProps = {\n itemMetadataMap: {},\n estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE$1,\n lastMeasuredIndex: -1\n };\n\n instance.resetAfterIndex = function (index, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instanceProps.lastMeasuredIndex = Math.min(instanceProps.lastMeasuredIndex, index - 1); // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref5) {\n var itemSize = _ref5.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'function') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(_ref, index) {\n var columnWidth = _ref.columnWidth;\n return index * columnWidth;\n },\n getColumnWidth: function getColumnWidth(_ref2, index) {\n var columnWidth = _ref2.columnWidth;\n return columnWidth;\n },\n getRowOffset: function getRowOffset(_ref3, index) {\n var rowHeight = _ref3.rowHeight;\n return index * rowHeight;\n },\n getRowHeight: function getRowHeight(_ref4, index) {\n var rowHeight = _ref4.rowHeight;\n return rowHeight;\n },\n getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) {\n var rowCount = _ref5.rowCount,\n rowHeight = _ref5.rowHeight;\n return rowHeight * rowCount;\n },\n getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) {\n var columnCount = _ref6.columnCount,\n columnWidth = _ref6.columnWidth;\n return columnWidth * columnCount;\n },\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) {\n var columnCount = _ref7.columnCount,\n columnWidth = _ref7.columnWidth,\n width = _ref7.width;\n var lastColumnOffset = Math.max(0, columnCount * columnWidth - width);\n var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);\n var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth);\n\n if (align === 'smart') {\n if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(width / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {\n return lastColumnOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {\n return scrollLeft;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollLeft < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) {\n var rowHeight = _ref8.rowHeight,\n height = _ref8.height,\n rowCount = _ref8.rowCount;\n var lastRowOffset = Math.max(0, rowCount * rowHeight - height);\n var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);\n var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight);\n\n if (align === 'smart') {\n if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(height / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {\n return lastRowOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollTop >= minOffset && scrollTop <= maxOffset) {\n return scrollTop;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollTop < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) {\n var columnWidth = _ref9.columnWidth,\n columnCount = _ref9.columnCount;\n return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth)));\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) {\n var columnWidth = _ref10.columnWidth,\n columnCount = _ref10.columnCount,\n width = _ref10.width;\n var left = startIndex * columnWidth;\n var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth);\n return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1 // -1 is because stop index is inclusive\n ));\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) {\n var rowHeight = _ref11.rowHeight,\n rowCount = _ref11.rowCount;\n return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight)));\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) {\n var rowHeight = _ref12.rowHeight,\n rowCount = _ref12.rowCount,\n height = _ref12.height;\n var top = startIndex * rowHeight;\n var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);\n return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref13) {\n var columnWidth = _ref13.columnWidth,\n rowHeight = _ref13.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'number') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n }\n\n if (typeof rowHeight !== 'number') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(_ref, index) {\n var itemSize = _ref.itemSize;\n return index * itemSize;\n },\n getItemSize: function getItemSize(_ref2, index) {\n var itemSize = _ref2.itemSize;\n return itemSize;\n },\n getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) {\n var itemCount = _ref3.itemCount,\n itemSize = _ref3.itemSize;\n return itemSize * itemCount;\n },\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = _ref4.direction,\n height = _ref4.height,\n itemCount = _ref4.itemCount,\n itemSize = _ref4.itemSize,\n layout = _ref4.layout,\n width = _ref4.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var lastItemOffset = Math.max(0, itemCount * itemSize - size);\n var maxOffset = Math.min(lastItemOffset, index * itemSize);\n var minOffset = Math.max(0, index * itemSize - size + itemSize + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(size / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset; // near the end\n } else {\n return middleOffset;\n }\n }\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) {\n var itemCount = _ref5.itemCount,\n itemSize = _ref5.itemSize;\n return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize)));\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) {\n var direction = _ref6.direction,\n height = _ref6.height,\n itemCount = _ref6.itemCount,\n itemSize = _ref6.itemSize,\n layout = _ref6.layout,\n width = _ref6.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var offset = startIndex * itemSize;\n var size = isHorizontal ? width : height;\n var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);\n return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref7) {\n var itemSize = _ref7.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'number') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(prev, next) {\n for (var attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n\n for (var _attribute in next) {\n if (prev[_attribute] !== next[_attribute]) {\n return true;\n }\n }\n\n return false;\n}\n\nvar _excluded = [\"style\"],\n _excluded2 = [\"style\"];\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-api.html#reactmemo\n\nfunction areEqual(prevProps, nextProps) {\n var prevStyle = prevProps.style,\n prevRest = _objectWithoutPropertiesLoose(prevProps, _excluded);\n\n var nextStyle = nextProps.style,\n nextRest = _objectWithoutPropertiesLoose(nextProps, _excluded2);\n\n return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest);\n}\n\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-component.html#shouldcomponentupdate\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState);\n}\n\nexport { FixedSizeGrid, FixedSizeList, VariableSizeGrid, VariableSizeList, areEqual, shouldComponentUpdate };\n//# sourceMappingURL=index.esm.js.map\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useDndContext, useTreeApi } from \"../context\";\nexport function Cursor() {\n var _a, _b;\n const tree = useTreeApi();\n const state = useDndContext();\n const cursor = state.cursor;\n if (!cursor || cursor.type !== \"line\")\n return null;\n const indent = tree.indent;\n const top = tree.rowHeight * cursor.index +\n ((_b = (_a = tree.props.padding) !== null && _a !== void 0 ? _a : tree.props.paddingTop) !== null && _b !== void 0 ? _b : 0);\n const left = indent * cursor.level;\n const Cursor = tree.renderCursor;\n return _jsx(Cursor, { top, left, indent });\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { useTreeApi } from \"../context\";\nimport { Cursor } from \"./cursor\";\nexport const ListOuterElement = forwardRef(function Outer(props, ref) {\n const { children } = props, rest = __rest(props, [\"children\"]);\n const tree = useTreeApi();\n return (_jsxs(\"div\", Object.assign({ \n // @ts-ignore\n ref: ref }, rest, { onClick: (e) => {\n if (e.currentTarget === e.target)\n tree.deselectAll();\n }, children: [_jsx(DropContainer, {}), children] })));\n});\nconst DropContainer = () => {\n const tree = useTreeApi();\n return (_jsx(\"div\", { style: {\n height: tree.visibleNodes.length * tree.rowHeight,\n width: \"100%\",\n position: \"absolute\",\n left: \"0\",\n right: \"0\",\n }, children: _jsx(Cursor, {}) }));\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { useTreeApi } from \"../context\";\nexport const ListInnerElement = forwardRef(function InnerElement(_a, ref) {\n var _b, _c, _d, _e;\n var { style } = _a, rest = __rest(_a, [\"style\"]);\n const tree = useTreeApi();\n const paddingTop = (_c = (_b = tree.props.padding) !== null && _b !== void 0 ? _b : tree.props.paddingTop) !== null && _c !== void 0 ? _c : 0;\n const paddingBottom = (_e = (_d = tree.props.padding) !== null && _d !== void 0 ? _d : tree.props.paddingBottom) !== null && _e !== void 0 ? _e : 0;\n return (_jsx(\"div\", Object.assign({ ref: ref, style: Object.assign(Object.assign({}, style), { height: `${parseFloat(style.height) + paddingTop + paddingBottom}px` }) }, rest)));\n});\n","import { createContext } from 'react';\n/**\n * Create the React Context\n */\n\nexport var DndContext = createContext({\n dragDropManager: undefined\n});","export var HandlerRole;\n\n(function (HandlerRole) {\n HandlerRole[\"SOURCE\"] = \"SOURCE\";\n HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole || (HandlerRole = {}));","/**\r\n * Use invariant() to assert state which your program assumes to be true.\r\n *\r\n * Provide sprintf-style format (only %s is supported) and arguments\r\n * to provide information about what broke and what you were\r\n * expecting.\r\n *\r\n * The invariant message will be stripped in production, but the invariant\r\n * will remain to ensure logic does not differ in production.\r\n */\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n}\n\nexport { invariant };\n//# sourceMappingURL=invariant.esm.js.map\n","export var INIT_COORDS = 'dnd-core/INIT_COORDS';\nexport var BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nexport var PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nexport var HOVER = 'dnd-core/HOVER';\nexport var DROP = 'dnd-core/DROP';\nexport var END_DRAG = 'dnd-core/END_DRAG';","import { INIT_COORDS } from '../types';\nexport function setClientOffset(clientOffset, sourceClientOffset) {\n return {\n type: INIT_COORDS,\n payload: {\n sourceClientOffset: sourceClientOffset || null,\n clientOffset: clientOffset || null\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get(obj, path, defaultValue) {\n return path.split('.').reduce(function (a, c) {\n return a && a[c] ? a[c] : defaultValue || null;\n }, obj);\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isString(input) {\n return typeof input === 'string';\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isObject(input) {\n return _typeof(input) === 'object';\n}\n/**\n * repalcement for _.xor\n * @param itemsA\n * @param itemsB\n */\n\nexport function xor(itemsA, itemsB) {\n var map = new Map();\n\n var insertItem = function insertItem(item) {\n map.set(item, map.has(item) ? map.get(item) + 1 : 1);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n map.forEach(function (count, key) {\n if (count === 1) {\n result.push(key);\n }\n });\n return result;\n}\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\n\nexport function intersection(itemsA, itemsB) {\n return itemsA.filter(function (t) {\n return itemsB.indexOf(t) > -1;\n });\n}","import { invariant } from '@react-dnd/invariant';\nimport { setClientOffset } from './local/setClientOffset';\nimport { isObject } from '../../utils/js_utils';\nimport { BEGIN_DRAG, INIT_COORDS } from './types';\nvar ResetCoordinatesAction = {\n type: INIT_COORDS,\n payload: {\n clientOffset: null,\n sourceClientOffset: null\n }\n};\nexport function createBeginDrag(manager) {\n return function beginDrag() {\n var sourceIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n publishSource: true\n };\n var _options$publishSourc = options.publishSource,\n publishSource = _options$publishSourc === void 0 ? true : _options$publishSourc,\n clientOffset = options.clientOffset,\n getSourceClientOffset = options.getSourceClientOffset;\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry(); // Initialize the coordinates using the client offset\n\n manager.dispatch(setClientOffset(clientOffset));\n verifyInvariants(sourceIds, monitor, registry); // Get the draggable source\n\n var sourceId = getDraggableSource(sourceIds, monitor);\n\n if (sourceId === null) {\n manager.dispatch(ResetCoordinatesAction);\n return;\n } // Get the source client offset\n\n\n var sourceClientOffset = null;\n\n if (clientOffset) {\n if (!getSourceClientOffset) {\n throw new Error('getSourceClientOffset must be defined');\n }\n\n verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n sourceClientOffset = getSourceClientOffset(sourceId);\n } // Initialize the full coordinates\n\n\n manager.dispatch(setClientOffset(clientOffset, sourceClientOffset));\n var source = registry.getSource(sourceId);\n var item = source.beginDrag(monitor, sourceId); // If source.beginDrag returns null, this is an indicator to cancel the drag\n\n if (item == null) {\n return undefined;\n }\n\n verifyItemIsObject(item);\n registry.pinSource(sourceId);\n var itemType = registry.getSourceType(sourceId);\n return {\n type: BEGIN_DRAG,\n payload: {\n itemType: itemType,\n item: item,\n sourceId: sourceId,\n clientOffset: clientOffset || null,\n sourceClientOffset: sourceClientOffset || null,\n isSourcePublic: !!publishSource\n }\n };\n };\n}\n\nfunction verifyInvariants(sourceIds, monitor, registry) {\n invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n sourceIds.forEach(function (sourceId) {\n invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.');\n });\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\n\nfunction verifyItemIsObject(item) {\n invariant(isObject(item), 'Item must be an object.');\n}\n\nfunction getDraggableSource(sourceIds, monitor) {\n var sourceId = null;\n\n for (var i = sourceIds.length - 1; i >= 0; i--) {\n if (monitor.canDragSource(sourceIds[i])) {\n sourceId = sourceIds[i];\n break;\n }\n }\n\n return sourceId;\n}","import { PUBLISH_DRAG_SOURCE } from './types';\nexport function createPublishDragSource(manager) {\n return function publishDragSource() {\n var monitor = manager.getMonitor();\n\n if (monitor.isDragging()) {\n return {\n type: PUBLISH_DRAG_SOURCE\n };\n }\n };\n}","export function matchesType(targetType, draggedItemType) {\n if (draggedItemType === null) {\n return targetType === null;\n }\n\n return Array.isArray(targetType) ? targetType.some(function (t) {\n return t === draggedItemType;\n }) : targetType === draggedItemType;\n}","import { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../../utils/matchesType';\nimport { HOVER } from './types';\nexport function createHover(manager) {\n return function hover(targetIdsArg) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n clientOffset = _ref.clientOffset;\n\n verifyTargetIdsIsArray(targetIdsArg);\n var targetIds = targetIdsArg.slice(0);\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n checkInvariants(targetIds, monitor, registry);\n var draggedItemType = monitor.getItemType();\n removeNonMatchingTargetIds(targetIds, registry, draggedItemType);\n hoverAllTargets(targetIds, monitor, registry);\n return {\n type: HOVER,\n payload: {\n targetIds: targetIds,\n clientOffset: clientOffset || null\n }\n };\n };\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\n}\n\nfunction checkInvariants(targetIds, monitor, registry) {\n invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call hover after drop.');\n\n for (var i = 0; i < targetIds.length; i++) {\n var targetId = targetIds[i];\n invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n var target = registry.getTarget(targetId);\n invariant(target, 'Expected targetIds to be registered.');\n }\n}\n\nfunction removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {\n // Remove those targetIds that don't match the targetType. This\n // fixes shallow isOver which would only be non-shallow because of\n // non-matching targets.\n for (var i = targetIds.length - 1; i >= 0; i--) {\n var targetId = targetIds[i];\n var targetType = registry.getTargetType(targetId);\n\n if (!matchesType(targetType, draggedItemType)) {\n targetIds.splice(i, 1);\n }\n }\n}\n\nfunction hoverAllTargets(targetIds, monitor, registry) {\n // Finally call hover on all matching targets.\n targetIds.forEach(function (targetId) {\n var target = registry.getTarget(targetId);\n target.hover(monitor, targetId);\n });\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { invariant } from '@react-dnd/invariant';\nimport { DROP } from './types';\nimport { isObject } from '../../utils/js_utils';\nexport function createDrop(manager) {\n return function drop() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyInvariants(monitor);\n var targetIds = getDroppableTargets(monitor); // Multiple actions are dispatched here, which is why this doesn't return an action\n\n targetIds.forEach(function (targetId, index) {\n var dropResult = determineDropResult(targetId, index, registry, monitor);\n var action = {\n type: DROP,\n payload: {\n dropResult: _objectSpread(_objectSpread({}, options), dropResult)\n }\n };\n manager.dispatch(action);\n });\n };\n}\n\nfunction verifyInvariants(monitor) {\n invariant(monitor.isDragging(), 'Cannot call drop while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n}\n\nfunction determineDropResult(targetId, index, registry, monitor) {\n var target = registry.getTarget(targetId);\n var dropResult = target ? target.drop(monitor, targetId) : undefined;\n verifyDropResultType(dropResult);\n\n if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n\n return dropResult;\n}\n\nfunction verifyDropResultType(dropResult) {\n invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.');\n}\n\nfunction getDroppableTargets(monitor) {\n var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n targetIds.reverse();\n return targetIds;\n}","import { invariant } from '@react-dnd/invariant';\nimport { END_DRAG } from './types';\nexport function createEndDrag(manager) {\n return function endDrag() {\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyIsDragging(monitor);\n var sourceId = monitor.getSourceId();\n\n if (sourceId != null) {\n var source = registry.getSource(sourceId, true);\n source.endDrag(monitor, sourceId);\n registry.unpinSource();\n }\n\n return {\n type: END_DRAG\n };\n };\n}\n\nfunction verifyIsDragging(monitor) {\n invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}","import { createBeginDrag } from './beginDrag';\nimport { createPublishDragSource } from './publishDragSource';\nimport { createHover } from './hover';\nimport { createDrop } from './drop';\nimport { createEndDrag } from './endDrag';\nexport * from './types';\nexport function createDragDropActions(manager) {\n return {\n beginDrag: createBeginDrag(manager),\n publishDragSource: createPublishDragSource(manager),\n hover: createHover(manager),\n drop: createDrop(manager),\n endDrag: createEndDrag(manager)\n };\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createDragDropActions } from '../actions/dragDrop';\nexport var DragDropManagerImpl = /*#__PURE__*/function () {\n function DragDropManagerImpl(store, monitor) {\n var _this = this;\n\n _classCallCheck(this, DragDropManagerImpl);\n\n _defineProperty(this, \"store\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"backend\", void 0);\n\n _defineProperty(this, \"isSetUp\", false);\n\n _defineProperty(this, \"handleRefCountChange\", function () {\n var shouldSetUp = _this.store.getState().refCount > 0;\n\n if (_this.backend) {\n if (shouldSetUp && !_this.isSetUp) {\n _this.backend.setup();\n\n _this.isSetUp = true;\n } else if (!shouldSetUp && _this.isSetUp) {\n _this.backend.teardown();\n\n _this.isSetUp = false;\n }\n }\n });\n\n this.store = store;\n this.monitor = monitor;\n store.subscribe(this.handleRefCountChange);\n }\n\n _createClass(DragDropManagerImpl, [{\n key: \"receiveBackend\",\n value: function receiveBackend(backend) {\n this.backend = backend;\n }\n }, {\n key: \"getMonitor\",\n value: function getMonitor() {\n return this.monitor;\n }\n }, {\n key: \"getBackend\",\n value: function getBackend() {\n return this.backend;\n }\n }, {\n key: \"getRegistry\",\n value: function getRegistry() {\n return this.monitor.registry;\n }\n }, {\n key: \"getActions\",\n value: function getActions() {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n var manager = this;\n var dispatch = this.store.dispatch;\n\n function bindActionCreator(actionCreator) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var action = actionCreator.apply(manager, args);\n\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n var actions = createDragDropActions(this);\n return Object.keys(actions).reduce(function (boundActions, key) {\n var action = actions[key];\n boundActions[key] = bindActionCreator(action);\n return boundActions;\n }, {});\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(action) {\n this.store.dispatch(action);\n }\n }]);\n\n return DragDropManagerImpl;\n}();","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","export var strictEquality = function strictEquality(a, b) {\n return a === b;\n};\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\n\nexport function areCoordsEqual(offsetA, offsetB) {\n if (!offsetA && !offsetB) {\n return true;\n } else if (!offsetA || !offsetB) {\n return false;\n } else {\n return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n }\n}\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\n\nexport function areArraysEqual(a, b) {\n var isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEquality;\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; ++i) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { INIT_COORDS, BEGIN_DRAG, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { areCoordsEqual } from '../utils/equality';\nvar initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null\n};\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case INIT_COORDS:\n case BEGIN_DRAG:\n return {\n initialSourceClientOffset: payload.sourceClientOffset,\n initialClientOffset: payload.clientOffset,\n clientOffset: payload.clientOffset\n };\n\n case HOVER:\n if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n clientOffset: payload.clientOffset\n });\n\n case END_DRAG:\n case DROP:\n return initialState;\n\n default:\n return state;\n }\n}","export var ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nexport var ADD_TARGET = 'dnd-core/ADD_TARGET';\nexport var REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nexport var REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nexport function addSource(sourceId) {\n return {\n type: ADD_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function addTarget(targetId) {\n return {\n type: ADD_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}\nexport function removeSource(sourceId) {\n return {\n type: REMOVE_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function removeTarget(targetId) {\n return {\n type: REMOVE_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { REMOVE_TARGET } from '../actions/registry';\nimport { without } from '../utils/js_utils';\nvar initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null\n};\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case BEGIN_DRAG:\n return _objectSpread(_objectSpread({}, state), {}, {\n itemType: payload.itemType,\n item: payload.item,\n sourceId: payload.sourceId,\n isSourcePublic: payload.isSourcePublic,\n dropResult: null,\n didDrop: false\n });\n\n case PUBLISH_DRAG_SOURCE:\n return _objectSpread(_objectSpread({}, state), {}, {\n isSourcePublic: true\n });\n\n case HOVER:\n return _objectSpread(_objectSpread({}, state), {}, {\n targetIds: payload.targetIds\n });\n\n case REMOVE_TARGET:\n if (state.targetIds.indexOf(payload.targetId) === -1) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n targetIds: without(state.targetIds, payload.targetId)\n });\n\n case DROP:\n return _objectSpread(_objectSpread({}, state), {}, {\n dropResult: payload.dropResult,\n didDrop: true,\n targetIds: []\n });\n\n case END_DRAG:\n return _objectSpread(_objectSpread({}, state), {}, {\n itemType: null,\n item: null,\n sourceId: null,\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n targetIds: []\n });\n\n default:\n return state;\n }\n}","import { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case ADD_SOURCE:\n case ADD_TARGET:\n return state + 1;\n\n case REMOVE_SOURCE:\n case REMOVE_TARGET:\n return state - 1;\n\n default:\n return state;\n }\n}","import { intersection } from './js_utils';\nexport var NONE = [];\nexport var ALL = [];\nNONE.__IS_NONE__ = true;\nALL.__IS_ALL__ = true;\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\n\nexport function areDirty(dirtyIds, handlerIds) {\n if (dirtyIds === NONE) {\n return false;\n }\n\n if (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n\n var commonIds = intersection(handlerIds, dirtyIds);\n return commonIds.length > 0;\n}","import { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nimport { areArraysEqual } from '../utils/equality';\nimport { NONE, ALL } from '../utils/dirtiness';\nimport { xor } from '../utils/js_utils';\nexport function reduce() {\n var _state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;\n\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case HOVER:\n break;\n\n case ADD_SOURCE:\n case ADD_TARGET:\n case REMOVE_TARGET:\n case REMOVE_SOURCE:\n return NONE;\n\n case BEGIN_DRAG:\n case PUBLISH_DRAG_SOURCE:\n case END_DRAG:\n case DROP:\n default:\n return ALL;\n }\n\n var _action$payload = action.payload,\n _action$payload$targe = _action$payload.targetIds,\n targetIds = _action$payload$targe === void 0 ? [] : _action$payload$targe,\n _action$payload$prevT = _action$payload.prevTargetIds,\n prevTargetIds = _action$payload$prevT === void 0 ? [] : _action$payload$prevT;\n var result = xor(targetIds, prevTargetIds);\n var didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);\n\n if (!didChange) {\n return NONE;\n } // Check the target ids at the innermost position. If they are valid, add them\n // to the result\n\n\n var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n var innermostTargetId = targetIds[targetIds.length - 1];\n\n if (prevInnermostTargetId !== innermostTargetId) {\n if (prevInnermostTargetId) {\n result.push(prevInnermostTargetId);\n }\n\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n\n return result;\n}","export function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return state + 1;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { reduce as dragOffset } from './dragOffset';\nimport { reduce as dragOperation } from './dragOperation';\nimport { reduce as refCount } from './refCount';\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds';\nimport { reduce as stateId } from './stateId';\nimport { get } from '../utils/js_utils';\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n return {\n dirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n type: action.type,\n payload: _objectSpread(_objectSpread({}, action.payload), {}, {\n prevTargetIds: get(state, 'dragOperation.targetIds', [])\n })\n }),\n dragOffset: dragOffset(state.dragOffset, action),\n refCount: refCount(state.refCount, action),\n dragOperation: dragOperation(state.dragOperation, action),\n stateId: stateId(state.stateId)\n };\n}","/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y\n };\n}\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\n\nexport function subtract(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\n\nexport function getSourceClientOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset,\n initialSourceClientOffset = state.initialSourceClientOffset;\n\n if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n return null;\n }\n\n return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\n\nexport function getDifferenceFromInitialOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset;\n\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n\n return subtract(clientOffset, initialClientOffset);\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../utils/matchesType';\nimport { getSourceClientOffset as _getSourceClientOffset, getDifferenceFromInitialOffset as _getDifferenceFromInitialOffset } from '../utils/coords';\nimport { areDirty } from '../utils/dirtiness';\nexport var DragDropMonitorImpl = /*#__PURE__*/function () {\n function DragDropMonitorImpl(store, registry) {\n _classCallCheck(this, DragDropMonitorImpl);\n\n _defineProperty(this, \"store\", void 0);\n\n _defineProperty(this, \"registry\", void 0);\n\n this.store = store;\n this.registry = registry;\n }\n\n _createClass(DragDropMonitorImpl, [{\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n handlerIds: undefined\n };\n var handlerIds = options.handlerIds;\n invariant(typeof listener === 'function', 'listener must be a function.');\n invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n var prevStateId = this.store.getState().stateId;\n\n var handleChange = function handleChange() {\n var state = _this.store.getState();\n\n var currentStateId = state.stateId;\n\n try {\n var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds);\n\n if (!canSkipListener) {\n listener();\n }\n } finally {\n prevStateId = currentStateId;\n }\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: \"subscribeToOffsetChange\",\n value: function subscribeToOffsetChange(listener) {\n var _this2 = this;\n\n invariant(typeof listener === 'function', 'listener must be a function.');\n var previousState = this.store.getState().dragOffset;\n\n var handleChange = function handleChange() {\n var nextState = _this2.store.getState().dragOffset;\n\n if (nextState === previousState) {\n return;\n }\n\n previousState = nextState;\n listener();\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: \"canDragSource\",\n value: function canDragSource(sourceId) {\n if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId);\n invariant(source, \"Expected to find a valid source. sourceId=\".concat(sourceId));\n\n if (this.isDragging()) {\n return false;\n }\n\n return source.canDrag(this, sourceId);\n }\n }, {\n key: \"canDropOnTarget\",\n value: function canDropOnTarget(targetId) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n\n var target = this.registry.getTarget(targetId);\n invariant(target, \"Expected to find a valid target. targetId=\".concat(targetId));\n\n if (!this.isDragging() || this.didDrop()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId);\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n return Boolean(this.getItemType());\n }\n }, {\n key: \"isDraggingSource\",\n value: function isDraggingSource(sourceId) {\n // undefined on initial render\n if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId, true);\n invariant(source, \"Expected to find a valid source. sourceId=\".concat(sourceId));\n\n if (!this.isDragging() || !this.isSourcePublic()) {\n return false;\n }\n\n var sourceType = this.registry.getSourceType(sourceId);\n var draggedItemType = this.getItemType();\n\n if (sourceType !== draggedItemType) {\n return false;\n }\n\n return source.isDragging(this, sourceId);\n }\n }, {\n key: \"isOverTarget\",\n value: function isOverTarget(targetId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n shallow: false\n };\n\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n\n var shallow = options.shallow;\n\n if (!this.isDragging()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n\n if (draggedItemType && !matchesType(targetType, draggedItemType)) {\n return false;\n }\n\n var targetIds = this.getTargetIds();\n\n if (!targetIds.length) {\n return false;\n }\n\n var index = targetIds.indexOf(targetId);\n\n if (shallow) {\n return index === targetIds.length - 1;\n } else {\n return index > -1;\n }\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.store.getState().dragOperation.itemType;\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.store.getState().dragOperation.item;\n }\n }, {\n key: \"getSourceId\",\n value: function getSourceId() {\n return this.store.getState().dragOperation.sourceId;\n }\n }, {\n key: \"getTargetIds\",\n value: function getTargetIds() {\n return this.store.getState().dragOperation.targetIds;\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.store.getState().dragOperation.dropResult;\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.store.getState().dragOperation.didDrop;\n }\n }, {\n key: \"isSourcePublic\",\n value: function isSourcePublic() {\n return Boolean(this.store.getState().dragOperation.isSourcePublic);\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.store.getState().dragOffset.initialClientOffset;\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.store.getState().dragOffset.initialSourceClientOffset;\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.store.getState().dragOffset.clientOffset;\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return _getSourceClientOffset(this.store.getState().dragOffset);\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return _getDifferenceFromInitialOffset(this.store.getState().dragOffset);\n }\n }]);\n\n return DragDropMonitorImpl;\n}();","var nextUniqueId = 0;\nexport function getNextUniqueId() {\n return nextUniqueId++;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { invariant } from '@react-dnd/invariant';\nexport function validateSourceContract(source) {\n invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\nexport function validateTargetContract(target) {\n invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n invariant(typeof target.hover === 'function', 'Expected hover to be a function.');\n invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\nexport function validateType(type, allowArray) {\n if (allowArray && Array.isArray(type)) {\n type.forEach(function (t) {\n return validateType(t, false);\n });\n return;\n }\n\n invariant(typeof type === 'string' || _typeof(type) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n}","// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n/* globals self */ const scope = typeof global !== 'undefined' ? global : self;\nconst BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\nexport function makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n const timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n const intervalHandle = setInterval(handleTimer, 50);\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback) {\n let toggle = 1;\n const observer = new BrowserMutationObserver(callback);\n const node = document.createTextNode('');\n observer.observe(node, {\n characterData: true\n });\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\nexport const makeRequestCall = typeof BrowserMutationObserver === 'function' ? // reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nmakeRequestCallFromMutationObserver : // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\nmakeRequestCallFromTimer;\n\n//# sourceMappingURL=makeRequestCall.mjs.map","import { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.mjs';\nexport class AsapQueue {\n // Use the fastest means possible to execute a task in its own turn, with\n // priority over other events including IO, animation, reflow, and redraw\n // events in browsers.\n //\n // An exception thrown by a task will permanently interrupt the processing of\n // subsequent tasks. The higher level `asap` function ensures that if an\n // exception is thrown by a task, that the task queue will continue flushing as\n // soon as possible, but if you use `rawAsap` directly, you are responsible to\n // either ensure that no exceptions are thrown from your task, or to manually\n // call `rawAsap.requestFlush` if an exception is thrown.\n enqueueTask(task) {\n const { queue: q , requestFlush } = this;\n if (!q.length) {\n requestFlush();\n this.flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n q[q.length] = task;\n }\n constructor(){\n this.queue = [];\n // We queue errors to ensure they are thrown in right order (FIFO).\n // Array-as-queue is good enough here, since we are just dealing with exceptions.\n this.pendingErrors = [];\n // Once a flush has been requested, no further calls to `requestFlush` are\n // necessary until the next `flush` completes.\n // @ts-ignore\n this.flushing = false;\n // The position of the next task to execute in the task queue. This is\n // preserved between calls to `flush` so that it can be resumed if\n // a task throws an exception.\n this.index = 0;\n // If a task schedules additional tasks recursively, the task queue can grow\n // unbounded. To prevent memory exhaustion, the task queue will periodically\n // truncate already-completed tasks.\n this.capacity = 1024;\n // The flush function processes all tasks that have been scheduled with\n // `rawAsap` unless and until one of those tasks throws an exception.\n // If a task throws an exception, `flush` ensures that its state will remain\n // consistent and will resume where it left off when called again.\n // However, `flush` does not make any arrangements to be called again if an\n // exception is thrown.\n this.flush = ()=>{\n const { queue: q } = this;\n while(this.index < q.length){\n const currentIndex = this.index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n this.index++;\n q[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (this.index > this.capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for(let scan = 0, newLength = q.length - this.index; scan < newLength; scan++){\n q[scan] = q[scan + this.index];\n }\n q.length -= this.index;\n this.index = 0;\n }\n }\n q.length = 0;\n this.index = 0;\n this.flushing = false;\n };\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n this.registerPendingError = (err)=>{\n this.pendingErrors.push(err);\n this.requestErrorThrow();\n };\n // `requestFlush` requests that the high priority event queue be flushed as\n // soon as possible.\n // This is useful to prevent an error thrown in a task from stalling the event\n // queue if the exception handled by Node.js’s\n // `process.on(\"uncaughtException\")` or by a domain.\n // `requestFlush` is implemented using a strategy based on data collected from\n // every available SauceLabs Selenium web driver worker at time of writing.\n // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n this.requestFlush = makeRequestCall(this.flush);\n this.requestErrorThrow = makeRequestCallFromTimer(()=>{\n // Throw first error\n if (this.pendingErrors.length) {\n throw this.pendingErrors.shift();\n }\n });\n }\n} // The message channel technique was discovered by Malte Ubl and was the\n // original foundation for this library.\n // http://www.nonblocking.io/2011/06/windownexttick.html\n // Safari 6.0.5 (at least) intermittently fails to create message ports on a\n // page's first load. Thankfully, this version of Safari supports\n // MutationObservers, so we don't need to fall back in that case.\n // function makeRequestCallFromMessageChannel(callback) {\n // var channel = new MessageChannel();\n // channel.port1.onmessage = callback;\n // return function requestCall() {\n // channel.port2.postMessage(0);\n // };\n // }\n // For reasons explained above, we are also unable to use `setImmediate`\n // under any circumstances.\n // Even if we were, there is another bug in Internet Explorer 10.\n // It is not sufficient to assign `setImmediate` to `requestFlush` because\n // `setImmediate` must be called *by name* and therefore must be wrapped in a\n // closure.\n // Never forget.\n // function makeRequestCallFromSetImmediate(callback) {\n // return function requestCall() {\n // setImmediate(callback);\n // };\n // }\n // Safari 6.0 has a problem where timers will get lost while the user is\n // scrolling. This problem does not impact ASAP because Safari 6.0 supports\n // mutation observers, so that implementation is used instead.\n // However, if we ever elect to use timers in Safari, the prevalent work-around\n // is to add a scroll event listener that calls for a flush.\n // `setTimeout` does not call the passed callback if the delay is less than\n // approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n // even then.\n // This is for `asap.js` only.\n // Its name will be periodically randomized to break any code that depends on\n // // its existence.\n // rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n // ASAP was originally a nextTick shim included in Q. This was factored out\n // into this ASAP package. It was later adapted to RSVP which made further\n // amendments. These decisions, particularly to marginalize MessageChannel and\n // to capture the MutationObserver implementation in a closure, were integrated\n // back into ASAP proper.\n // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n//# sourceMappingURL=AsapQueue.mjs.map","// `call`, just like a function.\nexport class RawTask {\n call() {\n try {\n this.task && this.task();\n } catch (error) {\n this.onError(error);\n } finally{\n this.task = null;\n this.release(this);\n }\n }\n constructor(onError, release){\n this.onError = onError;\n this.release = release;\n this.task = null;\n }\n}\n\n//# sourceMappingURL=RawTask.mjs.map","import { RawTask } from './RawTask.mjs';\nexport class TaskFactory {\n create(task) {\n const tasks = this.freeTasks;\n const t1 = tasks.length ? tasks.pop() : new RawTask(this.onError, (t)=>tasks[tasks.length] = t\n );\n t1.task = task;\n return t1;\n }\n constructor(onError){\n this.onError = onError;\n this.freeTasks = [];\n }\n}\n\n//# sourceMappingURL=TaskFactory.mjs.map","import { AsapQueue } from './AsapQueue.mjs';\nimport { TaskFactory } from './TaskFactory.mjs';\nconst asapQueue = new AsapQueue();\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError);\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */ export function asap(task) {\n asapQueue.enqueueTask(taskFactory.create(task));\n}\n\n//# sourceMappingURL=asap.mjs.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { invariant } from '@react-dnd/invariant';\nimport { addSource as _addSource, addTarget as _addTarget, removeSource as _removeSource, removeTarget as _removeTarget } from '../actions/registry';\nimport { getNextUniqueId } from '../utils/getNextUniqueId';\nimport { HandlerRole } from '../interfaces';\nimport { validateSourceContract, validateTargetContract, validateType } from '../contracts';\nimport { asap } from '@react-dnd/asap';\n\nfunction getNextHandlerId(role) {\n var id = getNextUniqueId().toString();\n\n switch (role) {\n case HandlerRole.SOURCE:\n return \"S\".concat(id);\n\n case HandlerRole.TARGET:\n return \"T\".concat(id);\n\n default:\n throw new Error(\"Unknown Handler Role: \".concat(role));\n }\n}\n\nfunction parseRoleFromHandlerId(handlerId) {\n switch (handlerId[0]) {\n case 'S':\n return HandlerRole.SOURCE;\n\n case 'T':\n return HandlerRole.TARGET;\n\n default:\n invariant(false, \"Cannot parse handler ID: \".concat(handlerId));\n }\n}\n\nfunction mapContainsValue(map, searchValue) {\n var entries = map.entries();\n var isDone = false;\n\n do {\n var _entries$next = entries.next(),\n done = _entries$next.done,\n _entries$next$value = _slicedToArray(_entries$next.value, 2),\n value = _entries$next$value[1];\n\n if (value === searchValue) {\n return true;\n }\n\n isDone = !!done;\n } while (!isDone);\n\n return false;\n}\n\nexport var HandlerRegistryImpl = /*#__PURE__*/function () {\n function HandlerRegistryImpl(store) {\n _classCallCheck(this, HandlerRegistryImpl);\n\n _defineProperty(this, \"types\", new Map());\n\n _defineProperty(this, \"dragSources\", new Map());\n\n _defineProperty(this, \"dropTargets\", new Map());\n\n _defineProperty(this, \"pinnedSourceId\", null);\n\n _defineProperty(this, \"pinnedSource\", null);\n\n _defineProperty(this, \"store\", void 0);\n\n this.store = store;\n }\n\n _createClass(HandlerRegistryImpl, [{\n key: \"addSource\",\n value: function addSource(type, source) {\n validateType(type);\n validateSourceContract(source);\n var sourceId = this.addHandler(HandlerRole.SOURCE, type, source);\n this.store.dispatch(_addSource(sourceId));\n return sourceId;\n }\n }, {\n key: \"addTarget\",\n value: function addTarget(type, target) {\n validateType(type, true);\n validateTargetContract(target);\n var targetId = this.addHandler(HandlerRole.TARGET, type, target);\n this.store.dispatch(_addTarget(targetId));\n return targetId;\n }\n }, {\n key: \"containsHandler\",\n value: function containsHandler(handler) {\n return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);\n }\n }, {\n key: \"getSource\",\n value: function getSource(sourceId) {\n var includePinned = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n var isPinned = includePinned && sourceId === this.pinnedSourceId;\n var source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);\n return source;\n }\n }, {\n key: \"getTarget\",\n value: function getTarget(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.dropTargets.get(targetId);\n }\n }, {\n key: \"getSourceType\",\n value: function getSourceType(sourceId) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types.get(sourceId);\n }\n }, {\n key: \"getTargetType\",\n value: function getTargetType(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types.get(targetId);\n }\n }, {\n key: \"isSourceId\",\n value: function isSourceId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.SOURCE;\n }\n }, {\n key: \"isTargetId\",\n value: function isTargetId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.TARGET;\n }\n }, {\n key: \"removeSource\",\n value: function removeSource(sourceId) {\n var _this = this;\n\n invariant(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch(_removeSource(sourceId));\n asap(function () {\n _this.dragSources.delete(sourceId);\n\n _this.types.delete(sourceId);\n });\n }\n }, {\n key: \"removeTarget\",\n value: function removeTarget(targetId) {\n invariant(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch(_removeTarget(targetId));\n this.dropTargets.delete(targetId);\n this.types.delete(targetId);\n }\n }, {\n key: \"pinSource\",\n value: function pinSource(sourceId) {\n var source = this.getSource(sourceId);\n invariant(source, 'Expected an existing source.');\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n }\n }, {\n key: \"unpinSource\",\n value: function unpinSource() {\n invariant(this.pinnedSource, 'No source is pinned at the time.');\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n }, {\n key: \"addHandler\",\n value: function addHandler(role, type, handler) {\n var id = getNextHandlerId(role);\n this.types.set(id, type);\n\n if (role === HandlerRole.SOURCE) {\n this.dragSources.set(id, handler);\n } else if (role === HandlerRole.TARGET) {\n this.dropTargets.set(id, handler);\n }\n\n return id;\n }\n }]);\n\n return HandlerRegistryImpl;\n}();","import { DragDropManagerImpl } from './classes/DragDropManagerImpl';\nimport { createStore } from 'redux';\nimport { reduce } from './reducers';\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl';\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl';\nexport function createDragDropManager(backendFactory) {\n var globalContext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var backendOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var debugMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var store = makeStoreInstance(debugMode);\n var monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));\n var manager = new DragDropManagerImpl(store, monitor);\n var backend = backendFactory(manager, globalContext, backendOptions);\n manager.receiveBackend(backend);\n return manager;\n}\n\nfunction makeStoreInstance(debugMode) {\n // TODO: if we ever make a react-native version of this,\n // we'll need to consider how to pull off dev-tooling\n var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;\n return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({\n name: 'dnd-core',\n instanceId: 'dnd-core'\n }));\n}","var _excluded = [\"children\"];\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, memo } from 'react';\nimport { createDragDropManager } from 'dnd-core';\nimport { DndContext } from './DndContext';\nvar refCount = 0;\nvar INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\n/**\n * A React component that provides the React-DnD context\n */\n\nexport var DndProvider = memo(function DndProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _getDndContextValue = getDndContextValue(props),\n _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2),\n manager = _getDndContextValue2[0],\n isGlobalInstance = _getDndContextValue2[1]; // memoized from props\n\n /**\n * If the global context was used to store the DND context\n * then where theres no more references to it we should\n * clean it up to avoid memory leaks\n */\n\n\n useEffect(function () {\n if (isGlobalInstance) {\n var context = getGlobalContext();\n ++refCount;\n return function () {\n if (--refCount === 0) {\n context[INSTANCE_SYM] = null;\n }\n };\n }\n }, []);\n return _jsx(DndContext.Provider, Object.assign({\n value: manager\n }, {\n children: children\n }), void 0);\n});\n\nfunction getDndContextValue(props) {\n if ('manager' in props) {\n var _manager = {\n dragDropManager: props.manager\n };\n return [_manager, false];\n }\n\n var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n var isGlobalInstance = !props.context;\n return [manager, isGlobalInstance];\n}\n\nfunction createSingletonDndContext(backend) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext();\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var debugMode = arguments.length > 3 ? arguments[3] : undefined;\n var ctx = context;\n\n if (!ctx[INSTANCE_SYM]) {\n ctx[INSTANCE_SYM] = {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n }\n\n return ctx[INSTANCE_SYM];\n}\n\nfunction getGlobalContext() {\n return typeof global !== 'undefined' ? global : window;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrag = false;\nvar isCallingIsDragging = false;\nexport var DragSourceMonitorImpl = /*#__PURE__*/function () {\n function DragSourceMonitorImpl(manager) {\n _classCallCheck(this, DragSourceMonitorImpl);\n\n _defineProperty(this, \"internalMonitor\", void 0);\n\n _defineProperty(this, \"sourceId\", null);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DragSourceMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.sourceId;\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally {\n isCallingCanDrag = false;\n }\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n if (!this.sourceId) {\n return false;\n }\n\n invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally {\n isCallingIsDragging = false;\n }\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"isDraggingSource\",\n value: function isDraggingSource(sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n }\n }, {\n key: \"isOverTarget\",\n value: function isOverTarget(targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n }\n }, {\n key: \"getTargetIds\",\n value: function getTargetIds() {\n return this.internalMonitor.getTargetIds();\n }\n }, {\n key: \"isSourcePublic\",\n value: function isSourcePublic() {\n return this.internalMonitor.isSourcePublic();\n }\n }, {\n key: \"getSourceId\",\n value: function getSourceId() {\n return this.internalMonitor.getSourceId();\n }\n }, {\n key: \"subscribeToOffsetChange\",\n value: function subscribeToOffsetChange(listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n }\n }, {\n key: \"canDragSource\",\n value: function canDragSource(sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n }\n }, {\n key: \"canDropOnTarget\",\n value: function canDropOnTarget(targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DragSourceMonitorImpl;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrop = false;\nexport var DropTargetMonitorImpl = /*#__PURE__*/function () {\n function DropTargetMonitorImpl(manager) {\n _classCallCheck(this, DropTargetMonitorImpl);\n\n _defineProperty(this, \"internalMonitor\", void 0);\n\n _defineProperty(this, \"targetId\", null);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DropTargetMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(targetId) {\n this.targetId = targetId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.targetId;\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"canDrop\",\n value: function canDrop() {\n // Cut out early if the target id has not been set. This should prevent errors\n // where the user has an older version of dnd-core like in\n // https://github.com/react-dnd/react-dnd/issues/1310\n if (!this.targetId) {\n return false;\n }\n\n invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally {\n isCallingCanDrop = false;\n }\n }\n }, {\n key: \"isOver\",\n value: function isOver(options) {\n if (!this.targetId) {\n return false;\n }\n\n return this.internalMonitor.isOverTarget(this.targetId, options);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DropTargetMonitorImpl;\n}();","import { invariant } from '@react-dnd/invariant';\nimport { cloneElement, isValidElement } from 'react';\n\nfunction throwIfCompositeComponentElement(element) {\n // Custom components can no longer be wrapped directly in React DnD 2.0\n // so that we don't need to depend on findDOMNode() from react-dom.\n if (typeof element.type === 'string') {\n return;\n }\n\n var displayName = element.type.displayName || element.type.name || 'the component';\n throw new Error('Only native element nodes can now be passed to React DnD connectors.' + \"You can either wrap \".concat(displayName, \" into a <div>, or turn it into a \") + 'drag source or a drop target itself.');\n}\n\nfunction wrapHookToRecognizeElement(hook) {\n return function () {\n var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n var node = elementOrNode;\n hook(node, options); // return the node so it can be chained (e.g. when within callback refs\n // <div ref={node => connectDragSource(connectDropTarget(node))}/>\n\n return node;\n } // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n\n\n var element = elementOrNode;\n throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly\n\n var ref = options ? function (node) {\n return hook(node, options);\n } : hook;\n return cloneWithRef(element, ref);\n };\n}\n\nexport function wrapConnectorHooks(hooks) {\n var wrappedHooks = {};\n Object.keys(hooks).forEach(function (key) {\n var hook = hooks[key]; // ref objects should be passed straight through without wrapping\n\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n var wrappedHook = wrapHookToRecognizeElement(hook);\n\n wrappedHooks[key] = function () {\n return wrappedHook;\n };\n }\n });\n return wrappedHooks;\n}\n\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\n\nfunction cloneWithRef(element, newRef) {\n var previousRef = element.ref;\n invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs');\n\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return cloneElement(element, {\n ref: newRef\n });\n } else {\n return cloneElement(element, {\n ref: function ref(node) {\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport function isRef(obj) {\n return (// eslint-disable-next-line no-prototype-builtins\n obj !== null && _typeof(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current')\n );\n}","function shallowEqual(objA, objB, compare, compareContext) {\n var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (compareResult === false || compareResult === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqual };\n//# sourceMappingURL=shallowequal.esm.js.map\n","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { wrapConnectorHooks } from './wrapConnectorHooks';\nimport { isRef } from './isRef';\nimport { shallowEqual } from '@react-dnd/shallowequal';\nexport var SourceConnector = /*#__PURE__*/function () {\n // The drop target may either be attached via ref or connect function\n // The drag preview may either be attached via ref or connect function\n function SourceConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, SourceConnector);\n\n _defineProperty(this, \"hooks\", wrapConnectorHooks({\n dragSource: function dragSource(node, options) {\n _this.clearDragSource();\n\n _this.dragSourceOptions = options || null;\n\n if (isRef(node)) {\n _this.dragSourceRef = node;\n } else {\n _this.dragSourceNode = node;\n }\n\n _this.reconnectDragSource();\n },\n dragPreview: function dragPreview(node, options) {\n _this.clearDragPreview();\n\n _this.dragPreviewOptions = options || null;\n\n if (isRef(node)) {\n _this.dragPreviewRef = node;\n } else {\n _this.dragPreviewNode = node;\n }\n\n _this.reconnectDragPreview();\n }\n }));\n\n _defineProperty(this, \"handlerId\", null);\n\n _defineProperty(this, \"dragSourceRef\", null);\n\n _defineProperty(this, \"dragSourceNode\", void 0);\n\n _defineProperty(this, \"dragSourceOptionsInternal\", null);\n\n _defineProperty(this, \"dragSourceUnsubscribe\", void 0);\n\n _defineProperty(this, \"dragPreviewRef\", null);\n\n _defineProperty(this, \"dragPreviewNode\", void 0);\n\n _defineProperty(this, \"dragPreviewOptionsInternal\", null);\n\n _defineProperty(this, \"dragPreviewUnsubscribe\", void 0);\n\n _defineProperty(this, \"lastConnectedHandlerId\", null);\n\n _defineProperty(this, \"lastConnectedDragSource\", null);\n\n _defineProperty(this, \"lastConnectedDragSourceOptions\", null);\n\n _defineProperty(this, \"lastConnectedDragPreview\", null);\n\n _defineProperty(this, \"lastConnectedDragPreviewOptions\", null);\n\n _defineProperty(this, \"backend\", void 0);\n\n this.backend = backend;\n }\n\n _createClass(SourceConnector, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"connectTarget\",\n get: function get() {\n return this.dragSource;\n }\n }, {\n key: \"dragSourceOptions\",\n get: function get() {\n return this.dragSourceOptionsInternal;\n },\n set: function set(options) {\n this.dragSourceOptionsInternal = options;\n }\n }, {\n key: \"dragPreviewOptions\",\n get: function get() {\n return this.dragPreviewOptionsInternal;\n },\n set: function set(options) {\n this.dragPreviewOptionsInternal = options;\n }\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n this.reconnectDragSource();\n this.reconnectDragPreview();\n }\n }, {\n key: \"reconnectDragSource\",\n value: function reconnectDragSource() {\n var dragSource = this.dragSource; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n\n if (didChange) {\n this.disconnectDragSource();\n }\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragSource = dragSource;\n this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n }\n }\n }, {\n key: \"reconnectDragPreview\",\n value: function reconnectDragPreview() {\n var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n\n if (didChange) {\n this.disconnectDragPreview();\n }\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dragPreview) {\n this.lastConnectedDragPreview = dragPreview;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragPreview = dragPreview;\n this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n }\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didConnectedDragSourceChange\",\n value: function didConnectedDragSourceChange() {\n return this.lastConnectedDragSource !== this.dragSource;\n }\n }, {\n key: \"didConnectedDragPreviewChange\",\n value: function didConnectedDragPreviewChange() {\n return this.lastConnectedDragPreview !== this.dragPreview;\n }\n }, {\n key: \"didDragSourceOptionsChange\",\n value: function didDragSourceOptionsChange() {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n }\n }, {\n key: \"didDragPreviewOptionsChange\",\n value: function didDragPreviewOptionsChange() {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n }\n }, {\n key: \"disconnectDragSource\",\n value: function disconnectDragSource() {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n }\n }\n }, {\n key: \"disconnectDragPreview\",\n value: function disconnectDragPreview() {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }\n }, {\n key: \"dragSource\",\n get: function get() {\n return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n }\n }, {\n key: \"dragPreview\",\n get: function get() {\n return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n }\n }, {\n key: \"clearDragSource\",\n value: function clearDragSource() {\n this.dragSourceNode = null;\n this.dragSourceRef = null;\n }\n }, {\n key: \"clearDragPreview\",\n value: function clearDragPreview() {\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }]);\n\n return SourceConnector;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport { wrapConnectorHooks } from './wrapConnectorHooks';\nimport { isRef } from './isRef';\nexport var TargetConnector = /*#__PURE__*/function () {\n // The drop target may either be attached via ref or connect function\n function TargetConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, TargetConnector);\n\n _defineProperty(this, \"hooks\", wrapConnectorHooks({\n dropTarget: function dropTarget(node, options) {\n _this.clearDropTarget();\n\n _this.dropTargetOptions = options;\n\n if (isRef(node)) {\n _this.dropTargetRef = node;\n } else {\n _this.dropTargetNode = node;\n }\n\n _this.reconnect();\n }\n }));\n\n _defineProperty(this, \"handlerId\", null);\n\n _defineProperty(this, \"dropTargetRef\", null);\n\n _defineProperty(this, \"dropTargetNode\", void 0);\n\n _defineProperty(this, \"dropTargetOptionsInternal\", null);\n\n _defineProperty(this, \"unsubscribeDropTarget\", void 0);\n\n _defineProperty(this, \"lastConnectedHandlerId\", null);\n\n _defineProperty(this, \"lastConnectedDropTarget\", null);\n\n _defineProperty(this, \"lastConnectedDropTargetOptions\", null);\n\n _defineProperty(this, \"backend\", void 0);\n\n this.backend = backend;\n }\n\n _createClass(TargetConnector, [{\n key: \"connectTarget\",\n get: function get() {\n return this.dropTarget;\n }\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n // if nothing has changed then don't resubscribe\n var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n\n if (didChange) {\n this.disconnectDropTarget();\n }\n\n var dropTarget = this.dropTarget;\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDropTarget = dropTarget;\n this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n }\n }\n }, {\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"dropTargetOptions\",\n get: function get() {\n return this.dropTargetOptionsInternal;\n },\n set: function set(options) {\n this.dropTargetOptionsInternal = options;\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didDropTargetChange\",\n value: function didDropTargetChange() {\n return this.lastConnectedDropTarget !== this.dropTarget;\n }\n }, {\n key: \"didOptionsChange\",\n value: function didOptionsChange() {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n }\n }, {\n key: \"disconnectDropTarget\",\n value: function disconnectDropTarget() {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n }\n }, {\n key: \"dropTarget\",\n get: function get() {\n return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n }\n }, {\n key: \"clearDropTarget\",\n value: function clearDropTarget() {\n this.dropTargetRef = null;\n this.dropTargetNode = null;\n }\n }]);\n\n return TargetConnector;\n}();","export function registerTarget(type, target, manager) {\n var registry = manager.getRegistry();\n var targetId = registry.addTarget(type, target);\n return [targetId, function () {\n return registry.removeTarget(targetId);\n }];\n}\nexport function registerSource(type, source, manager) {\n var registry = manager.getRegistry();\n var sourceId = registry.addSource(type, source);\n return [sourceId, function () {\n return registry.removeSource(sourceId);\n }];\n}","import { useLayoutEffect, useEffect } from 'react'; // suppress the useLayoutEffect warning on server side.\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var DragSourceImpl = /*#__PURE__*/function () {\n function DragSourceImpl(spec, monitor, connector) {\n _classCallCheck(this, DragSourceImpl);\n\n _defineProperty(this, \"spec\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"connector\", void 0);\n\n this.spec = spec;\n this.monitor = monitor;\n this.connector = connector;\n }\n\n _createClass(DragSourceImpl, [{\n key: \"beginDrag\",\n value: function beginDrag() {\n var _result;\n\n var spec = this.spec;\n var monitor = this.monitor;\n var result = null;\n\n if (_typeof(spec.item) === 'object') {\n result = spec.item;\n } else if (typeof spec.item === 'function') {\n result = spec.item(monitor);\n } else {\n result = {};\n }\n\n return (_result = result) !== null && _result !== void 0 ? _result : null;\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n var spec = this.spec;\n var monitor = this.monitor;\n\n if (typeof spec.canDrag === 'boolean') {\n return spec.canDrag;\n } else if (typeof spec.canDrag === 'function') {\n return spec.canDrag(monitor);\n } else {\n return true;\n }\n }\n }, {\n key: \"isDragging\",\n value: function isDragging(globalMonitor, target) {\n var spec = this.spec;\n var monitor = this.monitor;\n var isDragging = spec.isDragging;\n return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();\n }\n }, {\n key: \"endDrag\",\n value: function endDrag() {\n var spec = this.spec;\n var monitor = this.monitor;\n var connector = this.connector;\n var end = spec.end;\n\n if (end) {\n end(monitor.getItem(), monitor);\n }\n\n connector.reconnect();\n }\n }]);\n\n return DragSourceImpl;\n}();","import { useEffect, useMemo } from 'react';\nimport { DragSourceImpl } from './DragSourceImpl';\nexport function useDragSource(spec, monitor, connector) {\n var handler = useMemo(function () {\n return new DragSourceImpl(spec, monitor, connector);\n }, [monitor, connector]);\n useEffect(function () {\n handler.spec = spec;\n }, [spec]);\n return handler;\n}","import { useContext } from 'react';\nimport { invariant } from '@react-dnd/invariant';\nimport { DndContext } from '../core';\n/**\n * A hook to retrieve the DragDropManager from Context\n */\n\nexport function useDragDropManager() {\n var _useContext = useContext(DndContext),\n dragDropManager = _useContext.dragDropManager;\n\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\nexport function useDragType(spec) {\n return useMemo(function () {\n var result = spec.type;\n invariant(result != null, 'spec.type must be defined');\n return result;\n }, [spec]);\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { registerSource } from '../../internals';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nimport { useDragSource } from './useDragSource';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useDragType } from './useDragType';\nexport function useRegisteredDragSource(spec, monitor, connector) {\n var manager = useDragDropManager();\n var handler = useDragSource(spec, monitor, connector);\n var itemType = useDragType(spec);\n useIsomorphicLayoutEffect(function registerDragSource() {\n if (itemType != null) {\n var _registerSource = registerSource(itemType, handler, manager),\n _registerSource2 = _slicedToArray(_registerSource, 2),\n handlerId = _registerSource2[0],\n unregister = _registerSource2[1];\n\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }\n }, [manager, monitor, connector, handler, itemType]);\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { useMemo } from 'react';\nexport function useOptionalFactory(arg, deps) {\n var memoDeps = _toConsumableArray(deps || []);\n\n if (deps == null && typeof arg !== 'function') {\n memoDeps.push(arg);\n }\n\n return useMemo(function () {\n return typeof arg === 'function' ? arg() : arg;\n }, memoDeps);\n}","import { useMemo } from 'react';\nimport { DragSourceMonitorImpl } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nexport function useDragSourceMonitor() {\n var manager = useDragDropManager();\n return useMemo(function () {\n return new DragSourceMonitorImpl(manager);\n }, [manager]);\n}","import { useMemo } from 'react';\nimport { SourceConnector } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nexport function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {\n var manager = useDragDropManager();\n var connector = useMemo(function () {\n return new SourceConnector(manager.getBackend());\n }, [manager]);\n useIsomorphicLayoutEffect(function () {\n connector.dragSourceOptions = dragSourceOptions || null;\n connector.reconnect();\n return function () {\n return connector.disconnectDragSource();\n };\n }, [connector, dragSourceOptions]);\n useIsomorphicLayoutEffect(function () {\n connector.dragPreviewOptions = dragPreviewOptions || null;\n connector.reconnect();\n return function () {\n return connector.disconnectDragPreview();\n };\n }, [connector, dragPreviewOptions]);\n return connector;\n}","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport equal from 'fast-deep-equal';\nimport { useState, useCallback } from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\n\nexport function useCollector(monitor, collect, onUpdate) {\n var _useState = useState(function () {\n return collect(monitor);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n collected = _useState2[0],\n setCollected = _useState2[1];\n\n var updateCollected = useCallback(function () {\n var nextValue = collect(monitor); // This needs to be a deep-equality check because some monitor-collected values\n // include XYCoord objects that may be equivalent, but do not have instance equality.\n\n if (!equal(collected, nextValue)) {\n setCollected(nextValue);\n\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [collected, monitor, onUpdate]); // update the collected properties after react renders.\n // Note that the \"Dustbin Stress Test\" fails if this is not\n // done when the component updates\n\n useIsomorphicLayoutEffect(updateCollected);\n return [collected, updateCollected];\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useCollector } from './useCollector';\nexport function useMonitorOutput(monitor, collect, onCollect) {\n var _useCollector = useCollector(monitor, collect, onCollect),\n _useCollector2 = _slicedToArray(_useCollector, 2),\n collected = _useCollector2[0],\n updateCollected = _useCollector2[1];\n\n useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {\n var handlerId = monitor.getHandlerId();\n\n if (handlerId == null) {\n return;\n }\n\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [handlerId]\n });\n }, [monitor, updateCollected]);\n return collected;\n}","import { useMonitorOutput } from './useMonitorOutput';\nexport function useCollectedProps(collector, monitor, connector) {\n return useMonitorOutput(monitor, collector || function () {\n return {};\n }, function () {\n return connector.reconnect();\n });\n}","import { useMemo } from 'react';\nexport function useConnectDragSource(connector) {\n return useMemo(function () {\n return connector.hooks.dragSource();\n }, [connector]);\n}\nexport function useConnectDragPreview(connector) {\n return useMemo(function () {\n return connector.hooks.dragPreview();\n }, [connector]);\n}","import { useRegisteredDragSource } from './useRegisteredDragSource';\nimport { useOptionalFactory } from '../useOptionalFactory';\nimport { useDragSourceMonitor } from './useDragSourceMonitor';\nimport { useDragSourceConnector } from './useDragSourceConnector';\nimport { useCollectedProps } from '../useCollectedProps';\nimport { useConnectDragPreview, useConnectDragSource } from './connectors';\nimport { invariant } from '@react-dnd/invariant';\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\n\nexport function useDrag(specArg, deps) {\n var spec = useOptionalFactory(specArg, deps);\n invariant(!spec.begin, \"useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)\");\n var monitor = useDragSourceMonitor();\n var connector = useDragSourceConnector(spec.options, spec.previewOptions);\n useRegisteredDragSource(spec, monitor, connector);\n return [useCollectedProps(spec.collect, monitor, connector), useConnectDragSource(connector), useConnectDragPreview(connector)];\n}","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */\n\nexport function useAccept(spec) {\n var accept = spec.accept;\n return useMemo(function () {\n invariant(spec.accept != null, 'accept must be defined');\n return Array.isArray(accept) ? accept : [accept];\n }, [accept]);\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var DropTargetImpl = /*#__PURE__*/function () {\n function DropTargetImpl(spec, monitor) {\n _classCallCheck(this, DropTargetImpl);\n\n _defineProperty(this, \"spec\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n this.spec = spec;\n this.monitor = monitor;\n }\n\n _createClass(DropTargetImpl, [{\n key: \"canDrop\",\n value: function canDrop() {\n var spec = this.spec;\n var monitor = this.monitor;\n return spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true;\n }\n }, {\n key: \"hover\",\n value: function hover() {\n var spec = this.spec;\n var monitor = this.monitor;\n\n if (spec.hover) {\n spec.hover(monitor.getItem(), monitor);\n }\n }\n }, {\n key: \"drop\",\n value: function drop() {\n var spec = this.spec;\n var monitor = this.monitor;\n\n if (spec.drop) {\n return spec.drop(monitor.getItem(), monitor);\n }\n }\n }]);\n\n return DropTargetImpl;\n}();","import { useEffect, useMemo } from 'react';\nimport { DropTargetImpl } from './DropTargetImpl';\nexport function useDropTarget(spec, monitor) {\n var dropTarget = useMemo(function () {\n return new DropTargetImpl(spec, monitor);\n }, [monitor]);\n useEffect(function () {\n dropTarget.spec = spec;\n }, [spec]);\n return dropTarget;\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { registerTarget } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nimport { useAccept } from './useAccept';\nimport { useDropTarget } from './useDropTarget';\nexport function useRegisteredDropTarget(spec, monitor, connector) {\n var manager = useDragDropManager();\n var dropTarget = useDropTarget(spec, monitor);\n var accept = useAccept(spec);\n useIsomorphicLayoutEffect(function registerDropTarget() {\n var _registerTarget = registerTarget(accept, dropTarget, manager),\n _registerTarget2 = _slicedToArray(_registerTarget, 2),\n handlerId = _registerTarget2[0],\n unregister = _registerTarget2[1];\n\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, [manager, monitor, dropTarget, connector, accept.map(function (a) {\n return a.toString();\n }).join('|')]);\n}","import { useMemo } from 'react';\nimport { DropTargetMonitorImpl } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nexport function useDropTargetMonitor() {\n var manager = useDragDropManager();\n return useMemo(function () {\n return new DropTargetMonitorImpl(manager);\n }, [manager]);\n}","import { useMemo } from 'react';\nimport { TargetConnector } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nexport function useDropTargetConnector(options) {\n var manager = useDragDropManager();\n var connector = useMemo(function () {\n return new TargetConnector(manager.getBackend());\n }, [manager]);\n useIsomorphicLayoutEffect(function () {\n connector.dropTargetOptions = options || null;\n connector.reconnect();\n return function () {\n return connector.disconnectDropTarget();\n };\n }, [options]);\n return connector;\n}","import { useMemo } from 'react';\nexport function useConnectDropTarget(connector) {\n return useMemo(function () {\n return connector.hooks.dropTarget();\n }, [connector]);\n}","import { useRegisteredDropTarget } from './useRegisteredDropTarget';\nimport { useOptionalFactory } from '../useOptionalFactory';\nimport { useDropTargetMonitor } from './useDropTargetMonitor';\nimport { useDropTargetConnector } from './useDropTargetConnector';\nimport { useCollectedProps } from '../useCollectedProps';\nimport { useConnectDropTarget } from './connectors';\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\n\nexport function useDrop(specArg, deps) {\n var spec = useOptionalFactory(specArg, deps);\n var monitor = useDropTargetMonitor();\n var connector = useDropTargetConnector(spec.options);\n useRegisteredDropTarget(spec, monitor, connector);\n return [useCollectedProps(spec.collect, monitor, connector), useConnectDropTarget(connector)];\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { useEffect } from 'react';\nimport { useDragDropManager } from './useDragDropManager';\nimport { useCollector } from './useCollector';\n/**\n * useDragLayer Hook\n * @param collector The property collector\n */\n\nexport function useDragLayer(collect) {\n var dragDropManager = useDragDropManager();\n var monitor = dragDropManager.getMonitor();\n\n var _useCollector = useCollector(monitor, collect),\n _useCollector2 = _slicedToArray(_useCollector, 2),\n collected = _useCollector2[0],\n updateCollected = _useCollector2[1];\n\n useEffect(function () {\n return monitor.subscribeToOffsetChange(updateCollected);\n });\n useEffect(function () {\n return monitor.subscribeToStateChange(updateCollected);\n });\n return collected;\n}","// cheap lodash replacements\nexport function memoize(fn) {\n var result = null;\n\n var memoized = function memoized() {\n if (result == null) {\n result = fn();\n }\n\n return result;\n };\n\n return memoized;\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\nexport function union(itemsA, itemsB) {\n var set = new Set();\n\n var insertItem = function insertItem(item) {\n return set.add(item);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n set.forEach(function (key) {\n return result.push(key);\n });\n return result;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { union, without } from './utils/js_utils';\nexport var EnterLeaveCounter = /*#__PURE__*/function () {\n function EnterLeaveCounter(isNodeInDocument) {\n _classCallCheck(this, EnterLeaveCounter);\n\n _defineProperty(this, \"entered\", []);\n\n _defineProperty(this, \"isNodeInDocument\", void 0);\n\n this.isNodeInDocument = isNodeInDocument;\n }\n\n _createClass(EnterLeaveCounter, [{\n key: \"enter\",\n value: function enter(enteringNode) {\n var _this = this;\n\n var previousLength = this.entered.length;\n\n var isNodeEntered = function isNodeEntered(node) {\n return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));\n };\n\n this.entered = union(this.entered.filter(isNodeEntered), [enteringNode]);\n return previousLength === 0 && this.entered.length > 0;\n }\n }, {\n key: \"leave\",\n value: function leave(leavingNode) {\n var previousLength = this.entered.length;\n this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);\n return previousLength > 0 && this.entered.length === 0;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.entered = [];\n }\n }]);\n\n return EnterLeaveCounter;\n}();","import { memoize } from './utils/js_utils';\nexport var isFirefox = memoize(function () {\n return /firefox/i.test(navigator.userAgent);\n});\nexport var isSafari = memoize(function () {\n return Boolean(window.safari);\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var MonotonicInterpolant = /*#__PURE__*/function () {\n function MonotonicInterpolant(xs, ys) {\n _classCallCheck(this, MonotonicInterpolant);\n\n _defineProperty(this, \"xs\", void 0);\n\n _defineProperty(this, \"ys\", void 0);\n\n _defineProperty(this, \"c1s\", void 0);\n\n _defineProperty(this, \"c2s\", void 0);\n\n _defineProperty(this, \"c3s\", void 0);\n\n var length = xs.length; // Rearrange xs and ys so that xs is sorted\n\n var indexes = [];\n\n for (var i = 0; i < length; i++) {\n indexes.push(i);\n }\n\n indexes.sort(function (a, b) {\n return xs[a] < xs[b] ? -1 : 1;\n }); // Get consecutive differences and slopes\n\n var dys = [];\n var dxs = [];\n var ms = [];\n var dx;\n var dy;\n\n for (var _i = 0; _i < length - 1; _i++) {\n dx = xs[_i + 1] - xs[_i];\n dy = ys[_i + 1] - ys[_i];\n dxs.push(dx);\n dys.push(dy);\n ms.push(dy / dx);\n } // Get degree-1 coefficients\n\n\n var c1s = [ms[0]];\n\n for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {\n var m2 = ms[_i2];\n var mNext = ms[_i2 + 1];\n\n if (m2 * mNext <= 0) {\n c1s.push(0);\n } else {\n dx = dxs[_i2];\n var dxNext = dxs[_i2 + 1];\n var common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n }\n }\n\n c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients\n\n var c2s = [];\n var c3s = [];\n var m;\n\n for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {\n m = ms[_i3];\n var c1 = c1s[_i3];\n var invDx = 1 / dxs[_i3];\n\n var _common = c1 + c1s[_i3 + 1] - m - m;\n\n c2s.push((m - c1 - _common) * invDx);\n c3s.push(_common * invDx * invDx);\n }\n\n this.xs = xs;\n this.ys = ys;\n this.c1s = c1s;\n this.c2s = c2s;\n this.c3s = c3s;\n }\n\n _createClass(MonotonicInterpolant, [{\n key: \"interpolate\",\n value: function interpolate(x) {\n var xs = this.xs,\n ys = this.ys,\n c1s = this.c1s,\n c2s = this.c2s,\n c3s = this.c3s; // The rightmost point in the dataset should give an exact result\n\n var i = xs.length - 1;\n\n if (x === xs[i]) {\n return ys[i];\n } // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\n\n var low = 0;\n var high = c3s.length - 1;\n var mid;\n\n while (low <= high) {\n mid = Math.floor(0.5 * (low + high));\n var xHere = xs[mid];\n\n if (xHere < x) {\n low = mid + 1;\n } else if (xHere > x) {\n high = mid - 1;\n } else {\n return ys[mid];\n }\n }\n\n i = Math.max(0, high); // Interpolate\n\n var diff = x - xs[i];\n var diffSq = diff * diff;\n return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n }\n }]);\n\n return MonotonicInterpolant;\n}();","import { isSafari, isFirefox } from './BrowserDetector';\nimport { MonotonicInterpolant } from './MonotonicInterpolant';\nvar ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\n if (!el) {\n return null;\n }\n\n var _el$getBoundingClient = el.getBoundingClientRect(),\n top = _el$getBoundingClient.top,\n left = _el$getBoundingClient.left;\n\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY\n };\n}\n\nfunction isImageNode(node) {\n var _document$documentEle;\n\n return node.nodeName === 'IMG' && (isFirefox() || !((_document$documentEle = document.documentElement) !== null && _document$documentEle !== void 0 && _document$documentEle.contains(node)));\n}\n\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers\n\n if (isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n }\n\n return {\n dragPreviewWidth: dragPreviewWidth,\n dragPreviewHeight: dragPreviewHeight\n };\n}\n\nexport function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {\n // The browsers will use the image intrinsic size under different conditions.\n // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n var isImage = isImageNode(dragPreview);\n var dragPreviewNode = isImage ? sourceNode : dragPreview;\n var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n var offsetFromDragPreview = {\n x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n };\n var sourceWidth = sourceNode.offsetWidth,\n sourceHeight = sourceNode.offsetHeight;\n var anchorX = anchorPoint.anchorX,\n anchorY = anchorPoint.anchorY;\n\n var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),\n dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,\n dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;\n\n var calculateYOffset = function calculateYOffset() {\n var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top\n offsetFromDragPreview.y, // Align at the center\n offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);\n var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug\n\n if (isSafari() && isImage) {\n // We'll have to wait for @3x to see if this is entirely correct\n y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n }\n\n return y;\n };\n\n var calculateXOffset = function calculateXOffset() {\n // Interpolate coordinates depending on anchor point\n // If you know a simpler way to do this, let me know\n var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left\n offsetFromDragPreview.x, // Align at the center\n offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);\n return interpolantX.interpolate(anchorX);\n }; // Force offsets if specified in the options.\n\n\n var offsetX = offsetPoint.offsetX,\n offsetY = offsetPoint.offsetY;\n var isManualOffsetX = offsetX === 0 || offsetX;\n var isManualOffsetY = offsetY === 0 || offsetY;\n return {\n x: isManualOffsetX ? offsetX : calculateXOffset(),\n y: isManualOffsetY ? offsetY : calculateYOffset()\n };\n}","export var FILE = '__NATIVE_FILE__';\nexport var URL = '__NATIVE_URL__';\nexport var TEXT = '__NATIVE_TEXT__';\nexport var HTML = '__NATIVE_HTML__';","export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n var result = typesToTry.reduce(function (resultSoFar, typeToTry) {\n return resultSoFar || dataTransfer.getData(typeToTry);\n }, '');\n return result != null ? result : defaultValue;\n}","var _nativeTypesConfig;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as NativeTypes from '../NativeTypes';\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer';\nexport var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {\n exposeProperties: {\n files: function files(dataTransfer) {\n return Array.prototype.slice.call(dataTransfer.files);\n },\n items: function items(dataTransfer) {\n return dataTransfer.items;\n },\n dataTransfer: function dataTransfer(_dataTransfer) {\n return _dataTransfer;\n }\n },\n matchesTypes: ['Files']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.HTML, {\n exposeProperties: {\n html: function html(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n },\n dataTransfer: function dataTransfer(_dataTransfer2) {\n return _dataTransfer2;\n }\n },\n matchesTypes: ['Html', 'text/html']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {\n exposeProperties: {\n urls: function urls(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\n },\n dataTransfer: function dataTransfer(_dataTransfer3) {\n return _dataTransfer3;\n }\n },\n matchesTypes: ['Url', 'text/uri-list']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {\n exposeProperties: {\n text: function text(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n },\n dataTransfer: function dataTransfer(_dataTransfer4) {\n return _dataTransfer4;\n }\n },\n matchesTypes: ['Text', 'text/plain']\n}), _nativeTypesConfig);","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var NativeDragSource = /*#__PURE__*/function () {\n function NativeDragSource(config) {\n _classCallCheck(this, NativeDragSource);\n\n _defineProperty(this, \"item\", void 0);\n\n _defineProperty(this, \"config\", void 0);\n\n this.config = config;\n this.item = {};\n this.initializeExposedProperties();\n }\n\n _createClass(NativeDragSource, [{\n key: \"initializeExposedProperties\",\n value: function initializeExposedProperties() {\n var _this = this;\n\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n Object.defineProperty(_this.item, property, {\n configurable: true,\n enumerable: true,\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn(\"Browser doesn't allow reading \\\"\".concat(property, \"\\\" until the drop event.\"));\n return null;\n }\n });\n });\n }\n }, {\n key: \"loadDataTransfer\",\n value: function loadDataTransfer(dataTransfer) {\n var _this2 = this;\n\n if (dataTransfer) {\n var newProperties = {};\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n newProperties[property] = {\n value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes),\n configurable: true,\n enumerable: true\n };\n });\n Object.defineProperties(this.item, newProperties);\n }\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n return true;\n }\n }, {\n key: \"beginDrag\",\n value: function beginDrag() {\n return this.item;\n }\n }, {\n key: \"isDragging\",\n value: function isDragging(monitor, handle) {\n return handle === monitor.getSourceId();\n }\n }, {\n key: \"endDrag\",\n value: function endDrag() {// empty\n }\n }]);\n\n return NativeDragSource;\n}();","import { nativeTypesConfig } from './nativeTypesConfig';\nimport { NativeDragSource } from './NativeDragSource';\nexport function createNativeDragSource(type, dataTransfer) {\n var result = new NativeDragSource(nativeTypesConfig[type]);\n result.loadDataTransfer(dataTransfer);\n return result;\n}\nexport function matchNativeItemType(dataTransfer) {\n if (!dataTransfer) {\n return null;\n }\n\n var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {\n var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;\n return matchesTypes.some(function (t) {\n return dataTransferTypes.indexOf(t) > -1;\n });\n })[0] || null;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var OptionsReader = /*#__PURE__*/function () {\n function OptionsReader(globalContext, options) {\n _classCallCheck(this, OptionsReader);\n\n _defineProperty(this, \"ownerDocument\", null);\n\n _defineProperty(this, \"globalContext\", void 0);\n\n _defineProperty(this, \"optionsArgs\", void 0);\n\n this.globalContext = globalContext;\n this.optionsArgs = options;\n }\n\n _createClass(OptionsReader, [{\n key: \"window\",\n get: function get() {\n if (this.globalContext) {\n return this.globalContext;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n }\n }, {\n key: \"document\",\n get: function get() {\n var _this$globalContext;\n\n if ((_this$globalContext = this.globalContext) !== null && _this$globalContext !== void 0 && _this$globalContext.document) {\n return this.globalContext.document;\n } else if (this.window) {\n return this.window.document;\n } else {\n return undefined;\n }\n }\n }, {\n key: \"rootElement\",\n get: function get() {\n var _this$optionsArgs;\n\n return ((_this$optionsArgs = this.optionsArgs) === null || _this$optionsArgs === void 0 ? void 0 : _this$optionsArgs.rootElement) || this.window;\n }\n }]);\n\n return OptionsReader;\n}();","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { EnterLeaveCounter } from './EnterLeaveCounter';\nimport { getNodeClientOffset, getEventClientOffset, getDragPreviewOffset } from './OffsetUtils';\nimport { createNativeDragSource, matchNativeItemType } from './NativeDragSources';\nimport * as NativeTypes from './NativeTypes';\nimport { OptionsReader } from './OptionsReader';\nexport var HTML5BackendImpl = /*#__PURE__*/function () {\n // React-Dnd Components\n // Internal State\n function HTML5BackendImpl(manager, globalContext, options) {\n var _this = this;\n\n _classCallCheck(this, HTML5BackendImpl);\n\n _defineProperty(this, \"options\", void 0);\n\n _defineProperty(this, \"actions\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"registry\", void 0);\n\n _defineProperty(this, \"enterLeaveCounter\", void 0);\n\n _defineProperty(this, \"sourcePreviewNodes\", new Map());\n\n _defineProperty(this, \"sourcePreviewNodeOptions\", new Map());\n\n _defineProperty(this, \"sourceNodes\", new Map());\n\n _defineProperty(this, \"sourceNodeOptions\", new Map());\n\n _defineProperty(this, \"dragStartSourceIds\", null);\n\n _defineProperty(this, \"dropTargetIds\", []);\n\n _defineProperty(this, \"dragEnterTargetIds\", []);\n\n _defineProperty(this, \"currentNativeSource\", null);\n\n _defineProperty(this, \"currentNativeHandle\", null);\n\n _defineProperty(this, \"currentDragSourceNode\", null);\n\n _defineProperty(this, \"altKeyPressed\", false);\n\n _defineProperty(this, \"mouseMoveTimeoutTimer\", null);\n\n _defineProperty(this, \"asyncEndDragFrameId\", null);\n\n _defineProperty(this, \"dragOverTargetIds\", null);\n\n _defineProperty(this, \"lastClientOffset\", null);\n\n _defineProperty(this, \"hoverRafId\", null);\n\n _defineProperty(this, \"getSourceClientOffset\", function (sourceId) {\n var source = _this.sourceNodes.get(sourceId);\n\n return source && getNodeClientOffset(source) || null;\n });\n\n _defineProperty(this, \"endDragNativeItem\", function () {\n if (!_this.isDraggingNativeItem()) {\n return;\n }\n\n _this.actions.endDrag();\n\n if (_this.currentNativeHandle) {\n _this.registry.removeSource(_this.currentNativeHandle);\n }\n\n _this.currentNativeHandle = null;\n _this.currentNativeSource = null;\n });\n\n _defineProperty(this, \"isNodeInDocument\", function (node) {\n // Check the node either in the main document or in the current context\n return Boolean(node && _this.document && _this.document.body && _this.document.body.contains(node));\n });\n\n _defineProperty(this, \"endDragIfSourceWasRemovedFromDOM\", function () {\n var node = _this.currentDragSourceNode;\n\n if (node == null || _this.isNodeInDocument(node)) {\n return;\n }\n\n if (_this.clearCurrentDragSourceNode() && _this.monitor.isDragging()) {\n _this.actions.endDrag();\n }\n });\n\n _defineProperty(this, \"handleTopDragStartCapture\", function () {\n _this.clearCurrentDragSourceNode();\n\n _this.dragStartSourceIds = [];\n });\n\n _defineProperty(this, \"handleTopDragStart\", function (e) {\n if (e.defaultPrevented) {\n return;\n }\n\n var dragStartSourceIds = _this.dragStartSourceIds;\n _this.dragStartSourceIds = null;\n var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died\n\n if (_this.monitor.isDragging()) {\n _this.actions.endDrag();\n } // Don't publish the source just yet (see why below)\n\n\n _this.actions.beginDrag(dragStartSourceIds || [], {\n publishSource: false,\n getSourceClientOffset: _this.getSourceClientOffset,\n clientOffset: clientOffset\n });\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (_this.monitor.isDragging()) {\n if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n // Use custom drag image if user specifies it.\n // If child drag source refuses drag but parent agrees,\n // use parent's node as drag image. Neither works in IE though.\n var sourceId = _this.monitor.getSourceId();\n\n var sourceNode = _this.sourceNodes.get(sourceId);\n\n var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;\n\n if (dragPreview) {\n var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(),\n anchorX = _this$getCurrentSourc.anchorX,\n anchorY = _this$getCurrentSourc.anchorY,\n offsetX = _this$getCurrentSourc.offsetX,\n offsetY = _this$getCurrentSourc.offsetY;\n\n var anchorPoint = {\n anchorX: anchorX,\n anchorY: anchorY\n };\n var offsetPoint = {\n offsetX: offsetX,\n offsetY: offsetY\n };\n var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n }\n\n try {\n // Firefox won't drag without setting data\n dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});\n } catch (err) {// IE doesn't support MIME types in setData\n } // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n\n\n _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not?\n\n\n var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(),\n captureDraggingState = _this$getCurrentSourc2.captureDraggingState;\n\n if (!captureDraggingState) {\n // Usually we want to publish it in the next tick so that browser\n // is able to screenshot the current (not yet dragging) state.\n //\n // It also neatly avoids a situation where render() returns null\n // in the same tick for the source element, and browser freaks out.\n setTimeout(function () {\n return _this.actions.publishDragSource();\n }, 0);\n } else {\n // In some cases the user may want to override this behavior, e.g.\n // to work around IE not supporting custom drag previews.\n //\n // When using a custom drag layer, the only way to prevent\n // the default drag preview from drawing in IE is to screenshot\n // the dragging state in which the node itself has zero opacity\n // and height. In this case, though, returning null from render()\n // will abruptly end the dragging, which is not obvious.\n //\n // This is the reason such behavior is strictly opt-in.\n _this.actions.publishDragSource();\n }\n } else if (nativeType) {\n // A native item (such as URL) dragged from inside the document\n _this.beginDragNativeItem(nativeType);\n } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n // Just let it drag. It's a native type (URL or text) and will be picked up in\n // dragenter handler.\n return;\n } else {\n // If by this time no drag source reacted, tell browser not to drag.\n e.preventDefault();\n }\n });\n\n _defineProperty(this, \"handleTopDragEndCapture\", function () {\n if (_this.clearCurrentDragSourceNode() && _this.monitor.isDragging()) {\n // Firefox can dispatch this event in an infinite loop\n // if dragend handler does something like showing an alert.\n // Only proceed if we have not handled it already.\n _this.actions.endDrag();\n }\n });\n\n _defineProperty(this, \"handleTopDragEnterCapture\", function (e) {\n _this.dragEnterTargetIds = [];\n\n var isFirstEnter = _this.enterLeaveCounter.enter(e.target);\n\n if (!isFirstEnter || _this.monitor.isDragging()) {\n return;\n }\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n _this.beginDragNativeItem(nativeType, dataTransfer);\n }\n });\n\n _defineProperty(this, \"handleTopDragEnter\", function (e) {\n var dragEnterTargetIds = _this.dragEnterTargetIds;\n _this.dragEnterTargetIds = [];\n\n if (!_this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n return;\n }\n\n _this.altKeyPressed = e.altKey; // If the target changes position as the result of `dragenter`, `dragover` might still\n // get dispatched despite target being no longer there. The easy solution is to check\n // whether there actually is a target before firing `hover`.\n\n if (dragEnterTargetIds.length > 0) {\n _this.actions.hover(dragEnterTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n }\n\n var canDrop = dragEnterTargetIds.some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n }\n });\n\n _defineProperty(this, \"handleTopDragOverCapture\", function () {\n _this.dragOverTargetIds = [];\n });\n\n _defineProperty(this, \"handleTopDragOver\", function (e) {\n var dragOverTargetIds = _this.dragOverTargetIds;\n _this.dragOverTargetIds = [];\n\n if (!_this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n // Prevent default \"drop and blow away the whole document\" action.\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n\n return;\n }\n\n _this.altKeyPressed = e.altKey;\n _this.lastClientOffset = getEventClientOffset(e);\n\n if (_this.hoverRafId === null && typeof requestAnimationFrame !== 'undefined') {\n _this.hoverRafId = requestAnimationFrame(function () {\n if (_this.monitor.isDragging()) {\n _this.actions.hover(dragOverTargetIds || [], {\n clientOffset: _this.lastClientOffset\n });\n }\n\n _this.hoverRafId = null;\n });\n }\n\n var canDrop = (dragOverTargetIds || []).some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n } else if (_this.isDraggingNativeItem()) {\n // Don't show a nice cursor but still prevent default\n // \"drop and blow away the whole document\" action.\n e.preventDefault();\n } else {\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n }\n });\n\n _defineProperty(this, \"handleTopDragLeaveCapture\", function (e) {\n if (_this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n\n var isLastLeave = _this.enterLeaveCounter.leave(e.target);\n\n if (!isLastLeave) {\n return;\n }\n\n if (_this.isDraggingNativeItem()) {\n setTimeout(function () {\n return _this.endDragNativeItem();\n }, 0);\n }\n });\n\n _defineProperty(this, \"handleTopDropCapture\", function (e) {\n _this.dropTargetIds = [];\n\n if (_this.isDraggingNativeItem()) {\n var _this$currentNativeSo;\n\n e.preventDefault();\n (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer);\n } else if (matchNativeItemType(e.dataTransfer)) {\n // Dragging some elements, like <a> and <img> may still behave like a native drag event,\n // even if the current drag event matches a user-defined type.\n // Stop the default behavior when we're not expecting a native item to be dropped.\n e.preventDefault();\n }\n\n _this.enterLeaveCounter.reset();\n });\n\n _defineProperty(this, \"handleTopDrop\", function (e) {\n var dropTargetIds = _this.dropTargetIds;\n _this.dropTargetIds = [];\n\n _this.actions.hover(dropTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n\n _this.actions.drop({\n dropEffect: _this.getCurrentDropEffect()\n });\n\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n } else if (_this.monitor.isDragging()) {\n _this.actions.endDrag();\n }\n });\n\n _defineProperty(this, \"handleSelectStart\", function (e) {\n var target = e.target; // Only IE requires us to explicitly say\n // we want drag drop operation to start\n\n if (typeof target.dragDrop !== 'function') {\n return;\n } // Inputs and textareas should be selectable\n\n\n if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return;\n } // For other targets, ask IE\n // to enable drag and drop\n\n\n e.preventDefault();\n target.dragDrop();\n });\n\n this.options = new OptionsReader(globalContext, options);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);\n }\n /**\n * Generate profiling statistics for the HTML5Backend.\n */\n\n\n _createClass(HTML5BackendImpl, [{\n key: \"profile\",\n value: function profile() {\n var _this$dragStartSource, _this$dragOverTargetI;\n\n return {\n sourcePreviewNodes: this.sourcePreviewNodes.size,\n sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n sourceNodeOptions: this.sourceNodeOptions.size,\n sourceNodes: this.sourceNodes.size,\n dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0,\n dropTargetIds: this.dropTargetIds.length,\n dragEnterTargetIds: this.dragEnterTargetIds.length,\n dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0\n };\n } // public for test\n\n }, {\n key: \"window\",\n get: function get() {\n return this.options.window;\n }\n }, {\n key: \"document\",\n get: function get() {\n return this.options.document;\n }\n /**\n * Get the root element to use for event subscriptions\n */\n\n }, {\n key: \"rootElement\",\n get: function get() {\n return this.options.rootElement;\n }\n }, {\n key: \"setup\",\n value: function setup() {\n var root = this.rootElement;\n\n if (root === undefined) {\n return;\n }\n\n if (root.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n\n root.__isReactDndBackendSetUp = true;\n this.addEventListeners(root);\n }\n }, {\n key: \"teardown\",\n value: function teardown() {\n var root = this.rootElement;\n\n if (root === undefined) {\n return;\n }\n\n root.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.rootElement);\n this.clearCurrentDragSourceNode();\n\n if (this.asyncEndDragFrameId) {\n var _this$window;\n\n (_this$window = this.window) === null || _this$window === void 0 ? void 0 : _this$window.cancelAnimationFrame(this.asyncEndDragFrameId);\n }\n }\n }, {\n key: \"connectDragPreview\",\n value: function connectDragPreview(sourceId, node, options) {\n var _this2 = this;\n\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return function () {\n _this2.sourcePreviewNodes.delete(sourceId);\n\n _this2.sourcePreviewNodeOptions.delete(sourceId);\n };\n }\n }, {\n key: \"connectDragSource\",\n value: function connectDragSource(sourceId, node, options) {\n var _this3 = this;\n\n this.sourceNodes.set(sourceId, node);\n this.sourceNodeOptions.set(sourceId, options);\n\n var handleDragStart = function handleDragStart(e) {\n return _this3.handleDragStart(e, sourceId);\n };\n\n var handleSelectStart = function handleSelectStart(e) {\n return _this3.handleSelectStart(e);\n };\n\n node.setAttribute('draggable', 'true');\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n return function () {\n _this3.sourceNodes.delete(sourceId);\n\n _this3.sourceNodeOptions.delete(sourceId);\n\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', 'false');\n };\n }\n }, {\n key: \"connectDropTarget\",\n value: function connectDropTarget(targetId, node) {\n var _this4 = this;\n\n var handleDragEnter = function handleDragEnter(e) {\n return _this4.handleDragEnter(e, targetId);\n };\n\n var handleDragOver = function handleDragOver(e) {\n return _this4.handleDragOver(e, targetId);\n };\n\n var handleDrop = function handleDrop(e) {\n return _this4.handleDrop(e, targetId);\n };\n\n node.addEventListener('dragenter', handleDragEnter);\n node.addEventListener('dragover', handleDragOver);\n node.addEventListener('drop', handleDrop);\n return function () {\n node.removeEventListener('dragenter', handleDragEnter);\n node.removeEventListener('dragover', handleDragOver);\n node.removeEventListener('drop', handleDrop);\n };\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.addEventListener) {\n return;\n }\n\n target.addEventListener('dragstart', this.handleTopDragStart);\n target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n target.addEventListener('dragenter', this.handleTopDragEnter);\n target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.addEventListener('dragover', this.handleTopDragOver);\n target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n target.addEventListener('drop', this.handleTopDrop);\n target.addEventListener('drop', this.handleTopDropCapture, true);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.removeEventListener) {\n return;\n }\n\n target.removeEventListener('dragstart', this.handleTopDragStart);\n target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n target.removeEventListener('dragenter', this.handleTopDragEnter);\n target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.removeEventListener('dragover', this.handleTopDragOver);\n target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n target.removeEventListener('drop', this.handleTopDrop);\n target.removeEventListener('drop', this.handleTopDropCapture, true);\n }\n }, {\n key: \"getCurrentSourceNodeOptions\",\n value: function getCurrentSourceNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n return _objectSpread({\n dropEffect: this.altKeyPressed ? 'copy' : 'move'\n }, sourceNodeOptions || {});\n }\n }, {\n key: \"getCurrentDropEffect\",\n value: function getCurrentDropEffect() {\n if (this.isDraggingNativeItem()) {\n // It makes more sense to default to 'copy' for native resources\n return 'copy';\n }\n\n return this.getCurrentSourceNodeOptions().dropEffect;\n }\n }, {\n key: \"getCurrentSourcePreviewNodeOptions\",\n value: function getCurrentSourcePreviewNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n return _objectSpread({\n anchorX: 0.5,\n anchorY: 0.5,\n captureDraggingState: false\n }, sourcePreviewNodeOptions || {});\n }\n }, {\n key: \"isDraggingNativeItem\",\n value: function isDraggingNativeItem() {\n var itemType = this.monitor.getItemType();\n return Object.keys(NativeTypes).some(function (key) {\n return NativeTypes[key] === itemType;\n });\n }\n }, {\n key: \"beginDragNativeItem\",\n value: function beginDragNativeItem(type, dataTransfer) {\n this.clearCurrentDragSourceNode();\n this.currentNativeSource = createNativeDragSource(type, dataTransfer);\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([this.currentNativeHandle]);\n }\n }, {\n key: \"setCurrentDragSourceNode\",\n value: function setCurrentDragSourceNode(node) {\n var _this5 = this;\n\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n\n var MOUSE_MOVE_TIMEOUT = 1000; // Receiving a mouse event in the middle of a dragging operation\n // means it has ended and the drag source node disappeared from DOM,\n // so the browser didn't dispatch the dragend event.\n //\n // We need to wait before we start listening for mousemove events.\n // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n // immediately in some browsers.\n //\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n //\n\n this.mouseMoveTimeoutTimer = setTimeout(function () {\n var _this5$rootElement;\n\n return (_this5$rootElement = _this5.rootElement) === null || _this5$rootElement === void 0 ? void 0 : _this5$rootElement.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true);\n }, MOUSE_MOVE_TIMEOUT);\n }\n }, {\n key: \"clearCurrentDragSourceNode\",\n value: function clearCurrentDragSourceNode() {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n\n if (this.rootElement) {\n var _this$window2;\n\n (_this$window2 = this.window) === null || _this$window2 === void 0 ? void 0 : _this$window2.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.rootElement.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }\n\n this.mouseMoveTimeoutTimer = null;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(e, sourceId) {\n if (e.defaultPrevented) {\n return;\n }\n\n if (!this.dragStartSourceIds) {\n this.dragStartSourceIds = [];\n }\n\n this.dragStartSourceIds.unshift(sourceId);\n }\n }, {\n key: \"handleDragEnter\",\n value: function handleDragEnter(e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDragOver\",\n value: function handleDragOver(e, targetId) {\n if (this.dragOverTargetIds === null) {\n this.dragOverTargetIds = [];\n }\n\n this.dragOverTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDrop\",\n value: function handleDrop(e, targetId) {\n this.dropTargetIds.unshift(targetId);\n }\n }]);\n\n return HTML5BackendImpl;\n}();","var emptyImage;\nexport function getEmptyImage() {\n if (!emptyImage) {\n emptyImage = new Image();\n emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n }\n\n return emptyImage;\n}","import { HTML5BackendImpl } from './HTML5BackendImpl';\nimport * as NativeTypes from './NativeTypes';\nexport { getEmptyImage } from './getEmptyImage';\nexport { NativeTypes };\nexport var HTML5Backend = function createBackend(manager, context, options) {\n return new HTML5BackendImpl(manager, context, options);\n};","import { useEffect } from \"react\";\nimport { useDrag } from \"react-dnd\";\nimport { getEmptyImage } from \"react-dnd-html5-backend\";\nimport { useTreeApi } from \"../context\";\nimport { actions as dnd } from \"../state/dnd-slice\";\nimport { safeRun } from \"../utils\";\nimport { ROOT_ID } from \"../data/create-root\";\nexport function useDragHook(node) {\n const tree = useTreeApi();\n const ids = tree.selectedIds;\n const [_, ref, preview] = useDrag(() => ({\n canDrag: () => node.isDraggable,\n type: \"NODE\",\n item: () => {\n // This is fired once at the begging of a drag operation\n const dragIds = tree.isSelected(node.id) ? Array.from(ids) : [node.id];\n tree.dispatch(dnd.dragStart(node.id, dragIds));\n return { id: node.id };\n },\n end: () => {\n tree.hideCursor();\n let { parentId, index, dragIds } = tree.state.dnd;\n // If they held down meta, we need to create a copy\n // if (drop.dropEffect === \"copy\")\n if (tree.canDrop()) {\n safeRun(tree.props.onMove, {\n dragIds,\n parentId: parentId === ROOT_ID ? null : parentId,\n index: index === null ? 0 : index, // When it's null it was dropped over a folder\n dragNodes: tree.dragNodes,\n parentNode: tree.get(parentId),\n });\n tree.open(parentId);\n }\n tree.dispatch(dnd.dragEnd());\n },\n }), [ids, node]);\n useEffect(() => {\n preview(getEmptyImage());\n }, [preview]);\n return ref;\n}\n","import { bound, indexOf, isClosed, isItem, isOpenWithEmptyChildren, } from \"../utils\";\nfunction measureHover(el, offset) {\n const rect = el.getBoundingClientRect();\n const x = offset.x - Math.round(rect.x);\n const y = offset.y - Math.round(rect.y);\n const height = rect.height;\n const inTopHalf = y < height / 2;\n const inBottomHalf = !inTopHalf;\n const pad = height / 4;\n const inMiddle = y > pad && y < height - pad;\n const atTop = !inMiddle && inTopHalf;\n const atBottom = !inMiddle && inBottomHalf;\n return { x, inTopHalf, inBottomHalf, inMiddle, atTop, atBottom };\n}\nfunction getNodesAroundCursor(node, prev, next, hover) {\n if (!node) {\n // We're hovering over the empty part of the list, not over an item,\n // Put the cursor below the last item which is \"prev\"\n return [prev, null];\n }\n if (node.isInternal) {\n if (hover.atTop) {\n return [prev, node];\n }\n else if (hover.inMiddle) {\n return [node, node];\n }\n else {\n return [node, next];\n }\n }\n else {\n if (hover.inTopHalf) {\n return [prev, node];\n }\n else {\n return [node, next];\n }\n }\n}\nfunction dropAt(parentId, index) {\n return { parentId: parentId || null, index };\n}\nfunction lineCursor(index, level) {\n return {\n type: \"line\",\n index,\n level,\n };\n}\nfunction noCursor() {\n return {\n type: \"none\",\n };\n}\nfunction highlightCursor(id) {\n return {\n type: \"highlight\",\n id,\n };\n}\nfunction walkUpFrom(node, level) {\n var _a;\n let drop = node;\n while (drop.parent && drop.level > level) {\n drop = drop.parent;\n }\n const parentId = ((_a = drop.parent) === null || _a === void 0 ? void 0 : _a.id) || null;\n const index = indexOf(drop) + 1;\n return { parentId, index };\n}\n/**\n * This is the most complex, tricky function in the whole repo.\n */\nexport function computeDrop(args) {\n var _a;\n const hover = measureHover(args.element, args.offset);\n const indent = args.indent;\n const hoverLevel = Math.round(Math.max(0, hover.x - indent) / indent);\n const { node, nextNode, prevNode } = args;\n const [above, below] = getNodesAroundCursor(node, prevNode, nextNode, hover);\n /* Hovering over the middle of a folder */\n if (node && node.isInternal && hover.inMiddle) {\n return {\n drop: dropAt(node.id, null),\n cursor: highlightCursor(node.id),\n };\n }\n /*\n * Now we only need to care about the node above the cursor\n * ----------- -------\n */\n /* There is no node above the cursor line */\n if (!above) {\n return {\n drop: dropAt((_a = below === null || below === void 0 ? void 0 : below.parent) === null || _a === void 0 ? void 0 : _a.id, 0),\n cursor: lineCursor(0, 0),\n };\n }\n /* The node above the cursor line is an item */\n if (isItem(above)) {\n const level = bound(hoverLevel, (below === null || below === void 0 ? void 0 : below.level) || 0, above.level);\n return {\n drop: walkUpFrom(above, level),\n cursor: lineCursor(above.rowIndex + 1, level),\n };\n }\n /* The node above the cursor line is a closed folder */\n if (isClosed(above)) {\n const level = bound(hoverLevel, (below === null || below === void 0 ? void 0 : below.level) || 0, above.level);\n return {\n drop: walkUpFrom(above, level),\n cursor: lineCursor(above.rowIndex + 1, level),\n };\n }\n /* The node above the cursor line is an open folder with no children */\n if (isOpenWithEmptyChildren(above)) {\n const level = bound(hoverLevel, 0, above.level + 1);\n if (level > above.level) {\n /* Will be the first child of the empty folder */\n return {\n drop: dropAt(above.id, 0),\n cursor: lineCursor(above.rowIndex + 1, level),\n };\n }\n else {\n /* Will be a sibling or grandsibling of the empty folder */\n return {\n drop: walkUpFrom(above, level),\n cursor: lineCursor(above.rowIndex + 1, level),\n };\n }\n }\n /* The node above the cursor is a an open folder with children */\n return {\n drop: dropAt(above === null || above === void 0 ? void 0 : above.id, 0),\n cursor: lineCursor(above.rowIndex + 1, above.level + 1),\n };\n}\n","import { useDrop } from \"react-dnd\";\nimport { useTreeApi } from \"../context\";\nimport { computeDrop } from \"./compute-drop\";\nimport { actions as dnd } from \"../state/dnd-slice\";\nexport function useDropHook(el, node) {\n const tree = useTreeApi();\n const [_, dropRef] = useDrop(() => ({\n accept: \"NODE\",\n canDrop: () => tree.canDrop(),\n hover: (_item, m) => {\n const offset = m.getClientOffset();\n if (!el.current || !offset)\n return;\n const { cursor, drop } = computeDrop({\n element: el.current,\n offset: offset,\n indent: tree.indent,\n node: node,\n prevNode: node.prev,\n nextNode: node.next,\n });\n if (drop)\n tree.dispatch(dnd.hovering(drop.parentId, drop.index));\n if (m.canDrop()) {\n if (cursor)\n tree.showCursor(cursor);\n }\n else {\n tree.hideCursor();\n }\n },\n drop: (_, m) => {\n if (!m.canDrop())\n return null;\n },\n }), [node, el.current, tree.props]);\n return dropRef;\n}\n","import { useMemo } from \"react\";\nimport { useTreeApi } from \"../context\";\nexport function useFreshNode(index) {\n const tree = useTreeApi();\n const original = tree.at(index);\n if (!original)\n throw new Error(`Could not find node for index: ${index}`);\n return useMemo(() => {\n const fresh = original.clone();\n tree.visibleNodes[index] = fresh; // sneaky\n return fresh;\n // Return a fresh instance if the state values change\n }, [...Object.values(original.state), original]);\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React, { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { useDataUpdates, useNodesContext, useTreeApi } from \"../context\";\nimport { useDragHook } from \"../dnd/drag-hook\";\nimport { useDropHook } from \"../dnd/drop-hook\";\nimport { useFreshNode } from \"../hooks/use-fresh-node\";\nexport const RowContainer = React.memo(function RowContainer({ index, style, }) {\n /* When will the <Row> will re-render.\n *\n * The row component is memo'd so it will only render\n * when a new instance of the NodeApi class is passed\n * to it.\n *\n * The TreeApi instance is stable. It does not\n * change when the internal state changes.\n *\n * The TreeApi has all the references to the nodes.\n * We need to clone the nodes when their state\n * changes. The node class contains no state itself,\n * It always checks the tree for state. The tree's\n * state will always be up to date.\n */\n useDataUpdates(); // Re-render when tree props or visability changes\n const _ = useNodesContext(); // So that we re-render appropriately\n const tree = useTreeApi(); // Tree already has the fresh state\n const node = useFreshNode(index);\n const el = useRef(null);\n const dragRef = useDragHook(node);\n const dropRef = useDropHook(el, node);\n const innerRef = useCallback((n) => {\n el.current = n;\n dropRef(n);\n }, [dropRef]);\n const indent = tree.indent * node.level;\n const nodeStyle = useMemo(() => ({ paddingLeft: indent }), [indent]);\n const rowStyle = useMemo(() => {\n var _a, _b;\n return (Object.assign(Object.assign({}, style), { top: parseFloat(style.top) +\n ((_b = (_a = tree.props.padding) !== null && _a !== void 0 ? _a : tree.props.paddingTop) !== null && _b !== void 0 ? _b : 0) }));\n }, [style, tree.props.padding, tree.props.paddingTop]);\n const rowAttrs = {\n role: \"treeitem\",\n \"aria-level\": node.level + 1,\n \"aria-selected\": node.isSelected,\n style: rowStyle,\n tabIndex: -1,\n className: tree.props.rowClassName,\n };\n useEffect(() => {\n var _a;\n if (!node.isEditing && node.isFocused) {\n (_a = el.current) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });\n }\n }, [node.isEditing, node.isFocused, el.current]);\n const Node = tree.renderNode;\n const Row = tree.renderRow;\n return (_jsx(Row, { node: node, innerRef: innerRef, attrs: rowAttrs, children: _jsx(Node, { node: node, tree: tree, style: nodeStyle, dragHandle: dragRef }) }));\n});\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { FixedSizeList } from \"react-window\";\nimport { useDataUpdates, useTreeApi } from \"../context\";\nimport { focusNextElement, focusPrevElement } from \"../utils\";\nimport { ListOuterElement } from \"./list-outer-element\";\nimport { ListInnerElement } from \"./list-inner-element\";\nimport { RowContainer } from \"./row-container\";\nlet focusSearchTerm = \"\";\nlet timeoutId = null;\n/**\n * All these keyboard shortcuts seem like they should be configurable.\n * Each operation should be a given a name and separated from\n * the event handler. Future clean up welcome.\n */\nexport function DefaultContainer() {\n useDataUpdates();\n const tree = useTreeApi();\n return (_jsx(\"div\", { role: \"tree\", style: {\n height: tree.height,\n width: tree.width,\n minHeight: 0,\n minWidth: 0,\n }, onContextMenu: tree.props.onContextMenu, onClick: tree.props.onClick, tabIndex: 0, onFocus: (e) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n tree.onFocus();\n }\n }, onBlur: (e) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n tree.onBlur();\n }\n }, onKeyDown: (e) => {\n var _a;\n if (tree.isEditing) {\n return;\n }\n if (e.key === \"Backspace\") {\n if (!tree.props.onDelete)\n return;\n const ids = Array.from(tree.selectedIds);\n if (ids.length > 1) {\n let nextFocus = tree.mostRecentNode;\n while (nextFocus && nextFocus.isSelected) {\n nextFocus = nextFocus.nextSibling;\n }\n if (!nextFocus)\n nextFocus = tree.lastNode;\n tree.focus(nextFocus, { scroll: false });\n tree.delete(Array.from(ids));\n }\n else {\n const node = tree.focusedNode;\n if (node) {\n const sib = node.nextSibling;\n const parent = node.parent;\n tree.focus(sib || parent, { scroll: false });\n tree.delete(node);\n }\n }\n return;\n }\n if (e.key === \"Tab\" && !e.shiftKey) {\n e.preventDefault();\n focusNextElement(e.currentTarget);\n return;\n }\n if (e.key === \"Tab\" && e.shiftKey) {\n e.preventDefault();\n focusPrevElement(e.currentTarget);\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const next = tree.nextNode;\n if (e.metaKey) {\n tree.select(tree.focusedNode);\n tree.activate(tree.focusedNode);\n return;\n }\n else if (!e.shiftKey || tree.props.disableMultiSelection) {\n tree.focus(next);\n return;\n }\n else {\n if (!next)\n return;\n const current = tree.focusedNode;\n if (!current) {\n tree.focus(tree.firstNode);\n }\n else if (current.isSelected) {\n tree.selectContiguous(next);\n }\n else {\n tree.selectMulti(next);\n }\n return;\n }\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const prev = tree.prevNode;\n if (!e.shiftKey || tree.props.disableMultiSelection) {\n tree.focus(prev);\n return;\n }\n else {\n if (!prev)\n return;\n const current = tree.focusedNode;\n if (!current) {\n tree.focus(tree.lastNode); // ?\n }\n else if (current.isSelected) {\n tree.selectContiguous(prev);\n }\n else {\n tree.selectMulti(prev);\n }\n return;\n }\n }\n if (e.key === \"ArrowRight\") {\n const node = tree.focusedNode;\n if (!node)\n return;\n if (node.isInternal && node.isOpen) {\n tree.focus(tree.nextNode);\n }\n else if (node.isInternal)\n tree.open(node.id);\n return;\n }\n if (e.key === \"ArrowLeft\") {\n const node = tree.focusedNode;\n if (!node || node.isRoot)\n return;\n if (node.isInternal && node.isOpen)\n tree.close(node.id);\n else if (!((_a = node.parent) === null || _a === void 0 ? void 0 : _a.isRoot)) {\n tree.focus(node.parent);\n }\n return;\n }\n if (e.key === \"a\" && e.metaKey && !tree.props.disableMultiSelection) {\n e.preventDefault();\n tree.selectAll();\n return;\n }\n if (e.key === \"a\" && !e.metaKey && tree.props.onCreate) {\n tree.createLeaf();\n return;\n }\n if (e.key === \"A\" && !e.metaKey) {\n if (!tree.props.onCreate)\n return;\n tree.createInternal();\n return;\n }\n if (e.key === \"Home\") {\n // add shift keys\n e.preventDefault();\n tree.focus(tree.firstNode);\n return;\n }\n if (e.key === \"End\") {\n // add shift keys\n e.preventDefault();\n tree.focus(tree.lastNode);\n return;\n }\n if (e.key === \"Enter\") {\n const node = tree.focusedNode;\n if (!node)\n return;\n if (!node.isEditable || !tree.props.onRename)\n return;\n setTimeout(() => {\n if (node)\n tree.edit(node);\n });\n return;\n }\n if (e.key === \" \") {\n e.preventDefault();\n const node = tree.focusedNode;\n if (!node)\n return;\n if (node.isLeaf) {\n node.select();\n node.activate();\n }\n else {\n node.toggle();\n }\n return;\n }\n if (e.key === \"*\") {\n const node = tree.focusedNode;\n if (!node)\n return;\n tree.openSiblings(node);\n return;\n }\n if (e.key === \"PageUp\") {\n e.preventDefault();\n tree.pageUp();\n return;\n }\n if (e.key === \"PageDown\") {\n e.preventDefault();\n tree.pageDown();\n }\n // If they type a sequence of characters\n // collect them. Reset them after a timeout.\n // Use it to search the tree for a node, then focus it.\n // Clean this up a bit later\n clearTimeout(timeoutId);\n focusSearchTerm += e.key;\n timeoutId = setTimeout(() => {\n focusSearchTerm = \"\";\n }, 600);\n const node = tree.visibleNodes.find((n) => {\n // @ts-ignore\n const name = n.data.name;\n if (typeof name === \"string\") {\n return name.toLowerCase().startsWith(focusSearchTerm);\n }\n else\n return false;\n });\n if (node)\n tree.focus(node.id);\n }, children: _jsx(FixedSizeList, { className: tree.props.className, outerRef: tree.listEl, itemCount: tree.visibleNodes.length, height: tree.height, width: tree.width, itemSize: tree.rowHeight, overscanCount: tree.overscanCount, itemKey: (index) => { var _a; return ((_a = tree.visibleNodes[index]) === null || _a === void 0 ? void 0 : _a.id) || index; }, outerElementType: ListOuterElement, innerElementType: ListInnerElement, onScroll: tree.props.onScroll, onItemsRendered: tree.onItemsRendered.bind(tree), ref: tree.list, children: RowContainer }) }));\n}\n","export function createList(tree) {\n if (tree.isFiltered) {\n return flattenAndFilterTree(tree.root, tree.isMatch.bind(tree));\n }\n else {\n return flattenTree(tree.root);\n }\n}\nfunction flattenTree(root) {\n const list = [];\n function collect(node) {\n var _a;\n if (node.level >= 0) {\n list.push(node);\n }\n if (node.isOpen) {\n (_a = node.children) === null || _a === void 0 ? void 0 : _a.forEach(collect);\n }\n }\n collect(root);\n list.forEach(assignRowIndex);\n return list;\n}\nfunction flattenAndFilterTree(root, isMatch) {\n const matches = {};\n const list = [];\n function markMatch(node) {\n const yes = !node.isRoot && isMatch(node);\n if (yes) {\n matches[node.id] = true;\n let parent = node.parent;\n while (parent) {\n matches[parent.id] = true;\n parent = parent.parent;\n }\n }\n if (node.children) {\n for (let child of node.children)\n markMatch(child);\n }\n }\n function collect(node) {\n var _a;\n if (node.level >= 0 && matches[node.id]) {\n list.push(node);\n }\n if (node.isOpen) {\n (_a = node.children) === null || _a === void 0 ? void 0 : _a.forEach(collect);\n }\n }\n markMatch(root);\n collect(root);\n list.forEach(assignRowIndex);\n return list;\n}\nfunction assignRowIndex(node, index) {\n node.rowIndex = index;\n}\n","export const createIndex = (nodes) => {\n return nodes.reduce((map, node, index) => {\n map[node.id] = index;\n return map;\n }, {});\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport * as utils from \"../utils\";\nimport { DefaultCursor } from \"../components/default-cursor\";\nimport { DefaultRow } from \"../components/default-row\";\nimport { DefaultNode } from \"../components/default-node\";\nimport { edit } from \"../state/edit-slice\";\nimport { focus, treeBlur } from \"../state/focus-slice\";\nimport { createRoot, ROOT_ID } from \"../data/create-root\";\nimport { actions as visibility } from \"../state/open-slice\";\nimport { actions as selection } from \"../state/selection-slice\";\nimport { actions as dnd } from \"../state/dnd-slice\";\nimport { DefaultDragPreview } from \"../components/default-drag-preview\";\nimport { DefaultContainer } from \"../components/default-container\";\nimport { createList } from \"../data/create-list\";\nimport { createIndex } from \"../data/create-index\";\nconst { safeRun, identify, identifyNull } = utils;\nexport class TreeApi {\n constructor(store, props, list, listEl) {\n this.store = store;\n this.props = props;\n this.list = list;\n this.listEl = listEl;\n this.visibleStartIndex = 0;\n this.visibleStopIndex = 0;\n /* Changes here must also be made in update() */\n this.root = createRoot(this);\n this.visibleNodes = createList(this);\n this.idToIndex = createIndex(this.visibleNodes);\n }\n /* Changes here must also be made in constructor() */\n update(props) {\n this.props = props;\n this.root = createRoot(this);\n this.visibleNodes = createList(this);\n this.idToIndex = createIndex(this.visibleNodes);\n }\n /* Store helpers */\n dispatch(action) {\n return this.store.dispatch(action);\n }\n get state() {\n return this.store.getState();\n }\n get openState() {\n return this.state.nodes.open.unfiltered;\n }\n /* Tree Props */\n get width() {\n var _a;\n return (_a = this.props.width) !== null && _a !== void 0 ? _a : 300;\n }\n get height() {\n var _a;\n return (_a = this.props.height) !== null && _a !== void 0 ? _a : 500;\n }\n get indent() {\n var _a;\n return (_a = this.props.indent) !== null && _a !== void 0 ? _a : 24;\n }\n get rowHeight() {\n var _a;\n return (_a = this.props.rowHeight) !== null && _a !== void 0 ? _a : 24;\n }\n get overscanCount() {\n var _a;\n return (_a = this.props.overscanCount) !== null && _a !== void 0 ? _a : 1;\n }\n get searchTerm() {\n return (this.props.searchTerm || \"\").trim();\n }\n get matchFn() {\n var _a;\n const match = (_a = this.props.searchMatch) !== null && _a !== void 0 ? _a : ((node, term) => {\n const string = JSON.stringify(Object.values(node.data));\n return string.toLocaleLowerCase().includes(term.toLocaleLowerCase());\n });\n return (node) => match(node, this.searchTerm);\n }\n accessChildren(data) {\n var _a;\n const get = this.props.childrenAccessor || \"children\";\n return (_a = utils.access(data, get)) !== null && _a !== void 0 ? _a : null;\n }\n accessId(data) {\n const get = this.props.idAccessor || \"id\";\n const id = utils.access(data, get);\n if (!id)\n throw new Error(\"Data must contain an 'id' property or props.idAccessor must return a string\");\n return id;\n }\n /* Node Access */\n get firstNode() {\n var _a;\n return (_a = this.visibleNodes[0]) !== null && _a !== void 0 ? _a : null;\n }\n get lastNode() {\n var _a;\n return (_a = this.visibleNodes[this.visibleNodes.length - 1]) !== null && _a !== void 0 ? _a : null;\n }\n get focusedNode() {\n var _a;\n return (_a = this.get(this.state.nodes.focus.id)) !== null && _a !== void 0 ? _a : null;\n }\n get mostRecentNode() {\n var _a;\n return (_a = this.get(this.state.nodes.selection.mostRecent)) !== null && _a !== void 0 ? _a : null;\n }\n get nextNode() {\n const index = this.indexOf(this.focusedNode);\n if (index === null)\n return null;\n else\n return this.at(index + 1);\n }\n get prevNode() {\n const index = this.indexOf(this.focusedNode);\n if (index === null)\n return null;\n else\n return this.at(index - 1);\n }\n get(id) {\n if (!id)\n return null;\n if (id in this.idToIndex)\n return this.visibleNodes[this.idToIndex[id]] || null;\n else\n return null;\n }\n at(index) {\n return this.visibleNodes[index] || null;\n }\n nodesBetween(startId, endId) {\n var _a;\n if (startId === null || endId === null)\n return [];\n const index1 = (_a = this.indexOf(startId)) !== null && _a !== void 0 ? _a : 0;\n const index2 = this.indexOf(endId);\n if (index2 === null)\n return [];\n const start = Math.min(index1, index2);\n const end = Math.max(index1, index2);\n return this.visibleNodes.slice(start, end + 1);\n }\n indexOf(id) {\n const key = utils.identifyNull(id);\n if (!key)\n return null;\n return this.idToIndex[key];\n }\n /* Data Operations */\n get editingId() {\n return this.state.nodes.edit.id;\n }\n createInternal() {\n return this.create({ type: \"internal\" });\n }\n createLeaf() {\n return this.create({ type: \"leaf\" });\n }\n create(opts = {}) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n const parentId = opts.parentId === undefined\n ? utils.getInsertParentId(this)\n : opts.parentId;\n const index = (_a = opts.index) !== null && _a !== void 0 ? _a : utils.getInsertIndex(this);\n const type = (_b = opts.type) !== null && _b !== void 0 ? _b : \"leaf\";\n const data = yield safeRun(this.props.onCreate, {\n type,\n parentId,\n index,\n parentNode: this.get(parentId),\n });\n if (data) {\n this.focus(data);\n setTimeout(() => {\n this.edit(data).then(() => {\n this.select(data);\n this.activate(data);\n });\n });\n }\n });\n }\n delete(node) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!node)\n return;\n const idents = Array.isArray(node) ? node : [node];\n const ids = idents.map(identify);\n const nodes = ids.map((id) => this.get(id)).filter((n) => !!n);\n yield safeRun(this.props.onDelete, { nodes, ids });\n });\n }\n edit(node) {\n const id = identify(node);\n this.resolveEdit({ cancelled: true });\n this.scrollTo(id);\n this.dispatch(edit(id));\n return new Promise((resolve) => {\n TreeApi.editPromise = resolve;\n });\n }\n submit(identity, value) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!identity)\n return;\n const id = identify(identity);\n yield safeRun(this.props.onRename, {\n id,\n name: value,\n node: this.get(id),\n });\n this.dispatch(edit(null));\n this.resolveEdit({ cancelled: false, value });\n setTimeout(() => this.onFocus()); // Return focus to element;\n });\n }\n reset() {\n this.dispatch(edit(null));\n this.resolveEdit({ cancelled: true });\n setTimeout(() => this.onFocus()); // Return focus to element;\n }\n activate(id) {\n const node = this.get(identifyNull(id));\n if (!node)\n return;\n safeRun(this.props.onActivate, node);\n }\n resolveEdit(value) {\n const resolve = TreeApi.editPromise;\n if (resolve)\n resolve(value);\n TreeApi.editPromise = null;\n }\n /* Focus and Selection */\n get selectedIds() {\n return this.state.nodes.selection.ids;\n }\n get selectedNodes() {\n let nodes = [];\n for (let id of Array.from(this.selectedIds)) {\n const node = this.get(id);\n if (node)\n nodes.push(node);\n }\n return nodes;\n }\n focus(node, opts = {}) {\n if (!node)\n return;\n /* Focus is responsible for scrolling, while selection is\n * responsible for focus. If selectionFollowsFocus, then\n * just select it. */\n if (this.props.selectionFollowsFocus) {\n this.select(node);\n }\n else {\n this.dispatch(focus(identify(node)));\n if (opts.scroll !== false)\n this.scrollTo(node);\n if (this.focusedNode)\n safeRun(this.props.onFocus, this.focusedNode);\n }\n }\n pageUp() {\n var _a, _b;\n const start = this.visibleStartIndex;\n const stop = this.visibleStopIndex;\n const page = stop - start;\n let index = (_b = (_a = this.focusedNode) === null || _a === void 0 ? void 0 : _a.rowIndex) !== null && _b !== void 0 ? _b : 0;\n if (index > start) {\n index = start;\n }\n else {\n index = Math.max(start - page, 0);\n }\n this.focus(this.at(index));\n }\n pageDown() {\n var _a, _b;\n const start = this.visibleStartIndex;\n const stop = this.visibleStopIndex;\n const page = stop - start;\n let index = (_b = (_a = this.focusedNode) === null || _a === void 0 ? void 0 : _a.rowIndex) !== null && _b !== void 0 ? _b : 0;\n if (index < stop) {\n index = stop;\n }\n else {\n index = Math.min(index + page, this.visibleNodes.length - 1);\n }\n this.focus(this.at(index));\n }\n select(node, opts = {}) {\n if (!node)\n return;\n const changeFocus = opts.focus !== false;\n const id = identify(node);\n if (changeFocus)\n this.dispatch(focus(id));\n this.dispatch(selection.only(id));\n this.dispatch(selection.anchor(id));\n this.dispatch(selection.mostRecent(id));\n this.scrollTo(id, opts.align);\n if (this.focusedNode && changeFocus) {\n safeRun(this.props.onFocus, this.focusedNode);\n }\n safeRun(this.props.onSelect, this.selectedNodes);\n }\n deselect(node) {\n if (!node)\n return;\n const id = identify(node);\n this.dispatch(selection.remove(id));\n }\n selectMulti(identity) {\n const node = this.get(identifyNull(identity));\n if (!node)\n return;\n this.dispatch(focus(node.id));\n this.dispatch(selection.add(node.id));\n this.dispatch(selection.anchor(node.id));\n this.dispatch(selection.mostRecent(node.id));\n this.scrollTo(node);\n if (this.focusedNode)\n safeRun(this.props.onFocus, this.focusedNode);\n safeRun(this.props.onSelect, this.selectedNodes);\n }\n selectContiguous(identity) {\n if (!identity)\n return;\n const id = identify(identity);\n const { anchor, mostRecent } = this.state.nodes.selection;\n this.dispatch(focus(id));\n this.dispatch(selection.remove(this.nodesBetween(anchor, mostRecent)));\n this.dispatch(selection.add(this.nodesBetween(anchor, identifyNull(id))));\n this.dispatch(selection.mostRecent(id));\n this.scrollTo(id);\n if (this.focusedNode)\n safeRun(this.props.onFocus, this.focusedNode);\n safeRun(this.props.onSelect, this.selectedNodes);\n }\n deselectAll() {\n this.setSelection({ ids: [], anchor: null, mostRecent: null });\n safeRun(this.props.onSelect, this.selectedNodes);\n }\n selectAll() {\n var _a;\n this.setSelection({\n ids: Object.keys(this.idToIndex),\n anchor: this.firstNode,\n mostRecent: this.lastNode,\n });\n this.dispatch(focus((_a = this.lastNode) === null || _a === void 0 ? void 0 : _a.id));\n if (this.focusedNode)\n safeRun(this.props.onFocus, this.focusedNode);\n safeRun(this.props.onSelect, this.selectedNodes);\n }\n setSelection(args) {\n var _a;\n const ids = new Set((_a = args.ids) === null || _a === void 0 ? void 0 : _a.map(identify));\n const anchor = identifyNull(args.anchor);\n const mostRecent = identifyNull(args.mostRecent);\n this.dispatch(selection.set({ ids, anchor, mostRecent }));\n safeRun(this.props.onSelect, this.selectedNodes);\n }\n /* Drag and Drop */\n get cursorParentId() {\n const { cursor } = this.state.dnd;\n switch (cursor.type) {\n case \"highlight\":\n return cursor.id;\n default:\n return null;\n }\n }\n get cursorOverFolder() {\n return this.state.dnd.cursor.type === \"highlight\";\n }\n get dragNodes() {\n return this.state.dnd.dragIds\n .map((id) => this.get(id))\n .filter((n) => !!n);\n }\n get dragNode() {\n return this.get(this.state.nodes.drag.id);\n }\n get dragDestinationParent() {\n return this.get(this.state.nodes.drag.destinationParentId);\n }\n get dragDestinationIndex() {\n return this.state.nodes.drag.destinationIndex;\n }\n canDrop() {\n var _a;\n if (this.isFiltered)\n return false;\n const parentNode = (_a = this.get(this.state.dnd.parentId)) !== null && _a !== void 0 ? _a : this.root;\n const dragNodes = this.dragNodes;\n const isDisabled = this.props.disableDrop;\n for (const drag of dragNodes) {\n if (!drag)\n return false;\n if (!parentNode)\n return false;\n if (drag.isInternal && utils.isDescendant(parentNode, drag))\n return false;\n }\n // Allow the user to insert their own logic\n if (typeof isDisabled == \"function\") {\n return !isDisabled({\n parentNode,\n dragNodes: this.dragNodes,\n index: this.state.dnd.index || 0,\n });\n }\n else if (typeof isDisabled == \"string\") {\n // @ts-ignore\n return !parentNode.data[isDisabled];\n }\n else if (typeof isDisabled === \"boolean\") {\n return !isDisabled;\n }\n else {\n return true;\n }\n }\n hideCursor() {\n this.dispatch(dnd.cursor({ type: \"none\" }));\n }\n showCursor(cursor) {\n this.dispatch(dnd.cursor(cursor));\n }\n /* Visibility */\n open(identity) {\n const id = identifyNull(identity);\n if (!id)\n return;\n if (this.isOpen(id))\n return;\n this.dispatch(visibility.open(id, this.isFiltered));\n safeRun(this.props.onToggle, id);\n }\n close(identity) {\n const id = identifyNull(identity);\n if (!id)\n return;\n if (!this.isOpen(id))\n return;\n this.dispatch(visibility.close(id, this.isFiltered));\n safeRun(this.props.onToggle, id);\n }\n toggle(identity) {\n const id = identifyNull(identity);\n if (!id)\n return;\n return this.isOpen(id) ? this.close(id) : this.open(id);\n }\n openParents(identity) {\n const id = identifyNull(identity);\n if (!id)\n return;\n const node = utils.dfs(this.root, id);\n let parent = node === null || node === void 0 ? void 0 : node.parent;\n while (parent) {\n this.open(parent.id);\n parent = parent.parent;\n }\n }\n openSiblings(node) {\n const parent = node.parent;\n if (!parent) {\n this.toggle(node.id);\n }\n else if (parent.children) {\n const isOpen = node.isOpen;\n for (let sibling of parent.children) {\n if (sibling.isInternal) {\n isOpen ? this.close(sibling.id) : this.open(sibling.id);\n }\n }\n this.scrollTo(this.focusedNode);\n }\n }\n openAll() {\n utils.walk(this.root, (node) => {\n if (node.isInternal)\n node.open();\n });\n }\n closeAll() {\n utils.walk(this.root, (node) => {\n if (node.isInternal)\n node.close();\n });\n }\n /* Scrolling */\n scrollTo(identity, align = \"smart\") {\n if (!identity)\n return;\n const id = identify(identity);\n this.openParents(id);\n return utils\n .waitFor(() => id in this.idToIndex)\n .then(() => {\n var _a;\n const index = this.idToIndex[id];\n if (index === undefined)\n return;\n (_a = this.list.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index, align);\n })\n .catch(() => {\n // Id: ${id} never appeared in the list.\n });\n }\n /* State Checks */\n get isEditing() {\n return this.state.nodes.edit.id !== null;\n }\n get isFiltered() {\n var _a;\n return !!((_a = this.props.searchTerm) === null || _a === void 0 ? void 0 : _a.trim());\n }\n get hasFocus() {\n return this.state.nodes.focus.treeFocused;\n }\n get hasNoSelection() {\n return this.state.nodes.selection.ids.size === 0;\n }\n get hasOneSelection() {\n return this.state.nodes.selection.ids.size === 1;\n }\n get hasMultipleSelections() {\n return this.state.nodes.selection.ids.size > 1;\n }\n isSelected(id) {\n if (!id)\n return false;\n return this.state.nodes.selection.ids.has(id);\n }\n isOpen(id) {\n var _a, _b, _c;\n if (!id)\n return false;\n if (id === ROOT_ID)\n return true;\n const def = (_a = this.props.openByDefault) !== null && _a !== void 0 ? _a : true;\n if (this.isFiltered) {\n return (_b = this.state.nodes.open.filtered[id]) !== null && _b !== void 0 ? _b : true; // Filtered folders are always opened by default\n }\n else {\n return (_c = this.state.nodes.open.unfiltered[id]) !== null && _c !== void 0 ? _c : def;\n }\n }\n isEditable(data) {\n var _a;\n const check = this.props.disableEdit || (() => false);\n return (_a = !utils.access(data, check)) !== null && _a !== void 0 ? _a : true;\n }\n isDraggable(data) {\n var _a;\n const check = this.props.disableDrag || (() => false);\n return (_a = !utils.access(data, check)) !== null && _a !== void 0 ? _a : true;\n }\n isDragging(node) {\n const id = identifyNull(node);\n if (!id)\n return false;\n return this.state.nodes.drag.id === id;\n }\n isFocused(id) {\n return this.hasFocus && this.state.nodes.focus.id === id;\n }\n isMatch(node) {\n return this.matchFn(node);\n }\n willReceiveDrop(node) {\n const id = identifyNull(node);\n if (!id)\n return false;\n const { destinationParentId, destinationIndex } = this.state.nodes.drag;\n return id === destinationParentId && destinationIndex === null;\n }\n /* Tree Event Handlers */\n onFocus() {\n const node = this.focusedNode || this.firstNode;\n if (node)\n this.dispatch(focus(node.id));\n }\n onBlur() {\n this.dispatch(treeBlur());\n }\n onItemsRendered(args) {\n this.visibleStartIndex = args.visibleStartIndex;\n this.visibleStopIndex = args.visibleStopIndex;\n }\n /* Get Renderers */\n get renderContainer() {\n return this.props.renderContainer || DefaultContainer;\n }\n get renderRow() {\n return this.props.renderRow || DefaultRow;\n }\n get renderNode() {\n return this.props.children || DefaultNode;\n }\n get renderDragPreview() {\n return this.props.renderDragPreview || DefaultDragPreview;\n }\n get renderCursor() {\n return this.props.renderCursor || DefaultCursor;\n }\n}\n","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","import { initialState } from \"./initial\";\n/* Reducer */\nexport function reducer(state = initialState().nodes.drag, action) {\n switch (action.type) {\n case \"DND_DRAG_START\":\n return Object.assign(Object.assign({}, state), { id: action.id, selectedIds: action.dragIds });\n case \"DND_DRAG_END\":\n return Object.assign(Object.assign({}, state), { id: null, destinationParentId: null, destinationIndex: null, selectedIds: [] });\n case \"DND_HOVERING\":\n if (action.parentId !== state.destinationParentId ||\n action.index != state.destinationIndex) {\n return Object.assign(Object.assign({}, state), { destinationParentId: action.parentId, destinationIndex: action.index });\n }\n else {\n return state;\n }\n default:\n return state;\n }\n}\n","import { combineReducers } from \"redux\";\nimport { reducer as focus } from \"./focus-slice\";\nimport { reducer as edit } from \"./edit-slice\";\nimport { reducer as dnd } from \"./dnd-slice\";\nimport { reducer as selection } from \"./selection-slice\";\nimport { reducer as open } from \"./open-slice\";\nimport { reducer as drag } from \"./drag-slice\";\nexport const rootReducer = combineReducers({\n nodes: combineReducers({\n focus,\n edit,\n open,\n selection,\n drag,\n }),\n dnd,\n});\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useImperativeHandle, useMemo, useRef, } from \"react\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { DataUpdatesContext, DndContext, NodesContext, TreeApiContext, } from \"../context\";\nimport { TreeApi } from \"../interfaces/tree-api\";\nimport { initialState } from \"../state/initial\";\nimport { rootReducer } from \"../state/root-reducer\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\nimport { createStore } from \"redux\";\nimport { actions as visibility } from \"../state/open-slice\";\nconst SERVER_STATE = initialState();\nexport function TreeProvider({ treeProps, imperativeHandle, children, }) {\n const list = useRef(null);\n const listEl = useRef(null);\n const store = useRef(\n // @ts-ignore\n createStore(rootReducer, initialState(treeProps)));\n const state = useSyncExternalStore(store.current.subscribe, store.current.getState, () => SERVER_STATE);\n /* The tree api object is stable. */\n const api = useMemo(() => {\n return new TreeApi(store.current, treeProps, list, listEl);\n }, []);\n /* Make sure the tree instance stays in sync */\n const updateCount = useRef(0);\n useMemo(() => {\n updateCount.current += 1;\n api.update(treeProps);\n }, [...Object.values(treeProps), state.nodes.open]);\n /* Expose the tree api */\n useImperativeHandle(imperativeHandle, () => api);\n /* Change selection based on props */\n useEffect(() => {\n if (api.props.selection) {\n api.select(api.props.selection, { focus: false });\n }\n else {\n api.deselectAll();\n }\n }, [api.props.selection]);\n /* Clear visability for filtered nodes */\n useEffect(() => {\n if (!api.props.searchTerm) {\n store.current.dispatch(visibility.clear(true));\n }\n }, [api.props.searchTerm]);\n return (_jsx(TreeApiContext.Provider, { value: api, children: _jsx(DataUpdatesContext.Provider, { value: updateCount.current, children: _jsx(NodesContext.Provider, { value: state.nodes, children: _jsx(DndContext.Provider, { value: state.dnd, children: _jsx(DndProvider, Object.assign({ backend: HTML5Backend, options: { rootElement: api.props.dndRootElement || undefined } }, (treeProps.dndManager && { manager: treeProps.dndManager }), { children: children })) }) }) }) }));\n}\n","import { useDrop } from \"react-dnd\";\nimport { useTreeApi } from \"../context\";\nimport { computeDrop } from \"./compute-drop\";\nimport { actions as dnd } from \"../state/dnd-slice\";\nexport function useOuterDrop() {\n const tree = useTreeApi();\n // In case we drop an item at the bottom of the list\n const [, drop] = useDrop(() => ({\n accept: \"NODE\",\n canDrop: (_item, m) => {\n if (!m.isOver({ shallow: true }))\n return false;\n return tree.canDrop();\n },\n hover: (_item, m) => {\n if (!m.isOver({ shallow: true }))\n return;\n const offset = m.getClientOffset();\n if (!tree.listEl.current || !offset)\n return;\n const { cursor, drop } = computeDrop({\n element: tree.listEl.current,\n offset: offset,\n indent: tree.indent,\n node: null,\n prevNode: tree.visibleNodes[tree.visibleNodes.length - 1],\n nextNode: null,\n });\n if (drop)\n tree.dispatch(dnd.hovering(drop.parentId, drop.index));\n if (m.canDrop()) {\n if (cursor)\n tree.showCursor(cursor);\n }\n else {\n tree.hideCursor();\n }\n },\n }), [tree]);\n drop(tree.listEl);\n}\n","import { useOuterDrop } from \"../dnd/outer-drop-hook\";\nexport function OuterDrop(props) {\n useOuterDrop();\n return props.children;\n}\n","import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useTreeApi } from \"../context\";\nimport { DefaultContainer } from \"./default-container\";\nexport function TreeContainer() {\n const tree = useTreeApi();\n const Container = tree.props.renderContainer || DefaultContainer;\n return (_jsx(_Fragment, { children: _jsx(Container, {}) }));\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useDragLayer } from \"react-dnd\";\nimport { useTreeApi } from \"../context\";\nimport { DefaultDragPreview } from \"./default-drag-preview\";\nexport function DragPreviewContainer() {\n const tree = useTreeApi();\n const { offset, mouse, item, isDragging } = useDragLayer((m) => {\n return {\n offset: m.getSourceClientOffset(),\n mouse: m.getClientOffset(),\n item: m.getItem(),\n isDragging: m.isDragging(),\n };\n });\n const DragPreview = tree.props.renderDragPreview || DefaultDragPreview;\n return (_jsx(DragPreview, { offset: offset, mouse: mouse, id: (item === null || item === void 0 ? void 0 : item.id) || null, dragIds: (item === null || item === void 0 ? void 0 : item.dragIds) || [], isDragging: isDragging }));\n}\n","export class SimpleTree {\n constructor(data) {\n this.root = createRoot(data);\n }\n get data() {\n var _a, _b;\n return (_b = (_a = this.root.children) === null || _a === void 0 ? void 0 : _a.map((node) => node.data)) !== null && _b !== void 0 ? _b : [];\n }\n create(args) {\n const parent = args.parentId ? this.find(args.parentId) : this.root;\n if (!parent)\n return null;\n parent.addChild(args.data, args.index);\n }\n move(args) {\n const src = this.find(args.id);\n const parent = args.parentId ? this.find(args.parentId) : this.root;\n if (!src || !parent)\n return;\n parent.addChild(src.data, args.index);\n src.drop();\n }\n update(args) {\n const node = this.find(args.id);\n if (node)\n node.update(args.changes);\n }\n drop(args) {\n const node = this.find(args.id);\n if (node)\n node.drop();\n }\n find(id, node = this.root) {\n if (!node)\n return null;\n if (node.id === id)\n return node;\n if (node.children) {\n for (let child of node.children) {\n const found = this.find(id, child);\n if (found)\n return found;\n }\n return null;\n }\n return null;\n }\n}\nfunction createRoot(data) {\n const root = new SimpleNode({ id: \"ROOT\" }, null);\n root.children = data.map((d) => createNode(d, root));\n return root;\n}\nfunction createNode(data, parent) {\n const node = new SimpleNode(data, parent);\n if (data.children)\n node.children = data.children.map((d) => createNode(d, node));\n return node;\n}\nclass SimpleNode {\n constructor(data, parent) {\n this.data = data;\n this.parent = parent;\n this.id = data.id;\n }\n hasParent() {\n return !!this.parent;\n }\n get childIndex() {\n return this.hasParent() ? this.parent.children.indexOf(this) : -1;\n }\n addChild(data, index) {\n var _a, _b;\n const node = createNode(data, this);\n this.children = (_a = this.children) !== null && _a !== void 0 ? _a : [];\n this.children.splice(index, 0, node);\n this.data.children = (_b = this.data.children) !== null && _b !== void 0 ? _b : [];\n this.data.children.splice(index, 0, data);\n }\n removeChild(index) {\n var _a, _b;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.splice(index, 1);\n (_b = this.data.children) === null || _b === void 0 ? void 0 : _b.splice(index, 1);\n }\n update(changes) {\n if (this.hasParent()) {\n const i = this.childIndex;\n this.parent.addChild(Object.assign(Object.assign({}, this.data), changes), i);\n this.drop();\n }\n }\n drop() {\n if (this.hasParent())\n this.parent.removeChild(this.childIndex);\n }\n}\n","import { useMemo, useState } from \"react\";\nimport { SimpleTree } from \"../data/simple-tree\";\nlet nextId = 0;\nexport function useSimpleTree(initialData) {\n const [data, setData] = useState(initialData);\n const tree = useMemo(() => new SimpleTree(data), [data]);\n const onMove = (args) => {\n for (const id of args.dragIds) {\n tree.move({ id, parentId: args.parentId, index: args.index });\n }\n setData(tree.data);\n };\n const onRename = ({ name, id }) => {\n tree.update({ id, changes: { name } });\n setData(tree.data);\n };\n const onCreate = ({ parentId, index, type }) => {\n const data = { id: `simple-tree-id-${nextId++}`, name: \"\" };\n if (type === \"internal\")\n data.children = [];\n tree.create({ parentId, index, data });\n setData(tree.data);\n return data;\n };\n const onDelete = (args) => {\n args.ids.forEach((id) => tree.drop({ id }));\n setData(tree.data);\n };\n const controller = { onMove, onRename, onCreate, onDelete };\n return [data, controller];\n}\n","import { useSimpleTree } from \"./use-simple-tree\";\nexport function useValidatedProps(props) {\n if (props.initialData && props.data) {\n throw new Error(`React Arborist Tree => Provide either a data or initialData prop, but not both.`);\n }\n if (props.initialData &&\n (props.onCreate || props.onDelete || props.onMove || props.onRename)) {\n throw new Error(`React Arborist Tree => You passed the initialData prop along with a data handler.\nUse the data prop if you want to provide your own handlers.`);\n }\n if (props.initialData) {\n /**\n * Let's break the rules of hooks here. If the initialData prop\n * is provided, we will assume it will not change for the life of\n * the component.\n *\n * We will provide the real data and the handlers to update it.\n * */\n const [data, controller] = useSimpleTree(props.initialData);\n return Object.assign(Object.assign(Object.assign({}, props), controller), { data });\n }\n else {\n return props;\n }\n}\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { TreeProvider } from \"./provider\";\nimport { OuterDrop } from \"./outer-drop\";\nimport { TreeContainer } from \"./tree-container\";\nimport { DragPreviewContainer } from \"./drag-preview-container\";\nimport { useValidatedProps } from \"../hooks/use-validated-props\";\nfunction TreeComponent(props, ref) {\n const treeProps = useValidatedProps(props);\n return (_jsxs(TreeProvider, { treeProps: treeProps, imperativeHandle: ref, children: [_jsx(OuterDrop, { children: _jsx(TreeContainer, {}) }), _jsx(DragPreviewContainer, {})] }));\n}\nexport const Tree = forwardRef(TreeComponent);\n","import { CursorProps } from \"react-arborist\";\n\nexport const TreeViewSeparator = ({ top, left }: CursorProps) => {\n return (\n <div\n className=\"c__tree-view__cursor\"\n style={{\n top,\n left: left + 10,\n }}\n ></div>\n );\n};\n","export type BaseTreeViewData<T> = T & {\n id: string;\n childrenCount?: number;\n parentId?: string;\n children?: BaseTreeViewData<T>[];\n };\n \n export type TreeViewDataType<T> = BaseTreeViewData<T>;\n \n export enum TreeViewMoveModeEnum {\n FIRST_CHILD = 'first-child',\n LAST_CHILD = 'last-child',\n LEFT = 'left',\n RIGHT = 'right',\n }\n \n export type TreeViewMoveResult = {\n targetNodeId: string;\n mode: TreeViewMoveModeEnum;\n sourceNodeId: string;\n oldParentId?: string;\n };\n ","import { NodeApi, NodeRendererProps, Tree } from \"react-arborist\";\nimport { TreeViewSeparator } from \"./TreeViewSeparator\";\nimport {\n BaseTreeViewData,\n TreeViewDataType,\n TreeViewMoveModeEnum,\n TreeViewMoveResult,\n} from \"./types\";\n\nexport const treeDemoData = [\n { id: \"1\", name: \"Unread\" },\n { id: \"2\", name: \"Threads\" },\n { id: \"2.1\", name: \"load children\", childrenCount: 1, children: [] },\n {\n id: \"3\",\n name: \"Chat Rooms\",\n children: [\n { id: \"c1\", name: \"General\" },\n { id: \"c2\", name: \"Random\" },\n { id: \"c3\", name: \"Open Source Projects\" },\n ],\n },\n {\n id: \"4\",\n name: \"Direct Messages\",\n children: [\n { id: \"d1\", name: \"Alice\" },\n { id: \"d2\", name: \"Bob\" },\n { id: \"d3\", name: \"Charlie\" },\n ],\n },\n];\n\nexport type TreeViewProps<T> = {\n treeData: TreeViewDataType<T>[];\n width?: number | string;\n selectedNodeId?: string;\n rootNodeId: string;\n renderNode: (\n props: NodeRendererProps<TreeViewDataType<T>>\n ) => React.ReactNode;\n afterMove?: (\n result: TreeViewMoveResult,\n newTreeData: TreeViewDataType<T>[]\n ) => void;\n};\n\nexport const TreeView = <T,>({\n treeData,\n\n selectedNodeId,\n rootNodeId,\n renderNode,\n afterMove,\n}: TreeViewProps<T>) => {\n const getMovePosition = (args: {\n dragIds: string[];\n dragNodes: NodeApi<BaseTreeViewData<T>>[];\n parentId: string | null;\n parentNode: NodeApi<BaseTreeViewData<T>> | null;\n index: number;\n }): TreeViewMoveResult | null => {\n const newData = JSON.parse(\n JSON.stringify(treeData)\n ) as TreeViewDataType<T>[];\n\n const sourceNodeId = args.dragNodes[0].data.id;\n const sourceNode = args.dragNodes[0].data;\n const oldParentId = sourceNode.parentId ?? rootNodeId;\n const newIndex = args.index;\n const targetNodeId = args.parentId ?? rootNodeId;\n\n const children = args.parentId ? args.parentNode?.children ?? [] : newData;\n\n let result: TreeViewMoveResult | null = null;\n\n if (newIndex === 0) {\n result = {\n targetNodeId: targetNodeId ?? rootNodeId,\n mode: TreeViewMoveModeEnum.FIRST_CHILD,\n sourceNodeId,\n oldParentId,\n };\n }\n if (newIndex === children.length) {\n result = {\n targetNodeId: targetNodeId ?? rootNodeId,\n mode: TreeViewMoveModeEnum.LAST_CHILD,\n sourceNodeId,\n oldParentId,\n };\n }\n\n const siblingIndex = newIndex - 1;\n const sibling = children[siblingIndex];\n\n if (sibling) {\n result = {\n targetNodeId: sibling.id,\n mode: TreeViewMoveModeEnum.RIGHT,\n sourceNodeId,\n oldParentId,\n };\n }\n\n const nextSiblingIndex = newIndex + 1;\n const nextSibling = children[nextSiblingIndex];\n if (nextSibling) {\n result = {\n targetNodeId: nextSibling.id,\n mode: TreeViewMoveModeEnum.LEFT,\n sourceNodeId,\n oldParentId,\n };\n }\n\n return result;\n };\n\n const onMove = (args: {\n dragIds: string[];\n dragNodes: NodeApi<BaseTreeViewData<T>>[];\n parentId: string | null;\n parentNode: NodeApi<BaseTreeViewData<T>> | null;\n index: number;\n }) => {\n // Création d'une copie profonde pour éviter les mutations directes\n const newData = JSON.parse(\n JSON.stringify(treeData)\n ) as TreeViewDataType<T>[];\n const draggedId = args.dragIds[0];\n\n // Fonction helper pour trouver et supprimer un nœud dans l'arbre\n const findAndRemoveNode = (\n items: TreeViewDataType<T>[],\n parentId?: string\n ): {\n currentIndex: number;\n newIndex: number;\n parentId?: string;\n draggedNode: TreeViewDataType<T>;\n } | null => {\n items.forEach((item, index) => {\n if (item.id === draggedId) {\n return {\n currentIndex: index,\n };\n }\n });\n\n for (let i = 0; i < items.length; i++) {\n if (items[i].id === draggedId) {\n const currentIndex = i;\n let newIndex = args.index;\n if (currentIndex < newIndex) {\n newIndex -= 1;\n }\n return {\n currentIndex: i,\n parentId,\n newIndex,\n draggedNode: items.splice(i, 1)[0],\n };\n }\n if (items[i].children?.length) {\n const found = findAndRemoveNode(\n items[i]?.children ?? [],\n items[i].id\n );\n if (found) {\n return found;\n }\n }\n }\n return null;\n };\n\n // Trouver et supprimer le nœud déplacé\n const r = findAndRemoveNode(newData);\n const draggedNode = r?.draggedNode;\n const currentIndex = r?.currentIndex ?? -1;\n const newIndex = r?.newIndex ?? -1;\n if (!draggedNode || currentIndex < 0 || newIndex < 0) {\n return;\n }\n\n // Cas 1: Déplacement à la racine\n if (!args.parentNode) {\n draggedNode.parentId = rootNodeId;\n newData.splice(newIndex, 0, draggedNode);\n }\n // Cas 2: Déplacement dans un dossier\n else {\n const targetParent = args.parentNode.data;\n draggedNode.parentId = targetParent.id;\n const findParentAndInsert = (items: TreeViewDataType<T>[]) => {\n for (const item of items) {\n if (item.id === targetParent.id) {\n item.children = item.children || [];\n item.children.splice(\n r.parentId === targetParent.id ? r.newIndex : args.index,\n 0,\n draggedNode\n );\n\n return true;\n }\n if (item.children?.length) {\n if (findParentAndInsert(item.children)) {\n return true;\n }\n }\n }\n return false;\n };\n\n findParentAndInsert(newData);\n }\n\n const moveResult = getMovePosition(args);\n if (moveResult) {\n afterMove?.(moveResult, newData);\n }\n };\n\n return (\n <Tree\n data={treeData}\n openByDefault={false}\n disableEdit={true}\n onMove={onMove}\n rowHeight={35}\n disableDrop={({ parentNode }) => {\n if (parentNode.data.id === \"__REACT_ARBORIST_INTERNAL_ROOT__\") {\n return false;\n }\n const isOpen = parentNode?.isOpen;\n let hasChildrenLoaded =\n parentNode.data.childrenCount &&\n parentNode.data.childrenCount > 0 &&\n parentNode?.data.children &&\n parentNode.data.children.length > 0;\n hasChildrenLoaded = hasChildrenLoaded ?? true;\n\n if (isOpen && hasChildrenLoaded) {\n return false;\n }\n\n return true;\n }}\n padding={25}\n overscanCount={20}\n selection={selectedNodeId}\n renderCursor={TreeViewSeparator}\n >\n {(props) => renderNode(props)}\n </Tree>\n );\n};\n","import { NodeRendererProps } from \"react-arborist\";\nimport { TreeViewDataType } from \"./types\";\nimport {\n PropsWithChildren,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Spinner } from \"../loader/Spinner\";\n\nexport type TreeViewNodeProps<T> = NodeRendererProps<TreeViewDataType<T>> & {\n onClick?: () => void;\n forceLoading?: boolean;\n loadChildren?: (node: TreeViewDataType<T>) => Promise<TreeViewDataType<T>[]>;\n};\n\nexport const TreeViewItem = <T,>({\n children,\n onClick,\n node,\n dragHandle,\n style,\n loadChildren,\n forceLoading,\n}: PropsWithChildren<TreeViewNodeProps<T>>) => {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const loading = forceLoading ?? isLoading;\n const hasChildren =\n (node.data.childrenCount !== undefined && node.data.childrenCount > 0) ||\n (node.data.children?.length ?? 0) > 0;\n\n const hasLoadedChildren = node.children?.length ?? 0 > 0;\n\n const isLeaf = node.isLeaf || !hasChildren;\n const handleClick = useCallback(async () => {\n if (isLeaf) {\n return;\n }\n\n if (hasLoadedChildren) {\n node.toggle();\n return;\n }\n\n setIsLoading(true);\n await loadChildren?.(node.data);\n setIsLoading(false);\n node.open();\n }, [hasLoadedChildren, loadChildren, node, isLeaf]);\n\n useEffect(() => {\n if (node.willReceiveDrop && !node.isOpen) {\n timeoutRef.current = setTimeout(() => {\n void handleClick();\n }, 200);\n }\n\n if (timeoutRef.current && !node.willReceiveDrop) {\n clearTimeout(timeoutRef.current);\n }\n }, [node, handleClick]);\n\n return (\n <div\n role=\"button\"\n onClick={onClick}\n ref={dragHandle}\n style={style}\n className={clsx(\"c__tree-view--node\", {\n willReceiveDrop: node.willReceiveDrop,\n selected: node.isSelected,\n })}\n >\n {isLeaf && <div className=\"c__tree-view--node__leaf\" />}\n {!isLeaf && (\n <>\n {loading && (\n <div className=\"c__tree-view--node__loading\">\n <Spinner />\n </div>\n )}\n {!loading && (\n <span\n onClick={(e) => {\n e.stopPropagation();\n void handleClick();\n }}\n className=\"c__tree-view--node__arrow material-icons\"\n >\n {node.isOpen ? \"keyboard_arrow_down\" : \"keyboard_arrow_right\"}\n </span>\n )}\n </>\n )}\n {children}\n </div>\n );\n};\n","import { useState } from \"react\";\nimport { TreeViewDataType } from \"./types\";\n\nexport const useTree = <T,>(\n tree: TreeViewDataType<T>[],\n refreshCallback?: (id: string) => Promise<Partial<TreeViewDataType<T>>>\n) => {\n const [treeData, setTreeData] = useState<TreeViewDataType<T>[]>(tree);\n const [selectedNode, setSelectedNode] = useState<TreeViewDataType<T>>();\n\n // Ajouter un enfant à un nœud spécifique\n const addChild = (parentId: string, newNode: TreeViewDataType<T>) => {\n const updateTree = (\n nodes: TreeViewDataType<T>[]\n ): TreeViewDataType<T>[] => {\n return nodes.map((node) => {\n if (node.id === parentId) {\n return {\n ...node,\n children: [...(node.children || []), newNode],\n };\n }\n if (node.children) {\n return {\n ...node,\n children: updateTree(node.children),\n };\n }\n return node;\n });\n };\n\n setTreeData(updateTree(treeData));\n };\n\n // Mettre à jour un nœud\n const updateNode = (\n nodeId: string,\n updatedData: Partial<TreeViewDataType<T>>\n ) => {\n const updateTree = (\n nodes: TreeViewDataType<T>[]\n ): TreeViewDataType<T>[] => {\n return nodes.map((node) => {\n if (node.id === nodeId) {\n return {\n ...node,\n ...updatedData,\n };\n }\n if (node.children) {\n return {\n ...node,\n children: updateTree(node.children),\n };\n }\n return node;\n });\n };\n\n setTreeData(updateTree(treeData));\n };\n\n // Supprimer un nœud\n const deleteNode = (nodeId: string) => {\n const deleteFromTree = (\n nodes: TreeViewDataType<T>[]\n ): TreeViewDataType<T>[] => {\n return nodes.filter((node) => {\n if (node.id === nodeId) {\n return false;\n }\n if (node.children) {\n node.children = deleteFromTree(node.children);\n }\n return true;\n });\n };\n\n setTreeData(deleteFromTree(treeData));\n };\n\n const refreshNode = async (nodeId: string) => {\n if (!refreshCallback) {\n console.error(\"No refresh callback provided\");\n return;\n }\n try {\n const updatedData = await refreshCallback(nodeId);\n updateNode(nodeId, updatedData);\n } catch (error) {\n console.error(\"error while refreshing node:\", error);\n }\n };\n\n const addRootNode = (newNode: TreeViewDataType<T>) => {\n setTreeData([...treeData, newNode]);\n };\n\n // Définir ou fusionner les enfants d'un nœud\n const setChildren = (\n parentId: string,\n newChildren: TreeViewDataType<T>[],\n mergeStrategy: \"replace\" | \"merge\" = \"merge\"\n ) => {\n const updateTree = (\n nodes: TreeViewDataType<T>[]\n ): TreeViewDataType<T>[] => {\n return nodes.map((node) => {\n if (node.id === parentId) {\n const existingChildren = node.children || [];\n const updatedChildren =\n mergeStrategy === \"merge\"\n ? [\n ...existingChildren.filter(\n (existing) =>\n !newChildren.some(\n (newChild) => newChild.id === existing.id\n )\n ),\n ...newChildren,\n ]\n : newChildren;\n\n return {\n ...node,\n children: updatedChildren,\n };\n }\n if (node.children) {\n return {\n ...node,\n children: updateTree(node.children),\n };\n }\n return node;\n });\n };\n\n setTreeData(updateTree(treeData));\n };\n\n return {\n treeData,\n setTreeData,\n addChild,\n updateNode,\n deleteNode,\n addRootNode,\n selectedNode,\n setSelectedNode,\n refreshNode,\n setChildren,\n };\n};\n"],"names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","e","h","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","isObject","deepMerge","target","sources","getLocales","originalEnUS","enUS","originalFrFR","frFR","CunninghamProvider","locales","OriginalProvider","ProConnectButton","disabled","onClick","Button","$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c","$HgANd$react","$8ae05eaa5c114e9c$export$7f54fc3180508a52","$lmaYr$useRef","$lmaYr$useCallback","$1dbecbe27a04f9af$export$14d238f342723f25","defaultValue","setValue","$fCAlL$useState","effect","$fCAlL$useRef","nextRef","newValue","queue","$b5e257d569688ac6$var$defaultContext","$b5e257d569688ac6$var$SSRContext","$670gB$react","$b5e257d569688ac6$var$IsSSRContext","$b5e257d569688ac6$var$canUseDOM","$b5e257d569688ac6$var$componentIds","$b5e257d569688ac6$var$useCounter","isDisabled","ctx","$670gB$useContext","$670gB$useRef","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner","_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","currentOwner","prevComponentValue","$b5e257d569688ac6$var$useLegacySSRSafeId","defaultId","counter","$b5e257d569688ac6$var$useModernSSRSafeId","id","didSSR","$670gB$useState","$b5e257d569688ac6$export$535bd6ca7f90a273","$b5e257d569688ac6$export$619500959fc48b26","$b5e257d569688ac6$var$getSnapshot","$b5e257d569688ac6$var$getServerSnapshot","$b5e257d569688ac6$var$subscribe","onStoreChange","$bdb11010cef70236$var$canUseDOM","$bdb11010cef70236$var$idsUpdaterMap","$bdb11010cef70236$export$f680877a34711e37","$eKkEp$useState","nextId","$eKkEp$useRef","res","$eKkEp$useSSRSafeId","updateValue","$eKkEp$useCallback","val","r","$eKkEp$useEffect","newId","$bdb11010cef70236$export$cd8c9cb68f842629","idA","idB","setIdsA","setIdsB","$bdb11010cef70236$export$b4cc09c592e8fdb8","depArray","resolvedId","setResolvedId","updateId","$ff5963eb1fccf552$export$e08e3b67e392101e","callbacks","callback","$431fbd86ca7dc216$export$b204af158042fbac","el","_el_ownerDocument","$431fbd86ca7dc216$export$f21a1ffae260145a","t","o","clsx","$3ef42575df84b30b$export$9d1611c77c2fe928","result","$7jXr9$clsx","$5dc95899b306f630$export$c9058316764c140e","refs","$65484d02dcb7eb3e$var$DOMPropNames","$65484d02dcb7eb3e$var$labelablePropNames","$65484d02dcb7eb3e$var$linkPropNames","$65484d02dcb7eb3e$var$propRe","$65484d02dcb7eb3e$export$457c3d6518dd4c6f","opts","labelable","isLink","propNames","filteredProps","prop","$7215afc6de606d6b$export$de79e2c695e052f3","$7215afc6de606d6b$var$supportsPreventScroll","scrollableElements","$7215afc6de606d6b$var$getScrollableElements","$7215afc6de606d6b$var$restoreScrollPosition","$7215afc6de606d6b$var$supportsPreventScrollCached","parent","rootScrollingElement","scrollTop","scrollLeft","$c87311424ea30a05$var$testUserAgent","re","_window_navigator_userAgentData","brand","$c87311424ea30a05$var$testPlatform","$c87311424ea30a05$var$cached","$c87311424ea30a05$export$9ac100e40613ea10","$c87311424ea30a05$export$186c6964ca17d99","$c87311424ea30a05$export$7bef049ce92e4224","$c87311424ea30a05$export$fedb369cb70207f1","$c87311424ea30a05$export$e1865c3bedcd822b","$c87311424ea30a05$export$78551043582a6a98","$c87311424ea30a05$export$6446a186d09e379e","$c87311424ea30a05$export$a11b0059900ceec8","$c87311424ea30a05$export$b7d78993b74f766d","$ea8dcbcb9ea1b556$var$RouterContext","$g3jFn$createContext","$ea8dcbcb9ea1b556$var$openSyntheticLink","href","$ea8dcbcb9ea1b556$export$9a302a45f65d0572","$g3jFn$useContext","$ea8dcbcb9ea1b556$export$95185d699e05d4d7","modifiers","setOpening","_window_event_type","_window_event","metaKey","ctrlKey","altKey","shiftKey","event","$ea8dcbcb9ea1b556$var$getSyntheticLink","open","link","$ea8dcbcb9ea1b556$export$7e924b3091a3bd18","router","_props_href","$bbed8b41f857bcc0$var$transitionsByElement","$bbed8b41f857bcc0$var$transitionCallbacks","$bbed8b41f857bcc0$var$setupGlobalEvents","isTransitionEvent","onTransitionStart","transitions","onTransitionEnd","properties","cb","$bbed8b41f857bcc0$export$24490316f764c430","$03deb23ff14920c4$export$4eaf04e54aa8eed6","globalListeners","$lPAwt$useRef","addGlobalListener","$lPAwt$useCallback","eventTarget","listener","options","removeGlobalListener","_globalListeners_current_get","removeAllGlobalListeners","$lPAwt$useEffect","$313b98861ee5dd6c$export$d6875122194c7b44","defaultLabel","label","labelledBy","$df56164dff5785e2$export$4338b53315abf666","forwardedRef","objRef","$gbmns$useRef","$gbmns$useMemo","$ca9b37712f007381$export$72ef708ab07251f1","dependencies","isInitialMount","$azsE2$useRef","lastDeps","dep","$9daab02d461809db$var$hasResizeObserver","$9daab02d461809db$export$683480f191c0e3ea","box","onResize","$Vsl8o$useEffect","resizeObserverInstance","entries","$e7801be82b4b2a53$export$4debdb1a3f0fa79e","$cc38e7bd3fc7b213$export$2bb74740c4e19def","checkForOverflow","style","isScrollable","$62d8ded9296f3872$export$cfa2225e87938781","scrollableNode","$a40c673dc9f6d9c7$export$94ed1c92c7beeb22","scrollParents","$ef06256079686ba0$var$descriptionId","$ef06256079686ba0$var$descriptionNodes","$ef06256079686ba0$export$f8aeda7b10753fa1","description","setId","$hQ5Hp$useState","desc","$e9faafb641e167db$export$90fc3a17d93f704c","handler","handleEvent","$ceQd6$useEffect","$2f04cbc44ee30ce0$export$53a0910f038337bd","scrollView","offsetX","$2f04cbc44ee30ce0$var$relativeOffset","offsetY","width","height","y","borderTopWidth","borderLeftWidth","scrollPaddingTop","scrollPaddingRight","scrollPaddingBottom","scrollPaddingLeft","borderAdjustedX","borderAdjustedY","maxX","maxY","scrollPaddingTopNumber","scrollPaddingBottomNumber","scrollPaddingRightNumber","scrollPaddingLeftNumber","ancestor","axis","sum","$2f04cbc44ee30ce0$export$c826860796309d1b","targetElement","root","scrollParent","_targetElement_scrollIntoView","originalLeft","originalTop","newLeft","newTop","_opts_containingElement_scrollIntoView","_opts_containingElement","_targetElement_scrollIntoView1","$6a7db85432448f7f$export$60278871457622de","$6a7db85432448f7f$export$29bf1b5f2c56cf63","$5671b20cf9b562b2$export$447a38995de2c711","$5671b20cf9b562b2$export$831c820ad60f9d12","$5671b20cf9b562b2$export$9db568f6321ad9dc","$21f1aa98acb08317$export$16792effe837dba3","$d3f049242431219c$export$6d3443f2c48bfc20","isReady","isEntering","setEntering","$jJMAe$useState","isAnimationReady","animation","$d3f049242431219c$var$useAnimation","$jJMAe$useCallback","$d3f049242431219c$export$45fda7c47f93fd48","isOpen","exitState","setExitState","isExiting","state","isActive","onEnd","animations","canceled","$jJMAe$flushSync","$458b0a5536c1a7cf$export$40bfa8c7b0832715","onChange","stateValue","setStateValue","$3whtM$useState","isControlledRef","$3whtM$useRef","isControlled","$3whtM$useEffect","wasControlled","currentValue","$3whtM$useCallback","onChangeCaller","onChangeArgs","oldValue","functionArgs","interceptedValue","$9446cca9a3875146$export$7d15b64cf5a3a4c4","min","max","$64fa3d84918910a7$export$c62b8e45d58ddad9","$64fa3d84918910a7$export$2881499e37b75b9a","Context","$iETbY$react","$64fa3d84918910a7$export$4d86445c2cf5e3","className","defaultClassName","defaultChildren","defaultStyle","$iETbY$useMemo","computedClassName","computedStyle","computedChildren","$64fa3d84918910a7$export$fabf2dc03a41866e","slot","$iETbY$useContext","availableSlots","slotKey","$64fa3d84918910a7$export$29f1550f4b0d4415","contextRef","contextProps","mergedRef","$iETbY$useObjectRef","$iETbY$mergeRefs","mergedProps","$iETbY$mergeProps","renderProps","contextStyle","$64fa3d84918910a7$export$9d4c57ee4c6ffdd8","hasSlot","setHasSlot","$iETbY$useState","hasRun","$iETbY$useRef","$iETbY$useCallback","$iETbY$useLayoutEffect","$23b9f4fcf0fe224b$export$d68d59712b04d9d1","$23b9f4fcf0fe224b$export$408d25a4e12db025","keyMap","_node_key","_this_keyMap_get","Constructor","collection","firstKey","lastKey","isSSR","filterFn","newCollection","lastNode","clonedSection","lastChildInSection","clonedChild","clonedSeparator","clonedNode","lastSection","$681cc3c98f569e39$export$410b0c854570d131","firstChild","lastChild","previousSibling","nextSibling","parentNode","_this_parentNode","newNode","referenceNode","ownerDocument","$681cc3c98f569e39$export$dc064fe9e59310fd","index","_this_previousSibling","_this_nextSibling","_this_firstChild","_this_lastChild","_this_previousSibling_node_key","_this_nextSibling_node_key","_this_firstChild_node_key","_this_lastChild_node_key","obj","rendered","render","textValue","$681cc3c98f569e39$export$b34a105447964f9f","$e948873055cbafe4$export$727c8fc270210f13","items","idScope","addIdAndValue","cache","$luMFQ$useMemo","_rendered_props_id","_ref","$luMFQ$cloneElement","getFirstChild","$f39a9eba43920ace$export$94b6d0abf7d33e8c","$8SdCi$createContext","$f39a9eba43920ace$var$hiddenFragment","$f39a9eba43920ace$export$8dc98ba7eadeaa56","isHidden","$8SdCi$useContext","$8SdCi$useIsSSR","$8SdCi$react","$8SdCi$createPortal","$f39a9eba43920ace$export$86427a43e3e48ebb","Wrapper","$8SdCi$forwardRef","$f39a9eba43920ace$export$b5d7cc18bb8d2b59","is","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","didWarnOld18Alpha","didWarnUncachedGetSnapshot","cachedValue","useSyncExternalStoreShim_development","shimModule","$e1995378a142960e$var$ShallowRenderContext","$95feo$createContext","$e1995378a142960e$var$CollectionDocumentContext","$e1995378a142960e$export$bf788dd355e3a401","$95feo$useContext","document","$e1995378a142960e$var$useCollectionDocument","$95feo$react","$e1995378a142960e$var$CollectionInner","$e1995378a142960e$var$useSyncExternalStoreFallback","getServerSnapshot","$95feo$useIsSSR","isSSRRef","$95feo$useRef","getSnapshotWrapper","$95feo$useCallback","$95feo$useSyncExternalStore","$e1995378a142960e$var$useSyncExternalStore","createCollection","$95feo$useState","$95feo$useLayoutEffect","$e1995378a142960e$var$SSRContext","$e1995378a142960e$var$useSSRCollectionNode","Type","itemRef","$e1995378a142960e$export$18af5c7a9e9b3664","Result","$95feo$forwardRef","$e1995378a142960e$var$useCollectionChildren","$e1995378a142960e$var$CollectionContext","$e1995378a142960e$export$fb8073518f34e6ec","$e1995378a142960e$var$CollectionRoot","$95feo$useMemo","doc","wrappedChildren","$95feo$createPortal","$14c0b72509d70225$var$state","$14c0b72509d70225$var$savedUserSelect","$14c0b72509d70225$var$modifiedElementMap","$14c0b72509d70225$export$16a4697467175487","$7R18e$isIOS","documentObject","$7R18e$getOwnerDocument","$14c0b72509d70225$export$b0d6fa1ab32e3295","$7R18e$runAfterTransition","targetOldUserSelect","$ae1eeba8b9eafd08$export$5165eccb35aaadb5","$3aeG1$react","_class_apply_descriptor_get","receiver","descriptor","_class_extract_field_descriptor","privateMap","action","_class_private_field_get","_check_private_redeclaration","privateCollection","_class_private_field_init","_class_apply_descriptor_set","_class_private_field_set","$f6c31cce2adf654f$var$usePressResponderContext","$7mdmh$useContext","register","$7mdmh$mergeProps","$7mdmh$useSyncRef","$f6c31cce2adf654f$var$_shouldStopPropagation","$f6c31cce2adf654f$var$PressEvent","$7mdmh$_2","$7mdmh$_","pointerType","originalEvent","$7mdmh$_1","_state_target","currentTarget","rect","clientX","clientY","$f6c31cce2adf654f$var$LINK_CLICKED","$f6c31cce2adf654f$export$45712eceda6fad21","onPress","onPressChange","onPressStart","onPressEnd","onPressUp","isPressedProp","preventFocusOnPress","shouldCancelOnPointerExit","allowTextSelectionOnPress","_","domProps","isPressed","setPressed","$7mdmh$useState","$7mdmh$useRef","$7mdmh$useGlobalListeners","triggerPressStart","$7mdmh$useEffectEvent","shouldStopPropagation","triggerPressEnd","wasPressed","triggerPressUp","cancel","$f6c31cce2adf654f$var$createEvent","cancelOnPointerExit","pressProps","$7mdmh$useMemo","$f6c31cce2adf654f$var$isValidKeyboardEvent","_state_metaKeyEvents","$f6c31cce2adf654f$var$shouldPreventDefaultKeyboard","originalTarget","pressUp","$7mdmh$getOwnerDocument","$7mdmh$chain","onKeyUp","$7mdmh$isMac","$7mdmh$openLink","$7mdmh$isVirtualClick","$7mdmh$focusWithoutScrolling","stopPressStart","stopPressUp","stopPressEnd","_state_metaKeyEvents1","$f6c31cce2adf654f$var$isHTMLAnchorLink","events","$7mdmh$isVirtualPointerEvent","$f6c31cce2adf654f$var$shouldPreventDefaultDown","onPointerUp","onPointerCancel","onTouchEnd","$f6c31cce2adf654f$var$shouldPreventDefaultUp","onMouseUp","$f6c31cce2adf654f$var$isOverTarget","touch","$f6c31cce2adf654f$var$getTouchFromEvent","$f6c31cce2adf654f$var$createTouchEvent","$7mdmh$getOwnerWindow","onScroll","$f6c31cce2adf654f$var$getTouchById","$7mdmh$useEffect","_ref_current_target","code","role","$f6c31cce2adf654f$var$isValidInputKey","targetTouches","pointerId","changedTouches","$f6c31cce2adf654f$var$getPointClientRect","point","$f6c31cce2adf654f$var$areRectanglesOverlapping","pointRect","$f6c31cce2adf654f$var$nonTextInputTypes","$f1ab8c75478c6f73$export$cf75428e0b9ed1ea","$87RPk$useMemo","$87RPk$react","$8a9cb279dc87e130$export$905e7fc544a71f36","nativeEvent","$8a9cb279dc87e130$export$715c682d09d639cc","onBlur","stateRef","$6dfIe$useRef","$6dfIe$useLayoutEffect","dispatchBlur","$6dfIe$useEffectEvent","$6dfIe$useCallback","onBlurHandler","_stateRef_current_observer","relatedTargetEl","$a1ea59d68270f0dd$export$f8168d8dd8fd66e6","onFocusProp","onBlurProp","onFocusChange","$hf0lj$useCallback","onSyntheticFocus","onFocus","$hf0lj$getOwnerDocument","$507fabe10e71c6fb$var$currentModality","$507fabe10e71c6fb$var$changeHandlers","$507fabe10e71c6fb$export$d90243b58daecda7","$507fabe10e71c6fb$var$hasEventBeforeFocus","$507fabe10e71c6fb$var$hasBlurredWindowRecently","$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS","$507fabe10e71c6fb$var$triggerChangeHandlers","modality","$507fabe10e71c6fb$var$isValidKey","$28AnR$isMac","$507fabe10e71c6fb$var$handleKeyboardEvent","$507fabe10e71c6fb$var$handlePointerEvent","$507fabe10e71c6fb$var$handleClickEvent","$28AnR$isVirtualClick","$507fabe10e71c6fb$var$handleFocusEvent","$507fabe10e71c6fb$var$handleWindowBlur","$507fabe10e71c6fb$var$setupGlobalFocusEvents","$28AnR$getOwnerWindow","windowObject","$28AnR$getOwnerDocument","focus","$507fabe10e71c6fb$var$tearDownWindowFocusTracking","loadListener","$507fabe10e71c6fb$export$2f1888112f558a7d","$507fabe10e71c6fb$export$b9b3dfddab17db27","$507fabe10e71c6fb$export$630ff653c5ada6a9","$507fabe10e71c6fb$var$nonTextInputTypes","$507fabe10e71c6fb$var$isKeyboardFocusEvent","isTextInput","_e_target","IHTMLInputElement","IHTMLTextAreaElement","IHTMLElement","IKeyboardEvent","$507fabe10e71c6fb$export$ec71b4b83ac08ec3","deps","$28AnR$useEffect","$9ab94262bd0047c7$export$420e68273165f4ec","onBlurWithin","onFocusWithin","onFocusWithinChange","$3b9Q0$useRef","$3b9Q0$useCallback","$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$hoverCount","$6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$handleGlobalPointerEvent","$6179b936705e76d3$var$setupGlobalTouchEvents","$6179b936705e76d3$export$ae780daf29e6d456","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","$AWxnT$useState","$AWxnT$useRef","$AWxnT$useEffect","hoverProps","triggerHoverEnd","$AWxnT$useMemo","triggerHoverStart","$e0b6e0b68ec7f50f$export$872b660ac5a1ff98","onInteractOutside","onInteractOutsideStart","$ispOf$useRef","onPointerDown","$ispOf$useEffectEvent","$e0b6e0b68ec7f50f$var$isValidEvent","triggerInteractOutside","$ispOf$useEffect","$ispOf$getOwnerDocument","$93925083ecbb358c$export$48d1ea6320830260","$46d819fcbaf35654$export$8f71654801c2f7cd","$8a26561d2877236e$var$DEFAULT_THRESHOLD","$8a26561d2877236e$export$c24ed0104d07eab9","onLongPressStart","onLongPressEnd","onLongPress","threshold","accessibilityDescription","timeRef","$4k2kv$useRef","$4k2kv$useGlobalListeners","onContextMenu","descriptionProps","$4k2kv$useDescription","$4k2kv$mergeProps","$6a99195332edec8b$export$80f3e147d781571c","$jlOai$getOwnerDocument","$jlOai$getInteractionModality","lastFocusedElement","$jlOai$runAfterTransition","$jlOai$focusWithoutScrolling","$645f2e67b85a24c9$var$isStyleVisible","$djhjW$getOwnerWindow","display","visibility","isVisible","getComputedStyle","computedDisplay","computedVisibility","$645f2e67b85a24c9$var$isAttributeVisible","childElement","$645f2e67b85a24c9$export$e989c0fffaa6b27a","$9bf71ea28793e738$var$FocusContext","$cgawC$react","$9bf71ea28793e738$var$RESTORE_FOCUS_EVENT","$9bf71ea28793e738$var$activeScope","$9bf71ea28793e738$export$20e40289641fbbb6","contain","restoreFocus","autoFocus","startRef","$cgawC$useRef","endRef","scopeRef","$cgawC$useContext","$cgawC$useMemo","$9bf71ea28793e738$var$TreeNode","$cgawC$useLayoutEffect","$9bf71ea28793e738$export$d06fae2ee68b101e","$9bf71ea28793e738$var$isAncestorScope","activeNode","_startRef_current","nodes","stopPropagation","$9bf71ea28793e738$var$useActiveScopeTracker","$9bf71ea28793e738$var$useFocusContainment","$9bf71ea28793e738$var$useRestoreFocus","$9bf71ea28793e738$var$useAutoFocus","$cgawC$useEffect","activeElement","$cgawC$getOwnerDocument","scope","$9bf71ea28793e738$var$isElementInScope","_focusScopeTree_getTreeNode_parent","_focusScopeTree_getTreeNode","_focusScopeTree_getTreeNode_parent_scopeRef","parentScope","focusManager","$9bf71ea28793e738$var$createFocusManagerForScope","from","tabbable","wrap","accept","sentinel","scopeRoot","$9bf71ea28793e738$var$getScopeRoot","walker","$9bf71ea28793e738$export$2d6ec8fc375ceafa","nextNode","$9bf71ea28793e738$var$focusElement","previousNode","$9bf71ea28793e738$var$focusableElements","$9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR","$9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR","$9bf71ea28793e738$var$shouldContainFocus","focusedNode","raf","onKeyDown","focusedElement","nextElement","$9bf71ea28793e738$var$isElementInChildScope","$9bf71ea28793e738$var$focusFirstInScope","$cgawC$getInteractionModality","$cgawC$isAndroid","$cgawC$isChrome","_focusedNode_current","$9bf71ea28793e738$var$isElementInAnyScope","$9bf71ea28793e738$export$1258395f99bf9cbf","scroll","$9bf71ea28793e738$var$getFirstInScope","autoFocusRef","restore","$9bf71ea28793e738$var$shouldRestoreFocus","nodeToRestoreRef","treeNode","nodeToRestore","_nodeToRestoreRef_current","clonedTree","$9bf71ea28793e738$var$restoreFocusToElement","selector","_opts_from","$9bf71ea28793e738$var$Tree","data","current","_node_parent","newTree","_node_parent_scopeRef","$f7dceffc5ad7768b$export$4e328f61c538687f","within","$isWE5$useRef","$isWE5$isFocusVisible","isFocused","setFocused","$isWE5$useState","isFocusVisibleState","setFocusVisible","updateState","$isWE5$useCallback","$isWE5$useFocusVisibleListener","isFocusVisible","focusProps","$isWE5$useFocus","focusWithinProps","$isWE5$useFocusWithin","$83013635b024ae3d$export$eac1895992b9f3d6","hasTabbableChild","setHasTabbableChild","$hGAaG$useState","$hGAaG$useLayoutEffect","update","observer","$148a7a147e38ea7f$var$RTL_SCRIPTS","$148a7a147e38ea7f$var$RTL_LANGS","$148a7a147e38ea7f$export$702d680b21cbd764","localeString","locale","textInfo","lang","$1e5a04cdaf7d1af8$var$localeSymbol","$1e5a04cdaf7d1af8$export$f09106e7c6677ec5","$1e5a04cdaf7d1af8$var$currentLocale","$1e5a04cdaf7d1af8$var$listeners","$1e5a04cdaf7d1af8$var$updateLocale","$1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a","$ffhGL$useIsSSR","defaultLocale","setDefaultLocale","$ffhGL$useState","$ffhGL$useEffect","$18f2051aff69b9bf$var$I18nContext","$h9FiU$react","$18f2051aff69b9bf$export$43bb16f9c6d9e3f7","$h9FiU$useContext","__assign","__rest","__spreadArray","to","pack","ar","$5b160d28a433310d$var$localeSymbol","$5b160d28a433310d$var$stringsSymbol","$5b160d28a433310d$var$cachedGlobalStrings","$5b160d28a433310d$export$c17fa47878dc55b6","string","strings","$5b160d28a433310d$var$getStringsForLocale","packageName","globalStrings","pkg","dictionary","messages","v","language","$5b160d28a433310d$var$getLanguage","$6db58dc88e78b024$var$pluralRulesCache","$6db58dc88e78b024$var$numberFormatCache","$6db58dc88e78b024$export$2f817fcdc4b89ae0","variables","message","count","opt","pluralRules","selected","numberFormat","$fca6afa0e843324b$var$cache","$fca6afa0e843324b$var$getCachedDictionary","$6ksNp$LocalizedStringDictionary","$fca6afa0e843324b$export$87b761675e8eaa10","$fca6afa0e843324b$export$f12b703ca79dfbb1","$6ksNp$useMemo","$6ksNp$LocalizedStringFormatter","$325a3faab7a68acd$var$cache","$325a3faab7a68acd$export$a16aca283550c30d","cacheKey","formatter","$5c3e21d68f1c4674$var$styles","$5c3e21d68f1c4674$export$a966af930f325cab","isFocusable","$7JYt2$useState","$7JYt2$useFocusWithin","combinedStyles","$7JYt2$useMemo","$5c3e21d68f1c4674$export$439d29a4e110a164","Element","otherProps","visuallyHiddenProps","$7JYt2$react","$7JYt2$mergeProps","$edcf132a9284368a$var$AXIS","$edcf132a9284368a$var$FLIPPED_DIRECTION","$edcf132a9284368a$var$CROSS_AXIS","$edcf132a9284368a$var$AXIS_SIZE","$edcf132a9284368a$var$TOTAL_SIZE","$edcf132a9284368a$var$PARSED_PLACEMENT_CACHE","$edcf132a9284368a$var$visualViewport","$edcf132a9284368a$var$getContainerDimensions","containerNode","totalWidth","totalHeight","top","left","_visualViewport_scale","isPinchZoomedIn","documentElement","_visualViewport_width","_visualViewport_height","$edcf132a9284368a$var$getOffset","$fZVmS$isWebKit","_visualViewport_pageTop","_visualViewport_pageLeft","$edcf132a9284368a$var$getScroll","$edcf132a9284368a$var$getDelta","offset","size","boundaryDimensions","containerDimensions","padding","containerOffsetWithBoundary","_containerDimensions_scroll_axis","containerScroll","boundarySize","boundaryStartEdge","boundaryEndEdge","startEdgeOffset","endEdgeOffset","$edcf132a9284368a$var$getMargins","$edcf132a9284368a$var$parsePlacement","input","placement","crossPlacement","crossAxis","crossSize","$edcf132a9284368a$var$computePosition","childOffset","overlaySize","placementInfo","crossOffset","isContainerPositioned","arrowSize","arrowBoundaryOffset","position","_childOffset_crossAxis","_childOffset_crossSize","_overlaySize_crossSize","_childOffset_crossSize1","_overlaySize_crossSize1","minPosition","maxPosition","$fZVmS$clamp","containerHeight","$edcf132a9284368a$var$getMaxHeight","margins","overlayHeight","heightGrowthDirection","_position_bottom","overlayTop","_boundaryDimensions_scroll_top","_margins_top","_margins_bottom","_boundaryDimensions_scroll_top1","_margins_top1","_margins_bottom1","maxHeight","$edcf132a9284368a$var$getAvailableSpace","_boundaryDimensions_scroll_axis","_margins_axis","_margins_axis1","$edcf132a9284368a$export$6839422d1f33cee9","placementInput","scrollSize","flip","userSetMaxHeight","normalizedOffset","space","flippedPlacementInfo","flippedPosition","delta","arrowPosition","preferredArrowPosition","arrowMinPosition","_margins_left","_margins_right","overlayMargin","arrowMaxPosition","arrowOverlappingChildMinEdge","arrowOverlappingChildMaxEdge","arrowPositionOverlappingChild","$edcf132a9284368a$export$b3ceb0cbf1056d98","targetNode","overlayNode","scrollNode","shouldFlip","boundaryElement","container","$edcf132a9284368a$var$getContainingBlock","isViewportContainer","containerPositionStyle","$edcf132a9284368a$var$getPosition","marginTop","marginLeft","clientTop","clientLeft","parentOffset","parentStyle","offsetParent","$edcf132a9284368a$var$isContainingBlock","$dd149f63282afbbf$export$f6211563215e3b37","$dd149f63282afbbf$export$18fc8428861184da","triggerRef","onClose","$dRVb8$useEffect","onCloseHandler","$2a41e45df1593e64$var$visualViewport","$2a41e45df1593e64$export$d39e1813b3bdd0e1","direction","$39EOa$useLocale","targetRef","overlayRef","scrollRef","containerPadding","shouldUpdatePosition","setPosition","$39EOa$useState","lastScale","$39EOa$useRef","$39EOa$useEffect","updatePosition","$39EOa$useCallback","anchor","_document_activeElement","anchorRect","scrollRect","_anchorRect_top","_anchorRect_bottom","overlay","_window_visualViewport","_window_visualViewport_height","$2a41e45df1593e64$var$translateRTL","newOffset","$39EOa$useLayoutEffect","$2a41e45df1593e64$var$useResize","$39EOa$useResizeObserver","isResizing","timeout","close","_position_maxHeight","_position_placement","$a11501f3d1d39e6c$var$visibleOverlays","$a11501f3d1d39e6c$export$ea8f71083e90600f","shouldCloseOnBlur","isDismissable","isKeyboardDismissDisabled","shouldCloseOnInteractOutside","$jtpZv$useEffect","onHide","$jtpZv$useInteractOutside","$jtpZv$useFocusWithin","$jtpZv$isElementInChildOfActiveScope","onPointerDownUnderlay","$49c51c25361d4cd2$var$visualViewport","$49c51c25361d4cd2$var$nonTextInputTypes","$49c51c25361d4cd2$var$preventScrollCount","$49c51c25361d4cd2$var$restore","$49c51c25361d4cd2$export$ee0f7cc6afcd1c18","$7mMvr$useLayoutEffect","$7mMvr$isIOS","$49c51c25361d4cd2$var$preventScrollMobileSafari","$49c51c25361d4cd2$var$preventScrollStandard","$7mMvr$chain","$49c51c25361d4cd2$var$setStyle","scrollable","restoreScrollableStyles","onTouchStart","$7mMvr$getScrollParent","onTouchMove","$49c51c25361d4cd2$var$willOpenKeyboard","setupStyles","$49c51c25361d4cd2$var$scrollIntoView","restoreStyles","onWindowScroll","scrollX","scrollY","$49c51c25361d4cd2$var$addEvent","removeEvents","cur","nextTarget","scrollableTop","targetTop","$773d5888b972f1cf$exports","$d11f19852b941573$exports","$b983974c2ee1efb3$exports","$5809cc9d4e92de73$exports","$c68c2e4fc74398d1$exports","$0898b4c153db2b77$exports","$6d74810286a15183$exports","$309d73dc65f78055$exports","$44ad94f7205cf593$exports","$7c28f5687f0779a9$exports","$e6d75df4b68bd73a$exports","$87505c9dab186d0f$exports","$553439c3ffb3e492$exports","$74cf411061b983a2$exports","$e933f298574dc435$exports","$ac91fc9fe02f71f6$exports","$52b96f86422025af$exports","$c0d724c3e51dafa6$exports","$c92899672a3fe72e$exports","$9f576b39d8e7a9d6$exports","$9d025808aeec81a7$exports","$fce709921e2c0fa6$exports","$2599cf0c4ab37f59$exports","$3c220ae7ef8a35fd$exports","$93562b5094072f54$exports","$cd9e2abd0d06c7b4$exports","$45375701f409adf1$exports","$27fab53a576de9dd$exports","$4438748d9952e7c7$exports","$0936d7347ef4da4c$exports","$29700c92185d38f8$exports","$662ccaf2be4c25b3$exports","$d80a27deda7cdb3c$exports","$2b2734393847c884$exports","$a2f21f5f14f60553$exports","$k51So$arAEmodulejs","$k51So$bgBGmodulejs","$k51So$csCZmodulejs","$k51So$daDKmodulejs","$k51So$deDEmodulejs","$k51So$elGRmodulejs","$k51So$enUSmodulejs","$k51So$esESmodulejs","$k51So$etEEmodulejs","$k51So$fiFImodulejs","$k51So$frFRmodulejs","$k51So$heILmodulejs","$k51So$hrHRmodulejs","$k51So$huHUmodulejs","$k51So$itITmodulejs","$k51So$jaJPmodulejs","$k51So$koKRmodulejs","$k51So$ltLTmodulejs","$k51So$lvLVmodulejs","$k51So$nbNOmodulejs","$k51So$nlNLmodulejs","$k51So$plPLmodulejs","$k51So$ptBRmodulejs","$k51So$ptPTmodulejs","$k51So$roROmodulejs","$k51So$ruRUmodulejs","$k51So$skSKmodulejs","$k51So$slSImodulejs","$k51So$srSPmodulejs","$k51So$svSEmodulejs","$k51So$trTRmodulejs","$k51So$ukUAmodulejs","$k51So$zhCNmodulejs","$k51So$zhTWmodulejs","$parcel$interopDefault","$86ea4cb521eb2e37$export$2317d149ed6f78c4","onDismiss","stringFormatter","$iYaQO$useLocalizedStringFormatter","$iYaQO$intlStringsmodulejs","labels","$iYaQO$useLabels","$iYaQO$react","$iYaQO$VisuallyHidden","$5e3802645cc19319$var$refCountMap","$5e3802645cc19319$var$observerStack","$5e3802645cc19319$export$1c3ebcada18427bf","targets","visibleNodes","hiddenNodes","walk","acceptNode","acceptRoot","hide","_refCountMap_get","refCount","changes","change","observerWrapper","$f2f8a6077418541e$export$542a6fd13ac93354","popoverRef","isNonModal","overlayProps","underlayProps","positionProps","arrowProps","$m0yab$useLayoutEffect","$m0yab$mergeProps","$96b38030c423d352$export$60d741e20e0aa309","$7yuSY$createContext","$96b38030c423d352$export$574e9b0fb070c3b0","_useContext","$7yuSY$useContext","$337b884510726a0d$export$a2200b96afd16271","$1CM7W$react","$337b884510726a0d$export$c6fdb837b070b4ff","$1CM7W$useIsSSR","portalContainer","setContain","$1CM7W$useState","contextValue","$1CM7W$useMemo","getContainer","contents","$1CM7W$FocusScope","$1CM7W$ClearPressResponder","$1CM7W$reactdom","$feb5ffebff200149$export$d3e3bd3e26688c04","$jUnAJ$isAppleDevice","$fb3050f43d946246$var$TYPEAHEAD_DEBOUNCE_WAIT_MS","$fb3050f43d946246$export$e32c88dfddc6e1d8","keyboardDelegate","selectionManager","onTypeSelect","$dAE4Y$useRef","character","$fb3050f43d946246$var$getStringForKey","$ae20dd8cbca75726$export$d6daf82dcd84e87c","manager","delegate","shouldFocusWrap","disallowEmptySelection","disallowSelectAll","selectOnFocus","disallowTypeAhead","shouldUseVirtualFocus","allowsTabNavigation","isVirtualized","linkBehavior","$3H3GQ$useLocale","$3H3GQ$useRouter","_ref_current","navigateToKey","childFocus","_scrollRef_current","$3H3GQ$flushSync","itemProps","_delegate_getKeyBelow","_delegate_getFirstKey","_delegate_getFirstKey1","nextKey","_delegate_getKeyAbove","_delegate_getLastKey","_delegate_getLastKey1","_delegate_getKeyLeftOf","_delegate_getFirstKey2","_delegate_getLastKey2","_delegate_getKeyRightOf","_delegate_getLastKey3","_delegate_getFirstKey3","$3H3GQ$isCtrlKeyPressed","$3H3GQ$getFocusableTreeWalker","next","last","$3H3GQ$focusWithoutScrolling","scrollPos","$3H3GQ$useRef","$3H3GQ$useEvent","_scrollRef_current1","_scrollRef_current_scrollTop","_scrollRef_current_scrollLeft","navigateToFirstKey","relatedTarget","_manager_lastSelectedKey","_manager_firstSelectedKey","$3H3GQ$getInteractionModality","$3H3GQ$scrollIntoViewport","shouldVirtualFocusFirst","$3H3GQ$FOCUS_EVENT","detail","updateActiveDescendant","$3H3GQ$useEffectEvent","keyToFocus","$3H3GQ$UPDATE_ACTIVEDESCENDANT","$3H3GQ$useUpdateLayoutEffect","resetFocusFirstFlag","$3H3GQ$CLEAR_FOCUS_EVENT","$3H3GQ$useEffect","focusedKey","selectedKeys","$3H3GQ$focusSafely","lastFocusedKey","$3H3GQ$scrollIntoView","handlers","typeSelectProps","$3H3GQ$mergeProps","tabIndex","$880e95eb8b93ba9a$export$ecf600387e221c37","shouldSelectOnPressUp","onAction","allowsDifferentPressOrigin","$581M0$useRouter","$581M0$useId","onSelect","$581M0$isCtrlKeyPressed","$581M0$useEffect","$581M0$focusSafely","$581M0$UPDATE_ACTIVEDESCENDANT","isLinkOverride","hasLinkAction","allowsSelection","allowsActions","hasPrimaryAction","hasSecondaryAction","hasAction","$581M0$useRef","longPressEnabled","longPressEnabledOnPressStart","hadPrimaryActionOnPressStart","performAction","itemPressProps","$880e95eb8b93ba9a$var$isSelectionKey","$880e95eb8b93ba9a$var$isActionKey","$581M0$usePress","onDoubleClick","longPressProps","$581M0$useLongPress","onDragStartCapture","$581M0$openLink","$581M0$mergeProps","$657e4dc4a6e88df0$export$8f5ed9ff9f511381","containerRect","itemRect","_container_scrollWidth","_container_scrollHeight","_container_scrollLeft","_container_scrollTop","_container_offsetWidth","_container_offsetHeight","$2a25aae57d74318e$export$a05409b8bb224a5a","_item_props","getNext","shouldSkip","tempKey","prevRect","right","layoutDelegateMethod","menu","$eak97$isScrollable","pageX","pageY","search","fromKey","substring","$982254629710d113$export$b95089534ab7c1fd","disabledKeys","layoutDelegate","collator","$1aJk5$useCollator","disabledBehavior","$1aJk5$useMemo","collectionProps","$eb2240fc39a57fa5$export$bf788dd355e3a401","$eb2240fc39a57fa5$var$iterable","$fzaAv$react","partialNode","parentKey","_v_key","_partialNode_index","cached","childNodes","_partialNode_index1","childNode","_childNode_key","nodeKey","$eb2240fc39a57fa5$var$compose","_childNode_value","_parentNode_type","$eb2240fc39a57fa5$var$capitalize","builder","_partialNode_value","_partialNode_textValue","iterable","outer","inner","str","$7613b1592d41b092$export$6cd28814d92fa9c9","factory","$lbNth$useMemo","$c5a24bc478652b5f$export$1005530eda016c13","$c5a24bc478652b5f$export$fbdeaa6a76694f71","$c5a24bc478652b5f$export$5f3398f8733f90e2","$c5a24bc478652b5f$export$8c434b3a7a4dad6","aAncestors","$c5a24bc478652b5f$var$getAncestors","bAncestors","firstNonMatchingAncestor","parents","currNode","$453cc9f0df89c0a5$var$cache","$453cc9f0df89c0a5$export$77d5aafae4e095b2","countItems","$fc79756100351201$export$6f49b4016bfc8d56","$d5336fe17ce95402$export$38eaa17faae8f579","$ieN2F$filterDOMProps","listProps","$ieN2F$useSelectableList","$ieN2F$mergeProps","_listProps_onKeyDown","$a2e5df62f93c7633$export$9d32628fc2aea7da","closeOnSelect","hasPopup","pressStartProp","pressUpProp","pressProp","hoverStartProp","isTrigger","isTriggerExpanded","_props_isDisabled","_props_isSelected","isSelected","$7Kjv5$useRouter","labelId","$7Kjv5$useSlotId","descriptionId","keyboardId","ariaProps","$7Kjv5$getItemCount","maybeClose","$7Kjv5$useSelectableItem","$7Kjv5$usePress","$7Kjv5$useHover","$7Kjv5$isFocusVisible","keyboardProps","$7Kjv5$useKeyboard","$7Kjv5$useFocus","$7Kjv5$filterDOMProps","linkProps","$7Kjv5$useLinkProps","$7Kjv5$mergeProps","$3e5eb2498db5b506$export$73f7a44322579622","heading","ariaLabel","headingId","$7Mibs$useId","$f4b273590fab9f93$export$52210f68a14655d0","$1vbRD$filterDOMProps","ariaOrientation","$99b62ae3ff97ec45$export$c5f62239608282b6","$99b62ae3ff97ec45$export$567fc7097e064344","$0175d55c2a017ebc$export$fdf4756d5b8ef90a","propsDisabled","selectedKey","$dObGJ$useSelectableItem","tabId","tabPanelId","$dObGJ$filterDOMProps","$dObGJ$useLinkProps","$dObGJ$mergeProps","$34bce698202e07cb$export$fae0121b5afe572d","$jik2T$useHasTabbableChild","_props_id","tabPanelProps","$jik2T$useLabels","$jik2T$mergeProps","$bfc6f2d60b8a4c40$export$15010ca3c1abe90b","_this_collection_getItem_props","_this_collection_getItem","orientation","$58d314389b21fa3f$export$773e389e644c5874","keyboardActivation","$bQNZs$useLocale","$bQNZs$useMemo","$bQNZs$useSelectableCollection","tabsId","$bQNZs$useId","tabListLabelProps","$bQNZs$useLabels","$bQNZs$mergeProps","$514c0188e459b4c0$export$9afb8bc826b033ea","$1B3Dx$createContext","$a02d57049d202695$export$d085fb9e920b5ca7","_node_prevKey","_node_nextKey","idx","visit","_last_key","$e40ea825a81a3709$export$52baac22726c72bf","anchorKey","currentKey","$7af3f5b51489e0b5$var$equalSets","setA","setB","$7af3f5b51489e0b5$export$253fe78d46329472","selectionMode","allowDuplicateSelectionEvents","selectionBehaviorProp","isFocusedRef","$6tM1y$useRef","$6tM1y$useState","focusedKeyRef","childFocusStrategyRef","setFocusedKey","selectedKeysProp","$6tM1y$useMemo","$7af3f5b51489e0b5$var$convertSelection","defaultSelectedKeys","setSelectedKeys","$6tM1y$useControlledState","disabledKeysProp","selectionBehavior","setSelectionBehavior","lastSelectionBehavior","$6tM1y$useEffect","childFocusStrategy","selection","$d496c0a20b6e58ec$export$6c8a5aaad13c9852","mappedKey","allKeys","first","$jkhUT$compareNodeOrder","_first_key","toKey","mappedToKey","_selectedKeys_anchorKey","_selectedKeys_currentKey","fromItem","toItem","_this_layoutDelegate","addKeys","_getFirstItem","_getFirstItem_key","$jkhUT$getFirstItem","$jkhUT$getChildNodes","_options_allowsCellSelection","$e72dd72e1c76a225$export$2f645645f7bca764","filter","selectionState","$d5vlZ$useMultipleSelectionState","$d5vlZ$useMemo","$d5vlZ$useCallback","$d5vlZ$useCollection","$d5vlZ$SelectionManager","cachedCollection","$d5vlZ$useRef","$d5vlZ$useEffect","startItem","cachedItemNodes","itemNode","itemNodes","_cachedItemNodes_length","_itemNodes_length","diff","_startItem_index","_startItem_index1","_itemNodes_length1","isReverseSearching","_startItem_index2","_startItem_index3","$a0d645289fe9b86b$export$e7f05e985daf4b5f","_props_defaultSelectedKey","setSelectedKey","$eBozH$useControlledState","$eBozH$useMemo","_keys_values_next_value","selectedItem","$fc909762b330b746$export$61c6a8c84e605fb6","setOpen","$hnMvi$useControlledState","$hnMvi$useCallback","toggle","$76f919a04c5a7d14$export$4ba071daf4e486","$fgY1A$useSingleSelectListState","$76f919a04c5a7d14$var$findDefaultSelectedKey","currentSelectedKey","lastSelectedKey","$fgY1A$useRef","$fgY1A$useEffect","_collection_getItem_props","_collection_getItem","_collection_getItem_props1","_collection_getItem1","$05ca4cd7c4a5a999$export$863faf230ee2118a","expandedKeys","$875d6693e12af071$export$728d6ba534403756","onExpandedChange","setExpandedKeys","$75HV2$useControlledState","$75HV2$useMultipleSelectionState","$75HV2$useMemo","tree","$75HV2$useCollection","$75HV2$useCallback","$75HV2$useEffect","$875d6693e12af071$var$toggleKey","$75HV2$SelectionManager","set","$d2f53cda644affe3$export$65d2a03b8800d6e3","$llkzs$createContext","$7135fc7d473fd974$export$d40e14dec8b060a8","$18I52$createContext","$7135fc7d473fd974$export$a164736487e3f0ae","renderDropIndicator","$7135fc7d473fd974$var$useCollectionRender","$18I52$useCachedChildren","keyAfter","$18I52$react","$7135fc7d473fd974$export$4feb769f8ddf26c5","$7135fc7d473fd974$export$90e00781bc59d8f9","$18I52$useMemo","$72a5793c14baf454$export$e0e4026c12a8bdbb","$i47tY$createContext","$431f98aba6844401$export$6615d83f6de245ce","$i9JCE$createContext","$431f98aba6844401$export$1ff3c3f08ae963c0","$i9JCE$createLeafComponent","elementType","separatorProps","$i9JCE$useSeparator","$i9JCE$react","$i9JCE$filterDOMProps","$44f671af83e7d9e0$export$2de4954e8ae13b9f","$8wt2Z$createContext","$07b14b47974efb58$export$9b9a0cd73afb7ca4","$ehFet$createContext","$07b14b47974efb58$export$5b6b19405a83ff9d","$ehFet$forwardRef","contextState","$ehFet$useContext","$de32f1b87079253c$export$d2f961adcb0afbe","localState","$ehFet$useOverlayTriggerState","$ehFet$useExitAnimation","$ehFet$useIsHidden","$ehFet$react","$07b14b47974efb58$var$PopoverInner","UNSTABLE_portalContainer","arrowRef","$ehFet$useRef","arrowWidth","setArrowWidth","$ehFet$useState","$ehFet$useLayoutEffect","_props_offset","popoverProps","$ehFet$usePopover","$ehFet$useEnterAnimation","$ehFet$Overlay","$ehFet$mergeProps","$ehFet$filterDOMProps","$ehFet$DismissButton","$63df2425e2108aa8$export$744d98a3b8a94e1c","$3zqIJ$createContext","$3674c52c6b3c5bce$export$c7e742effb1c51e2","$kM2ZM$createContext","$3674c52c6b3c5bce$export$24aad8519b95b41b","$3674c52c6b3c5bce$export$795aec4671cbae19","$3674c52c6b3c5bce$var$SelectionManagerContext","$3674c52c6b3c5bce$var$SubmenuTriggerContext","$3674c52c6b3c5bce$export$d9b273488cd8ce6f","$kM2ZM$forwardRef","$kM2ZM$react","$kM2ZM$CollectionBuilder","$kM2ZM$Collection","$3674c52c6b3c5bce$var$MenuInner","autocompleteMenuProps","collectionRef","$kM2ZM$useContext","$kM2ZM$useObjectRef","$kM2ZM$useMemo","$kM2ZM$mergeRefs","filteredCollection","$kM2ZM$useTreeState","triggerState","CollectionRoot","menuProps","$kM2ZM$useMenu","$kM2ZM$FocusScope","$kM2ZM$filterDOMProps","$3674c52c6b3c5bce$var$MenuSectionInner","$3674c52c6b3c5bce$var$MenuItemContext","$3674c52c6b3c5bce$var$GroupSelectionManager","$kM2ZM$SelectionManager","section","_section_props","_section_props1","CollectionBranch","headingRef","_section_props_arialabel","headingProps","groupProps","$kM2ZM$useMenuSection","$kM2ZM$useMultipleSelectionState","$3674c52c6b3c5bce$export$2ce376c2cc3355c8","$kM2ZM$createLeafComponent","_useSlottedContext","menuItemProps","labelProps","keyboardShortcutProps","states","$kM2ZM$useMenuItem","$kM2ZM$useFocusRing","$kM2ZM$useHover","ElementType","$kM2ZM$mergeProps","$6IYYA$createContext","$5e8ad37a45e1c704$export$cfa7aa87c26e7d1f","$7aSLZ$createContext","$5e8ad37a45e1c704$export$364712098d2aa57c","$5e8ad37a45e1c704$export$b2539bed5023c21c","$7aSLZ$forwardRef","$7aSLZ$useMemo","$7aSLZ$react","$7aSLZ$CollectionBuilder","$5e8ad37a45e1c704$var$TabsInner","$7aSLZ$useTabListState","$7aSLZ$useFocusRing","$7aSLZ$filterDOMProps","$5e8ad37a45e1c704$export$e51a686c67fdaa2d","$7aSLZ$useContext","$5e8ad37a45e1c704$var$TabListInner","$7aSLZ$Collection","objectRef","$7aSLZ$useObjectRef","tabListProps","$7aSLZ$useTabList","DOMProps","$5e8ad37a45e1c704$export$3e41faf802a29e71","$7aSLZ$createLeafComponent","tabProps","$7aSLZ$useTab","$7aSLZ$useHover","$7aSLZ$mergeProps","$5e8ad37a45e1c704$export$3d96ec278d3efce4","$7aSLZ$createHideableComponent","$7aSLZ$useTabPanel","DropdownMenu","onOpenChange","selectedValues","onSelectValue","onOpenChangeHandler","useRef","Fragment","Popover","Menu","option","MenuItem","_a","Separator","useDropdownMenu","setIsOpen","LanguagePicker","languages","Header","leftIcon","rightIcon","onTogglePanel","isPanelOpen","useCunningham","useResponsive","setWidth","mobile","tablet","handleWindowSizeChange","isMobile","isTablet","isDesktop","LeftPanel","createElement","createContext","createRef","forwardRef","useCallback","useContext","useImperativeHandle","useMemo","useId","useLayoutEffect_do_not_use_directly","PanelGroupContext","useIsomorphicLayoutEffect","wrappedUseId","useUniqueId","idFromParams","idFromUseId","idRef","PanelWithForwardedRef","classNameFromProps","collapsedSize","collapsible","defaultSize","idFromProps","maxSize","minSize","onCollapse","onExpand","order","styleFromProps","rest","collapsePanel","expandPanel","getPanelSize","getPanelStyle","groupId","isPanelCollapsed","reevaluatePanelConstraints","registerPanel","resizePanel","unregisterPanel","panelId","panelDataRef","constraints","prevConstraints","panelData","Panel","currentCursorStyle","styleElement","getCursorStyle","constraintFlags","horizontalMin","EXCEEDED_HORIZONTAL_MIN","horizontalMax","EXCEEDED_HORIZONTAL_MAX","verticalMin","EXCEEDED_VERTICAL_MIN","verticalMax","EXCEEDED_VERTICAL_MAX","resetGlobalCursorStyle","setGlobalCursorStyle","isKeyDown","isPointerEvent","isMouseEvent","getResizeEventCoordinates","getInputType","intersects","rectOne","rectTwo","strict","compare","ancestors","get_ancestors","common_ancestor","assert","z_indexes","get_z_index","find_stacking_context","furthest_ancestors","is_flex_item","_get_parent","get_parent","creates_stacking_context","isCoarsePointer","intersectingHandles","isPointerDown","ownerDocumentCounts","panelConstraintFlags","registeredResizeHandlers","registerResizeHandle","resizeHandleId","hitAreaMargins","setResizeHandlerState","_ownerDocumentCounts$","updateListeners","_ownerDocumentCounts$2","updateCursor","handlePointerDown","recalculateIntersectingHandles","updateResizeHandlerStates","handlePointerMove","handlePointerUp","dragHandleElement","dragHandleRect","bottom","margin","currentElement","didIntersect","reportConstraintsViolation","flag","intersectsHorizontal","intersectsVertical","body","useForceUpdate","setCount","prevCount","expectedCondition","PRECISION","fuzzyCompareNumbers","actual","expected","fractionDigits","fuzzyNumbersEqual$1","fuzzyNumbersEqual","fuzzyLayoutsEqual","actualSize","expectedSize","panelConstraintsArray","panelIndex","panelConstraints","halfwayPoint","adjustLayoutByDelta","initialLayout","pivotIndices","prevLayout","trigger","nextLayout","firstPivotIndex","secondPivotIndex","deltaApplied","prevSize","localDelta","increment","maxAvailableDelta","minAbsDelta","deltaRemaining","unsafeSize","safeSize","pivotIndex","totalSize","total","calculateAriaValues","layout","panelsArray","currentMinSize","currentMaxSize","totalMinSize","totalMaxSize","firstIndex","valueMax","valueMin","valueNow","getResizeHandleElementsForGroup","getResizeHandleElementIndex","handle","determinePivotIndices","dragHandleId","panelGroupElement","getPanelGroupElement","rootElement","_dataset","getResizeHandleElement","getResizeHandlePanelIds","handleId","_panelsArray$index$id","_panelsArray$index","_panelsArray$id","_panelsArray","handles","idBefore","idAfter","useWindowSplitterPanelGroupBehavior","committedValuesRef","eagerValuesRef","panelDataArray","setLayout","resizeHandleElements","resizeHandleElement","eagerValues","groupElement","cleanupFunctions","cleanupFunction","areEqual","arrayA","arrayB","getResizeEventCursorPosition","isHorizontal","calculateDragOffsetPercentage","initialDragState","handleElement","initialCursorPosition","cursorPosition","groupRect","groupSizeInPixels","calculateDeltaPercentage","keyboardResizeBy","movement","calculateUnsafeDefaultLayout","numPanelsWithSizes","remainingSize","numRemainingPanels","callPanelCallbacks","panelIdToLastNotifiedSizeMap","lastNotifiedSize","compareLayouts","computePanelFlexBoxStyle","dragState","precision","flexGrow","debounce","durationMs","timeoutId","initializeDefaultStorage","storageObject","getPanelGroupKey","autoSaveId","getPanelKey","panels","panel","idIsFromProps","loadSerializedPanelGroupState","storage","panelGroupKey","serialized","parsed","loadPanelGroupState","_loadSerializedPanelG","_state$panelKey","panelKey","savePanelGroupState","panelSizesBeforeCollapse","sizes","_loadSerializedPanelG2","validatePanelGroupLayout","nextLayoutTotalSize","accumulated","LOCAL_STORAGE_DEBOUNCE_INTERVAL","defaultStorage","debounceMap","PanelGroupWithForwardedRef","onLayout","panelGroupElementRef","setDragState","panelIdToLastNotifiedSizeMapRef","panelSizeBeforeCollapseRef","prevDeltaRef","unsafeLayout","safeLayout","debouncedSave","clonedPanelDataArray","clonedPanelSizesBeforeCollapse","panelSize","panelDataHelper","findPanelDataIndex","minSizeOverride","minSizeFromProps","prevPanelSize","baseSize","isPanelExpanded","panelA","panelB","orderA","orderB","isRTL","layoutChanged","unsafePanelSize","prevCollapsedSize","prevCollapsible","nextCollapsedSize","nextCollapsible","nextMaxSize","nextMinSize","startDragging","stopDragging","PanelGroup","prevPanelData","useWindowSplitterResizeHandlerBehavior","resizeHandler","nextIndex","PanelResizeHandle","onDragging","_hitAreaMargins$coars","_hitAreaMargins$fine","elementRef","callbacksRef","panelGroupContext","registerResizeHandleWithParentGroup","setState","setIsFocused","setResizeHandler","coarseHitAreaMargins","fineHitAreaMargins","MainLayout","icon","leftPanelContent","rightHeaderContent","enableResize","isLeftPanelOpen","setIsLeftPanelOpen","minPanelSize","setMinPanelSize","calculateDefaultSize","maxPanelSize","setMaxPanelSize","updatePanelSize","targetWidth","windowWidth","headerHeight","Spinner","Label","text","WithLabel","labelSide","U","Y","H","J","u","$","B","K","X","G","C","P","A","O","T","L","S","E","N","R","M","D","W","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","setRef","composeRefs","hasCleanup","cleanups","cleanup","useComposedRefs","createContext2","rootComponentName","defaultContext","Provider","useContext2","consumerName","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useLayoutEffect2","useReactId","deterministicId","reactId","useCallbackRef","callbackRef","useControllableState","defaultProp","uncontrolledProp","setUncontrolledProp","useUncontrolledState","handleChange","value2","uncontrolledState","prevValueRef","Slot","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","slotPropValue","childPropValue","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","ReactDOM","useEscapeKeydown","onEscapeKeyDownProp","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","layerProps","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","discrete","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FOCUS_SCOPE_NAME","FocusScope","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","setContainer","onMountAutoFocus","onUnmountAutoFocus","lastFocusedElementRef","focusScope","handleFocusIn2","handleFocusOut2","handleMutations2","mutations","mutation","mutationObserver","focusScopesStack","previouslyFocusedElement","mountEvent","focusFirst","removeLinks","getTabbableCandidates","unmountEvent","isTabKey","container2","getTabbableEdges","candidates","select","candidate","findVisible","isHiddenInput","elements","upTo","isSelectableInput","createFocusScopesStack","activeFocusScope","arrayRemove","array","updatedArray","PORTAL_NAME","Portal","containerProp","portalProps","mounted","setMounted","useStateMachine","initialState","machine","Presence","present","presence","usePresence","React2","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","useFocusGuards","edgeGuards","createFocusGuard","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","initialValue","currentValues","useMergeRefs","prevRefs_1","nextRefs_1","current_1","ItoI","innerCreateMedium","defaults","middleware","buffer","assigned","medium","cbs","pendingQueue","executeQueue","cycle","createSidecarMedium","SideCar","sideCar","Target","exportSidecar","exported","effectCar","nothing","RemoveScroll","parentRef","setCallbacks","forwardProps","removeScrollBar","enabled","shards","noIsolation","inert","allowPinchZoom","Container","gapMode","containerRef","containerProps","getNonce","makeStyleTag","tag","nonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","stylesheet","styleHookSingleton","sheet","isDynamic","styleSingleton","useStyle","Sheet","dynamic","zeroGap","parse","getOffset","cs","getGapWidth","offsets","documentWidth","Style","lockAttribute","getStyles","allowRelative","important","gap","getCurrentUseCounter","useLockAttribute","newCounter","RemoveScrollBar","noRelative","noImportant","passiveSupported","nonPassive","alwaysContainsScroll","elementCanBeScrolled","overflow","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","elementCouldBeScrolled","getScrollVariables","scrollHeight","clientHeight","getVScrollVariables","getHScrollVariables","scrollWidth","clientWidth","getDirectionFactor","handleScroll","endTarget","sourceDelta","noOverscroll","directionFactor","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","scroll_1","capacity","elementScroll","getTouchXY","getDeltaXY","extractRef","deltaCompare","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","shouldCancelEvent","touchStart","deltaX","deltaY","currentAxis","moveDirection","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","shardNodes","shouldStop","shouldCancel","should","getOutermostShadowParent","scrollTouchStart","scrollWheel","scrollTouchMove","shadowParent","ReactRemoveScroll","getDefaultParent","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","correctedTarget","applyAttributeToOthers","markerName","controlAttribute","markerCounter","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","DIALOG_NAME","createDialogContext","createDialogScope","DialogProvider","useDialogContext","Dialog","__scopeDialog","openProp","defaultOpen","modal","contentRef","prevOpen","TRIGGER_NAME","DialogTrigger","triggerProps","composedTriggerRef","getState","PortalProvider","usePortalContext","DialogPortal","forceMount","PortalPrimitive","OVERLAY_NAME","DialogOverlay","portalContext","DialogOverlayImpl","CONTENT_NAME","DialogContent","contentProps","DialogContentModal","DialogContentNonModal","content","DialogContentImpl","ctrlLeftClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","trapFocus","onOpenAutoFocus","onCloseAutoFocus","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","DESCRIPTION_NAME","DialogDescription","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","titleId","titleWarningContext","MESSAGE","DESCRIPTION_WARNING_NAME","describedById","Root","Overlay","Content","Q","be","Z","le","I","he","ce","ue","de","ee","fe","me","d","pe","ge","te","F","Te","z","ne","V","oe","Ie","Me","ie","ae","se","Le","j","ye","ve","Se","Ee","Ce","xe","Pe","w.Root","w.Portal","w.Overlay","w.Content","we","De","Ve","Re","ke","HorizontalSeparator","withPadding","QuickSearchInput","loading","inputValue","onFilter","placeholder","separator","Command","hasChildrens","hasChildren","Children","QuickSearch","inputContent","showInput","QuickSearchItem","QuickSearchGroup","group","renderElement","QuickSearchItemTemplate","alwaysShowRight","CustomTabs","tabs","defaultSelectedTab","fullWidth","Tabs","TabList","tab","Tab","TabPanel","TreeApiContext","useTreeApi","NodesContext","useNodesContext","DndContext","useDndContext","DataUpdatesContext","useDataUpdates","bound","isItem","isClosed","isOpenWithEmptyChildren","isDescendant","indexOf","noop","dfs","focusNextElement","getFocusable","nextItem","focusPrevElement","prevItem","list","access","accessor","identifyNull","identify","mergeRefs","instance","safeRun","waitFor","resolve","reject","tries","check","getInsertIndex","getInsertParentId","placeholderStyle","lineStyle","circleStyle","DefaultCursor","indent","_jsxs","_jsx","DefaultRow","attrs","innerRef","DefaultNode","Edit","Show","_Fragment","edit","reducer","treeBlur","NodeApi","params","ROOT_ID","createRoot","visitSelfAndChildren","actions","filtered","openMapReducer","prev","ids","cursor","dragIds","parentId","layerStyles","getStyle","getCountStyle","DefaultDragPreview","mouse","isDragging","Position","PreviewNode","Count","memo","_extends","_assertThisInitialized","_setPrototypeOf","_inheritsLoose","setPrototypeOf","safeIsNaN","isEqual","second","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","lastThis","lastArgs","lastResult","calledOnce","memoized","newArgs","_i","hasNativePerformanceNow","now","cancelTimeout","timeoutID","requestTimeout","delay","start","tick","getScrollbarSize","recalculate","div","cachedRTLResult","getRTLOffsetType","outerDiv","outerStyle","innerDiv","innerStyle","IS_SCROLLING_DEBOUNCE_INTERVAL$1","defaultItemKey$1","devWarningsDirection","devWarningsTagName$1","createListComponent","_class","getItemOffset","getEstimatedTotalSize","getItemSize","getOffsetForIndexAndAlignment","getStartIndexForOffset","getStopIndexForStartIndex","initInstanceProps","shouldResetStyleCacheOnItemSizeChange","validateProps","_PureComponent","List","_this","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","scrollDirection","scrollOffset","scrollUpdateWasRequested","_this$props","itemSize","itemStyleCache","_offset","isRtl","offsetHorizontal","__","___","_event$currentTarget","prevState","_event$currentTarget2","outerRef","nextProps","validateSharedProps$1","_proto","align","_this$props2","itemCount","scrollbarSize","_this$props3","initialScrollOffset","_this$props4","_this$state","_this$props5","innerElementType","innerTagName","itemData","_this$props5$itemKey","itemKey","outerElementType","outerTagName","useIsScrolling","isScrolling","_this$_getRangeToRend","startIndex","stopIndex","_index","estimatedTotalSize","_this$_getRangeToRend2","_overscanStartIndex","_overscanStopIndex","_visibleStartIndex","_visibleStopIndex","_this$state2","_scrollDirection","_scrollOffset","_scrollUpdateWasRequested","_this$props6","overscanCount","_this$state3","overscanBackward","overscanForward","PureComponent","_ref2","_ref3","FixedSizeList","_ref4","instanceProps","lastItemOffset","maxOffset","minOffset","middleOffset","_ref5","_ref6","numVisibleItems","_ref7","Cursor","ListOuterElement","DropContainer","ListInnerElement","_c","_d","_e","paddingTop","paddingBottom","HandlerRole","invariant","condition","_len","_key","argIndex","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","setClientOffset","clientOffset","sourceClientOffset","_typeof","get","path","without","xor","itemsA","itemsB","map","insertItem","intersection","ResetCoordinatesAction","createBeginDrag","sourceIds","_options$publishSourc","publishSource","getSourceClientOffset","monitor","registry","verifyInvariants","sourceId","getDraggableSource","verifyGetSourceClientOffsetIsFunction","verifyItemIsObject","itemType","createPublishDragSource","matchesType","targetType","draggedItemType","createHover","targetIdsArg","verifyTargetIdsIsArray","targetIds","checkInvariants","removeNonMatchingTargetIds","hoverAllTargets","targetId","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","createDrop","getDroppableTargets","dropResult","determineDropResult","verifyDropResultType","createEndDrag","verifyIsDragging","createDragDropActions","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","DragDropManagerImpl","store","shouldSetUp","backend","dispatch","bindActionCreator","actionCreator","boundActions","formatProdErrorMessage","$$observable","randomString","ActionTypes","isPlainObject","proto","miniKindOf","isDate","isError","constructorName","ctorName","kindOf","typeOfVal","createStore","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","listeners","replaceReducer","nextReducer","observable","outerSubscribe","observeState","unsubscribe","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","reduce","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","addSource","addTarget","removeSource","removeTarget","NONE","ALL","areDirty","dirtyIds","handlerIds","commonIds","_action$payload","_action$payload$targe","_action$payload$prevT","prevTargetIds","didChange","prevInnermostTargetId","innermostTargetId","dirtyHandlerIds","dragOffset","dragOperation","stateId","add","subtract","initialClientOffset","initialSourceClientOffset","getDifferenceFromInitialOffset","DragDropMonitorImpl","prevStateId","currentStateId","canSkipListener","_this2","previousState","nextState","sourceType","shallow","_getSourceClientOffset","_getDifferenceFromInitialOffset","nextUniqueId","getNextUniqueId","validateSourceContract","validateTargetContract","validateType","allowArray","BrowserMutationObserver","makeRequestCallFromTimer","timeoutHandle","handleTimer","intervalHandle","makeRequestCallFromMutationObserver","makeRequestCall","AsapQueue","task","requestFlush","currentIndex","scan","newLength","RawTask","onError","release","TaskFactory","tasks","t1","asapQueue","taskFactory","asap","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","len","arr2","_arr","_n","_s","getNextHandlerId","parseRoleFromHandlerId","handlerId","mapContainsValue","searchValue","isDone","_entries$next","done","_entries$next$value","HandlerRegistryImpl","_addSource","_addTarget","includePinned","isPinned","_removeSource","_removeTarget","createDragDropManager","backendFactory","globalContext","backendOptions","debugMode","makeStoreInstance","reduxDevTools","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","INSTANCE_SYM","DndProvider","_getDndContextValue","getDndContextValue","_getDndContextValue2","isGlobalInstance","getGlobalContext","_manager","createSingletonDndContext","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","isCallingCanDrop","DropTargetMonitorImpl","throwIfCompositeComponentElement","wrapHookToRecognizeElement","hook","elementOrNode","cloneWithRef","wrapConnectorHooks","hooks","wrappedHooks","wrappedHook","newRef","previousRef","cloneElement","isRef","shallowEqual","objA","objB","compareContext","compareResult","keysA","keysB","bHasOwnProperty","valueA","valueB","SourceConnector","newHandlerId","dragSource","dragPreview","TargetConnector","dropTarget","registerTarget","registerSource","DragSourceImpl","spec","connector","_result","globalMonitor","end","useDragSource","useDragDropManager","dragDropManager","useDragType","useRegisteredDragSource","_registerSource","_registerSource2","unregister","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","useOptionalFactory","arg","memoDeps","useDragSourceMonitor","useDragSourceConnector","dragSourceOptions","dragPreviewOptions","fastDeepEqual","equal","length","useCollector","collect","onUpdate","_useState2","collected","setCollected","updateCollected","useMonitorOutput","onCollect","_useCollector","_useCollector2","useCollectedProps","collector","useConnectDragSource","useConnectDragPreview","useDrag","specArg","useAccept","DropTargetImpl","useDropTarget","useRegisteredDropTarget","_registerTarget","_registerTarget2","useDropTargetMonitor","useDropTargetConnector","useConnectDropTarget","useDrop","useDragLayer","memoize","union","EnterLeaveCounter","isNodeInDocument","enteringNode","previousLength","isNodeEntered","leavingNode","isFirefox","isSafari","MonotonicInterpolant","xs","ys","indexes","dxs","ms","dx","dy","c1s","_i2","m2","mNext","dxNext","common","c2s","c3s","_i3","c1","invDx","_common","low","high","mid","xHere","diffSq","ELEMENT_NODE","getNodeClientOffset","_el$getBoundingClient","getEventClientOffset","isImageNode","_document$documentEle","getDragPreviewSize","isImage","sourceWidth","sourceHeight","dragPreviewWidth","dragPreviewHeight","getDragPreviewOffset","sourceNode","anchorPoint","offsetPoint","dragPreviewNode","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","anchorX","anchorY","_getDragPreviewSize","calculateYOffset","interpolantY","calculateXOffset","interpolantX","isManualOffsetX","isManualOffsetY","FILE","URL","TEXT","HTML","getDataFromDataTransfer","dataTransfer","typesToTry","resultSoFar","typeToTry","_nativeTypesConfig","nativeTypesConfig","NativeTypes.FILE","_dataTransfer","NativeTypes.HTML","matchesTypes","_dataTransfer2","NativeTypes.URL","_dataTransfer3","NativeTypes.TEXT","_dataTransfer4","NativeDragSource","property","newProperties","createNativeDragSource","matchNativeItemType","dataTransferTypes","nativeItemType","OptionsReader","_this$globalContext","_this$optionsArgs","HTML5BackendImpl","dragStartSourceIds","nativeType","_this$getCurrentSourc","dragPreviewOffset","_this$getCurrentSourc2","captureDraggingState","isFirstEnter","dragEnterTargetIds","canDrop","dragOverTargetIds","isLastLeave","_this$currentNativeSo","dropTargetIds","_this$dragStartSource","_this$dragOverTargetI","_this$window","_this3","handleDragStart","handleSelectStart","_this4","handleDragEnter","handleDragOver","handleDrop","sourceNodeOptions","sourcePreviewNodeOptions","NativeTypes","_this5","MOUSE_MOVE_TIMEOUT","_this5$rootElement","_this$window2","emptyImage","getEmptyImage","HTML5Backend","useDragHook","preview","dnd","measureHover","inTopHalf","inBottomHalf","pad","inMiddle","getNodesAroundCursor","hover","dropAt","lineCursor","highlightCursor","walkUpFrom","drop","computeDrop","hoverLevel","prevNode","above","below","useDropHook","dropRef","_item","useFreshNode","original","fresh","RowContainer","dragRef","nodeStyle","rowStyle","rowAttrs","Row","focusSearchTerm","DefaultContainer","nextFocus","sib","createList","flattenAndFilterTree","flattenTree","assignRowIndex","isMatch","matches","markMatch","createIndex","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","rejected","utils","TreeApi","listEl","term","utils.access","startId","endId","index1","index2","utils.identifyNull","utils.getInsertParentId","utils.getInsertIndex","identity","page","stop","changeFocus","mostRecent","dragNodes","drag","utils.isDescendant","utils.dfs","sibling","utils.walk","utils\n .waitFor","def","destinationParentId","destinationIndex","symbol_observable_default","actionTypes_default","listenerIdCounter","listenerId","observerAsObserver","warning","getUnexpectedStateShapeWarningMessage","inputState","reducers","unexpectedKeyCache","reducerKeys","argumentName","unexpectedKeys","assertReducerShape","combineReducers","finalReducers","finalReducerKeys","shapeAssertionError","warningMessage","hasChanged","previousStateForKey","nextStateForKey","actionType","rootReducer","SERVER_STATE","TreeProvider","treeProps","imperativeHandle","useSyncExternalStore","api","updateCount","useOuterDrop","OuterDrop","TreeContainer","DragPreviewContainer","DragPreview","SimpleTree","src","found","SimpleNode","createNode","useSimpleTree","initialData","setData","useValidatedProps","controller","TreeComponent","Tree","TreeViewSeparator","TreeViewMoveModeEnum","treeDemoData","TreeView","treeData","selectedNodeId","rootNodeId","renderNode","afterMove","getMovePosition","newData","sourceNodeId","oldParentId","newIndex","targetNodeId","siblingIndex","nextSiblingIndex","onMove","draggedId","findAndRemoveNode","draggedNode","targetParent","findParentAndInsert","moveResult","hasChildrenLoaded","TreeViewItem","dragHandle","loadChildren","forceLoading","timeoutRef","isLoading","setIsLoading","hasLoadedChildren","isLeaf","handleClick","useTree","refreshCallback","setTreeData","selectedNode","setSelectedNode","addChild","updateTree","updateNode","nodeId","updatedData","deleteFromTree","mergeStrategy","existingChildren","updatedChildren","existing","newChild"],"mappings":"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","x_google_ignoreList":[0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,177,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354]}
|