@sanity/ui 3.0.0-static.4 → 3.0.0-static.40
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/README.md +7 -9
- package/dist/_chunks-cjs/_visual-editing.cjs +2250 -0
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
- package/dist/_chunks-cjs/refractor.cjs +26 -0
- package/dist/_chunks-cjs/refractor.cjs.map +1 -0
- package/dist/_chunks-es/_visual-editing.js +2261 -0
- package/dist/_chunks-es/_visual-editing.js.map +1 -0
- package/dist/_chunks-es/refractor.js +25 -0
- package/dist/_chunks-es/refractor.js.map +1 -0
- package/dist/_visual-editing.cjs +28 -0
- package/dist/_visual-editing.cjs.map +1 -0
- package/dist/_visual-editing.d.cts +853 -0
- package/dist/_visual-editing.d.ts +503 -458
- package/dist/_visual-editing.js +27 -30
- package/dist/_visual-editing.js.map +1 -1
- package/dist/css/index.cjs +957 -0
- package/dist/css/index.cjs.map +1 -0
- package/dist/css/index.css +1 -0
- package/dist/css/index.d.cts +1352 -0
- package/dist/css/index.d.ts +1352 -0
- package/dist/css/index.js +959 -0
- package/dist/css/index.js.map +1 -0
- package/dist/index.cjs +2348 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2512 -0
- package/dist/index.d.ts +1320 -1677
- package/dist/index.js +1576 -766
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +870 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.cts +499 -0
- package/dist/theme.d.ts +301 -1643
- package/dist/theme.js +487 -2555
- package/dist/theme.js.map +1 -1
- package/exports/_visual-editing.ts +24 -27
- package/exports/index.ts +1 -1
- package/package.json +79 -92
- package/src/core/Root.tsx +88 -0
- package/src/core/RootProvider.tsx +40 -0
- package/src/core/__workshop__/boundary.tsx +28 -0
- package/src/core/__workshop__/index.ts +16 -0
- package/src/core/components/autocomplete/__workshop__/async.tsx +156 -0
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +131 -0
- package/src/core/components/autocomplete/__workshop__/custom.tsx +91 -0
- package/src/core/components/autocomplete/__workshop__/example.tsx +80 -0
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +36 -0
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +292 -0
- package/src/core/components/autocomplete/__workshop__/index.ts +41 -0
- package/src/core/components/autocomplete/__workshop__/mock/apiStore.ts +49 -0
- package/src/core/components/autocomplete/__workshop__/mock/countries.ts +245 -0
- package/src/core/components/autocomplete/autocomplete.tsx +690 -0
- package/src/core/components/autocomplete/autocompleteOption.tsx +45 -0
- package/src/core/components/autocomplete/autocompleteReducer.ts +47 -0
- package/src/core/components/autocomplete/constants.ts +28 -0
- package/src/core/components/autocomplete/types.ts +103 -0
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +61 -0
- package/src/core/components/breadcrumbs/__workshop__/index.ts +16 -0
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +131 -0
- package/src/core/components/dialog/__workshop__/activate.tsx +141 -0
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +29 -0
- package/src/core/components/dialog/__workshop__/index.ts +21 -0
- package/src/core/components/dialog/__workshop__/layering.tsx +41 -0
- package/src/core/components/dialog/__workshop__/nested.tsx +71 -0
- package/src/core/components/dialog/__workshop__/onScroll.tsx +51 -0
- package/src/core/components/dialog/__workshop__/panes.tsx +89 -0
- package/src/core/components/dialog/__workshop__/position.tsx +30 -0
- package/src/core/components/dialog/__workshop__/props.tsx +77 -0
- package/src/core/components/dialog/__workshop__/provider.tsx +11 -0
- package/src/core/components/dialog/__workshop__/wrapped.tsx +76 -0
- package/src/core/components/dialog/dialog.tsx +232 -0
- package/src/core/components/dialog/dialogCard.tsx +233 -0
- package/src/core/components/dialog/dialogContext.ts +21 -0
- package/src/core/components/dialog/dialogProvider.tsx +34 -0
- package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
- package/src/core/components/dialog/types.ts +2 -0
- package/src/core/components/dialog/useDialog.ts +11 -0
- package/src/core/components/hotkeys/__workshop__/index.ts +16 -0
- package/src/core/components/hotkeys/__workshop__/plain.tsx +9 -0
- package/src/core/components/hotkeys/hotkeys.tsx +60 -0
- package/src/core/components/menu/__workshop__/asComponent.tsx +45 -0
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +57 -0
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +47 -0
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +133 -0
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +45 -0
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +35 -0
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +40 -0
- package/src/core/components/menu/__workshop__/groups.tsx +156 -0
- package/src/core/components/menu/__workshop__/index.ts +91 -0
- package/src/core/components/menu/__workshop__/menuButton.tsx +80 -0
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +65 -0
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +22 -0
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +50 -0
- package/src/core/components/menu/__workshop__/selectedItem.tsx +69 -0
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +42 -0
- package/src/core/components/menu/__workshop__/tones.tsx +25 -0
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +32 -0
- package/src/core/components/menu/helpers.ts +82 -0
- package/src/core/components/menu/menu.test.tsx +129 -0
- package/src/core/components/menu/menu.tsx +179 -0
- package/src/core/components/menu/menuButton.tsx +225 -0
- package/src/core/components/menu/menuContext.ts +19 -0
- package/src/core/components/menu/menuDivider.tsx +32 -0
- package/src/core/components/menu/menuGroup.tsx +233 -0
- package/src/core/components/menu/menuItem.tsx +183 -0
- package/src/core/components/menu/useMenu.ts +21 -0
- package/src/core/components/menu/useMenuController.ts +241 -0
- package/src/core/components/tab/__workshop__/example.tsx +79 -0
- package/src/core/components/tab/__workshop__/index.ts +16 -0
- package/src/core/components/tab/tab.tsx +109 -0
- package/src/core/components/tab/tabList.tsx +90 -0
- package/src/core/components/tab/tabPanel.tsx +47 -0
- package/src/core/components/toast/__workshop__/hook.tsx +71 -0
- package/src/core/components/toast/__workshop__/index.ts +21 -0
- package/src/core/components/toast/__workshop__/toast.tsx +26 -0
- package/src/core/components/toast/toast.test.tsx +103 -0
- package/src/core/components/toast/toast.tsx +189 -0
- package/src/core/components/toast/toastContext.ts +7 -0
- package/src/core/components/toast/toastLayer.tsx +54 -0
- package/src/core/components/toast/toastProvider.tsx +112 -0
- package/src/core/components/toast/types.ts +24 -0
- package/src/core/components/toast/useToast.ts +23 -0
- package/src/core/components/tree/__workshop__/basic.perf.ts +19 -0
- package/src/core/components/tree/__workshop__/basic.tsx +105 -0
- package/src/core/components/tree/__workshop__/index.ts +23 -0
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +84 -0
- package/src/core/components/tree/helpers.ts +105 -0
- package/src/core/components/tree/tree.tsx +248 -0
- package/src/core/components/tree/treeContext.ts +10 -0
- package/src/core/components/tree/treeGroup.tsx +46 -0
- package/src/core/components/tree/treeItem.tsx +237 -0
- package/src/core/components/tree/types.ts +24 -0
- package/src/core/components/tree/useTree.ts +17 -0
- package/src/core/components/virtualList/__workshop__/changingProps.tsx +36 -0
- package/src/core/components/virtualList/__workshop__/elementScroll.tsx +24 -0
- package/src/core/components/virtualList/__workshop__/index.ts +31 -0
- package/src/core/components/virtualList/__workshop__/infiniteList.tsx +48 -0
- package/src/core/components/virtualList/__workshop__/windowScrolll.tsx +22 -0
- package/src/core/components/virtualList/virtualList.tsx +209 -0
- package/src/core/constants.ts +67 -0
- package/src/core/helpers/focus.ts +92 -0
- package/src/core/helpers/props.ts +28 -0
- package/src/core/hooks/useClickOutsideEvent.test.tsx +114 -0
- package/src/core/hooks/useClickOutsideEvent.ts +67 -0
- package/src/core/hooks/useDelayed.test.ts +67 -0
- package/src/core/hooks/useDelayedState.ts +28 -0
- package/src/core/hooks/useElementSize.ts +19 -0
- package/src/core/hooks/useMediaIndex/__workshop__/index.ts +16 -0
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +14 -0
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +21 -0
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +107 -0
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +56 -0
- package/src/core/hooks/usePrefersDark.test.tsx +20 -0
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +56 -0
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +20 -0
- package/src/core/hooks/useResponsiveProp.ts +28 -0
- package/src/core/index.ts +115 -0
- package/src/core/lib/createGlobalScopedContext.ts +37 -0
- package/src/core/lib/globalScope.ts +19 -0
- package/src/core/lib/isArray.ts +3 -0
- package/src/core/middleware/origin.ts +47 -0
- package/src/core/observers/elementSize.ts +116 -0
- package/src/core/primitives/arrow/arrow.tsx +74 -0
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +14 -0
- package/src/core/primitives/avatar/__workshop__/index.ts +31 -0
- package/src/core/primitives/avatar/__workshop__/stack.tsx +25 -0
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +55 -0
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +72 -0
- package/src/core/primitives/avatar/avatar.tsx +147 -0
- package/src/core/primitives/avatar/avatarCounter.tsx +69 -0
- package/src/core/primitives/avatar/avatarStack.tsx +79 -0
- package/src/core/primitives/avatar/types.ts +2 -0
- package/src/core/primitives/badge/__workshop__/index.ts +21 -0
- package/src/core/primitives/badge/__workshop__/props.tsx +19 -0
- package/src/core/primitives/badge/__workshop__/tones.tsx +16 -0
- package/src/core/primitives/badge/badge.test.tsx +16 -0
- package/src/core/primitives/badge/badge.tsx +61 -0
- package/src/core/primitives/box/__workshop__/index.ts +21 -0
- package/src/core/primitives/box/__workshop__/props.tsx +20 -0
- package/src/core/primitives/box/__workshop__/responsive.tsx +20 -0
- package/src/core/primitives/box/box.tsx +215 -0
- package/src/core/primitives/button/__workshop__/custom.tsx +27 -0
- package/src/core/primitives/button/__workshop__/customIcons.tsx +30 -0
- package/src/core/primitives/button/__workshop__/disabled.tsx +54 -0
- package/src/core/primitives/button/__workshop__/index.ts +66 -0
- package/src/core/primitives/button/__workshop__/mixedChildren.tsx +12 -0
- package/src/core/primitives/button/__workshop__/props.tsx +55 -0
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +36 -0
- package/src/core/primitives/button/__workshop__/stacked.tsx +58 -0
- package/src/core/primitives/button/__workshop__/styled1.tsx +17 -0
- package/src/core/primitives/button/__workshop__/styled2.tsx +19 -0
- package/src/core/primitives/button/__workshop__/textOverflow.tsx +13 -0
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +29 -0
- package/src/core/primitives/button/button.test.tsx +30 -0
- package/src/core/primitives/button/button.tsx +193 -0
- package/src/core/primitives/button/types.ts +2 -0
- package/src/core/primitives/card/__workshop__/asButton.tsx +107 -0
- package/src/core/primitives/card/__workshop__/asComponent.tsx +27 -0
- package/src/core/primitives/card/__workshop__/checkered.tsx +26 -0
- package/src/core/primitives/card/__workshop__/index.ts +20 -0
- package/src/core/primitives/card/__workshop__/interactive.tsx +29 -0
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +78 -0
- package/src/core/primitives/card/__workshop__/props.tsx +52 -0
- package/src/core/primitives/card/__workshop__/selected.tsx +62 -0
- package/src/core/primitives/card/__workshop__/styled.tsx +14 -0
- package/src/core/primitives/card/__workshop__/tones.tsx +27 -0
- package/src/core/primitives/card/card.tsx +109 -0
- package/src/core/primitives/card/cardContext.ts +10 -0
- package/src/core/primitives/card/cardProvider.tsx +27 -0
- package/src/core/primitives/card/types.ts +17 -0
- package/src/core/primitives/card/useCard.ts +15 -0
- package/src/core/primitives/checkbox/__workshop__/example.tsx +25 -0
- package/src/core/primitives/checkbox/__workshop__/index.ts +15 -0
- package/src/core/primitives/checkbox/__workshop__/props.tsx +35 -0
- package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +16 -0
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +27 -0
- package/src/core/primitives/checkbox/checkbox.tsx +80 -0
- package/src/core/primitives/code/__workshop__/index.ts +21 -0
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +23 -0
- package/src/core/primitives/code/__workshop__/props.tsx +18 -0
- package/src/core/primitives/code/code.tsx +48 -0
- package/src/core/primitives/code/refractor.tsx +18 -0
- package/src/core/primitives/container/__workshop__/example.tsx +20 -0
- package/src/core/primitives/container/__workshop__/index.ts +10 -0
- package/src/core/primitives/container/container.tsx +37 -0
- package/src/core/primitives/flex/__workshop__/example.tsx +34 -0
- package/src/core/primitives/flex/__workshop__/gap.tsx +25 -0
- package/src/core/primitives/flex/__workshop__/index.ts +13 -0
- package/src/core/primitives/flex/flex.tsx +58 -0
- package/src/core/primitives/grid/__workshop__/index.ts +12 -0
- package/src/core/primitives/grid/__workshop__/responsive.tsx +54 -0
- package/src/core/primitives/grid/grid.tsx +35 -0
- package/src/core/primitives/heading/__workshop__/index.ts +21 -0
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +54 -0
- package/src/core/primitives/heading/__workshop__/plain.tsx +29 -0
- package/src/core/primitives/heading/heading.tsx +78 -0
- package/src/core/primitives/inline/__workshop__/index.ts +10 -0
- package/src/core/primitives/inline/__workshop__/plain.tsx +24 -0
- package/src/core/primitives/inline/inline.tsx +62 -0
- package/src/core/primitives/kbd/__workshop__/index.ts +10 -0
- package/src/core/primitives/kbd/__workshop__/plain.tsx +9 -0
- package/src/core/primitives/kbd/kbd.tsx +57 -0
- package/src/core/primitives/label/__workshop__/index.ts +21 -0
- package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +54 -0
- package/src/core/primitives/label/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/label/label.tsx +75 -0
- package/src/core/primitives/layer/__workshop__/_debug.tsx +17 -0
- package/src/core/primitives/layer/__workshop__/index.ts +26 -0
- package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +49 -0
- package/src/core/primitives/layer/__workshop__/nested.tsx +98 -0
- package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +17 -0
- package/src/core/primitives/layer/getLayerContext.test.ts +32 -0
- package/src/core/primitives/layer/getLayerContext.ts +21 -0
- package/src/core/primitives/layer/layer.test.tsx +110 -0
- package/src/core/primitives/layer/layer.tsx +42 -0
- package/src/core/primitives/layer/layerCard.tsx +90 -0
- package/src/core/primitives/layer/layerContext.ts +7 -0
- package/src/core/primitives/layer/layerProvider.tsx +106 -0
- package/src/core/primitives/layer/useLayer.ts +24 -0
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +77 -0
- package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +31 -0
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +11 -0
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +71 -0
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +69 -0
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +96 -0
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +100 -0
- package/src/core/primitives/popover/__workshop__/index.ts +51 -0
- package/src/core/primitives/popover/constants.ts +22 -0
- package/src/core/primitives/popover/floating-ui/size.ts +83 -0
- package/src/core/primitives/popover/helpers.ts +32 -0
- package/src/core/primitives/popover/popover.tsx +442 -0
- package/src/core/primitives/popover/popoverLayer.tsx +149 -0
- package/src/core/primitives/popover/types.ts +12 -0
- package/src/core/primitives/radio/__workshop__/example.tsx +63 -0
- package/src/core/primitives/radio/__workshop__/index.ts +13 -0
- package/src/core/primitives/radio/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/radio/radio.tsx +64 -0
- package/src/core/primitives/select/__workshop__/index.ts +13 -0
- package/src/core/primitives/select/__workshop__/plain.tsx +39 -0
- package/src/core/primitives/select/__workshop__/readOnly.tsx +23 -0
- package/src/core/primitives/select/select.tsx +75 -0
- package/src/core/primitives/selectable/selectable.tsx +50 -0
- package/src/core/primitives/skeleton/__workshop__/delay.tsx +70 -0
- package/src/core/primitives/skeleton/__workshop__/index.ts +13 -0
- package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +64 -0
- package/src/core/primitives/skeleton/codeSkeleton.tsx +49 -0
- package/src/core/primitives/skeleton/headingSkeleton.tsx +48 -0
- package/src/core/primitives/skeleton/labelSkeleton.tsx +47 -0
- package/src/core/primitives/skeleton/skeleton.tsx +71 -0
- package/src/core/primitives/skeleton/textSkeleton.tsx +49 -0
- package/src/core/primitives/spinner/__workshop__/Props.tsx +15 -0
- package/src/core/primitives/spinner/__workshop__/index.ts +16 -0
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +14 -0
- package/src/core/primitives/spinner/spinner.tsx +45 -0
- package/src/core/primitives/srOnly/srOnly.tsx +33 -0
- package/src/core/primitives/stack/__workshop__/index.ts +16 -0
- package/src/core/primitives/stack/__workshop__/plain.tsx +32 -0
- package/src/core/primitives/stack/stack.tsx +60 -0
- package/src/core/primitives/switch/__workshop__/example.tsx +23 -0
- package/src/core/primitives/switch/__workshop__/index.ts +13 -0
- package/src/core/primitives/switch/__workshop__/props.tsx +21 -0
- package/src/core/primitives/switch/switch.tsx +84 -0
- package/src/core/primitives/text/__workshop__/colored.tsx +23 -0
- package/src/core/primitives/text/__workshop__/example.tsx +28 -0
- package/src/core/primitives/text/__workshop__/index.ts +26 -0
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +23 -0
- package/src/core/primitives/text/text.tsx +74 -0
- package/src/core/primitives/textArea/__workshop__/index.ts +16 -0
- package/src/core/primitives/textArea/__workshop__/plain.tsx +61 -0
- package/src/core/primitives/textArea/textArea.tsx +84 -0
- package/src/core/primitives/textInput/__workshop__/clearButton.tsx +30 -0
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +17 -0
- package/src/core/primitives/textInput/__workshop__/index.ts +46 -0
- package/src/core/primitives/textInput/__workshop__/plain.tsx +110 -0
- package/src/core/primitives/textInput/__workshop__/readOnly.tsx +9 -0
- package/src/core/primitives/textInput/__workshop__/states.tsx +53 -0
- package/src/core/primitives/textInput/__workshop__/tones.tsx +277 -0
- package/src/core/primitives/textInput/__workshop__/typed.tsx +23 -0
- package/src/core/primitives/textInput/textInput.tsx +258 -0
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +102 -0
- package/src/core/primitives/tooltip/__workshop__/index.ts +31 -0
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +74 -0
- package/src/core/primitives/tooltip/__workshop__/props.tsx +112 -0
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +86 -0
- package/src/core/primitives/tooltip/constants.ts +23 -0
- package/src/core/primitives/tooltip/tooltip.test.tsx +452 -0
- package/src/core/primitives/tooltip/tooltip.tsx +482 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +13 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +55 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +13 -0
- package/src/core/primitives/tooltip/tooltipLayer.tsx +106 -0
- package/src/core/types.ts +56 -0
- package/src/core/utils/boundaryElement/__workshop__/index.ts +16 -0
- package/src/core/utils/boundaryElement/__workshop__/plain.tsx +19 -0
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +102 -0
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +10 -0
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +18 -0
- package/src/core/utils/boundaryElement/types.ts +5 -0
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +24 -0
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +41 -0
- package/src/core/utils/elementQuery/__workshop__/index.ts +16 -0
- package/src/core/utils/elementQuery/elementQuery.tsx +75 -0
- package/src/core/utils/errorBoundary.tsx +50 -0
- package/src/core/utils/getElementRef.ts +29 -0
- package/src/core/utils/portal/__workshop__/index.ts +16 -0
- package/src/core/utils/portal/__workshop__/named.tsx +63 -0
- package/src/core/utils/portal/portal.test.tsx +105 -0
- package/src/core/utils/portal/portal.tsx +36 -0
- package/src/core/utils/portal/portalContext.ts +37 -0
- package/src/core/utils/portal/portalProvider.tsx +69 -0
- package/src/core/utils/portal/types.ts +7 -0
- package/src/core/utils/portal/usePortal.ts +23 -0
- package/src/css/_assign.ts +3 -0
- package/src/css/_composeClassNames.ts +12 -0
- package/src/css/_fromEntries.ts +3 -0
- package/src/css/_getClassNames.ts +9 -0
- package/src/css/_responsiveClassName.ts +45 -0
- package/src/css/_responsiveStyle.css.ts +34 -0
- package/src/css/_style.css.ts +9 -0
- package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
- package/src/css/components/breadcrumbs/breadcrumbs.ts +5 -3
- package/src/css/components/dialog/dialog.css.ts +98 -0
- package/src/css/components/dialog/dialog.ts +42 -14
- package/src/css/components/menu/menu.css.ts +14 -0
- package/src/css/components/menu/menu.ts +8 -5
- package/src/css/components/skeleton/skeleton.css.ts +128 -0
- package/src/css/components/skeleton/skeleton.ts +16 -9
- package/src/css/components/skeleton/types.ts +16 -6
- package/src/css/components/toast/toast.css.ts +17 -0
- package/src/css/components/toast/toast.ts +7 -17
- package/src/css/components/tree/tree.css.ts +65 -0
- package/src/css/components/tree/tree.ts +5 -3
- package/src/css/constants.ts +10 -1
- package/src/css/index.ts +142 -40
- package/src/css/layers.css.ts +12 -0
- package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
- package/src/css/primitives/_arrow/_arrow.ts +16 -4
- package/src/css/primitives/_input/_input.css.ts +261 -0
- package/src/css/primitives/_input/input.ts +16 -12
- package/src/css/primitives/_input/types.ts +4 -3
- package/src/css/primitives/avatar/avatar.css.ts +198 -0
- package/src/css/primitives/avatar/avatar.ts +52 -11
- package/src/css/primitives/avatar/types.ts +5 -3
- package/src/css/primitives/badge/badge.css.ts +27 -0
- package/src/css/primitives/badge/badge.ts +4 -4
- package/src/css/primitives/badge/types.ts +9 -4
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +63 -34
- package/src/css/primitives/box/types.ts +56 -30
- package/src/css/primitives/button/button.css.ts +287 -0
- package/src/css/primitives/button/button.ts +18 -33
- package/src/css/primitives/button/types.ts +12 -0
- package/src/css/primitives/card/__workshop__/color.tsx +75 -0
- package/src/css/primitives/card/__workshop__/index.ts +16 -0
- package/src/css/primitives/card/card.css.ts +387 -0
- package/src/css/primitives/card/card.ts +9 -10
- package/src/css/primitives/card/types.ts +6 -8
- package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
- package/src/css/primitives/checkbox/checkbox.ts +13 -5
- package/src/css/primitives/code/code.css.ts +272 -0
- package/src/css/primitives/code/code.ts +15 -5
- package/src/css/primitives/code/types.ts +7 -6
- package/src/css/primitives/container/container.css.ts +4 -0
- package/src/css/primitives/container/container.ts +14 -4
- package/src/css/primitives/container/types.ts +4 -2
- package/src/css/primitives/heading/heading.css.ts +86 -0
- package/src/css/primitives/heading/heading.ts +16 -11
- package/src/css/primitives/heading/types.ts +9 -7
- package/src/css/primitives/kbd/kbd.css.ts +16 -0
- package/src/css/primitives/kbd/kbd.ts +6 -4
- package/src/css/primitives/kbd/types.ts +2 -3
- package/src/css/primitives/label/label.css.ts +87 -0
- package/src/css/primitives/label/label.ts +16 -10
- package/src/css/primitives/label/types.ts +9 -7
- package/src/css/primitives/popover/popover.css.ts +6 -0
- package/src/css/primitives/popover/popover.ts +10 -3
- package/src/css/primitives/radio/radio.css.ts +78 -0
- package/src/css/primitives/radio/radio.ts +15 -3
- package/src/css/primitives/root/root.css.ts +19 -0
- package/src/css/primitives/root/root.ts +17 -0
- package/src/css/primitives/root/types.ts +10 -0
- package/src/css/primitives/select/select.css.ts +24 -0
- package/src/css/primitives/select/select.ts +8 -6
- package/src/css/primitives/select/types.ts +1 -1
- package/src/css/primitives/selectable/selectable.css.ts +131 -0
- package/src/css/primitives/selectable/selectable.ts +9 -0
- package/src/css/primitives/selectable/types.ts +9 -0
- package/src/css/primitives/spinner/spinner.css.ts +19 -0
- package/src/css/primitives/spinner/spinner.ts +9 -5
- package/src/css/primitives/spinner/types.ts +4 -0
- package/src/css/primitives/srOnly/srOnly.css.ts +10 -0
- package/src/css/primitives/srOnly/srOnly.ts +7 -0
- package/src/css/primitives/stack/stack.css.ts +6 -0
- package/src/css/primitives/stack/stack.ts +7 -0
- package/src/css/primitives/switch/switch.css.ts +98 -0
- package/src/css/primitives/switch/switch.ts +13 -7
- package/src/css/primitives/text/text.css.ts +86 -0
- package/src/css/primitives/text/text.ts +18 -11
- package/src/css/primitives/text/types.ts +12 -5
- package/src/css/primitives/textArea/textArea.css.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +6 -5
- package/src/css/primitives/textArea/types.ts +5 -3
- package/src/css/primitives/textInput/textInput.css.ts +41 -0
- package/src/css/primitives/textInput/textInput.ts +21 -5
- package/src/css/primitives/textInput/types.ts +3 -7
- package/src/css/primitives/tooltip/tooltip.css.ts +4 -0
- package/src/css/primitives/tooltip/tooltip.ts +6 -7
- package/src/css/primitives/tooltip/types.ts +4 -0
- package/src/css/props/alignItems/alignItems.css.ts +22 -0
- package/src/css/props/alignItems/alignItems.ts +8 -0
- package/src/css/props/alignItems/types.ts +9 -0
- package/src/css/props/border/border.css.ts +65 -0
- package/src/css/props/border/border.ts +21 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +12 -0
- package/src/css/props/boxSizing/boxSizing.ts +7 -0
- package/src/css/props/boxSizing/types.ts +7 -0
- package/src/css/props/display/display.css.ts +56 -0
- package/src/css/props/display/display.ts +8 -0
- package/src/css/props/display/types.ts +16 -0
- package/src/css/props/flex/flex.css.ts +52 -0
- package/src/css/props/flex/flex.ts +8 -0
- package/src/css/props/flex/types.ts +9 -0
- package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
- package/src/css/props/flexDirection/flexDirection.ts +8 -0
- package/src/css/props/flexDirection/types.ts +9 -0
- package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
- package/src/css/props/flexWrap/flexWrap.ts +8 -0
- package/src/css/props/flexWrap/types.ts +9 -0
- package/src/css/props/font/font.css.ts +94 -0
- package/src/css/props/font/font.ts +8 -0
- package/src/css/props/font/types.ts +6 -0
- package/src/css/props/gap/gap.css.ts +40 -0
- package/src/css/props/gap/gap.ts +13 -0
- package/src/css/props/gap/types.ts +10 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
- package/src/css/props/gridAutoColumns/types.ts +9 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
- package/src/css/props/gridAutoFlow/types.ts +9 -0
- package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
- package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
- package/src/css/props/gridAutoRows/types.ts +9 -0
- package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
- package/src/css/props/gridColumn/gridColumn.ts +8 -0
- package/src/css/props/gridColumn/types.ts +9 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
- package/src/css/props/gridColumnEnd/types.ts +9 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +8 -0
- package/src/css/props/gridColumnStart/types.ts +9 -0
- package/src/css/props/gridRow/gridRow.css.ts +49 -0
- package/src/css/props/gridRow/gridRow.ts +8 -0
- package/src/css/props/gridRow/types.ts +9 -0
- package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
- package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
- package/src/css/props/gridRowEnd/types.ts +9 -0
- package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
- package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
- package/src/css/props/gridRowStart/types.ts +9 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
- package/src/css/props/gridTemplateColumns/types.ts +9 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
- package/src/css/props/gridTemplateRows/types.ts +9 -0
- package/src/css/props/height/height.css.ts +25 -0
- package/src/css/props/height/height.ts +8 -0
- package/src/css/props/height/types.ts +9 -0
- package/src/css/props/inset/inset.css.ts +37 -0
- package/src/css/props/inset/inset.ts +21 -0
- package/src/css/props/inset/types.ts +13 -0
- package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
- package/src/css/props/justifyContent/justifyContent.ts +8 -0
- package/src/css/props/justifyContent/types.ts +15 -0
- package/src/css/props/margin/margin.css.ts +117 -0
- package/src/css/props/margin/margin.ts +25 -0
- package/src/css/props/margin/types.ts +17 -0
- package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
- package/src/css/props/maxWidth/maxWidth.ts +8 -0
- package/src/css/props/maxWidth/types.ts +11 -0
- package/src/css/props/minHeight/minHeight.css.ts +13 -0
- package/src/css/props/minHeight/minHeight.ts +8 -0
- package/src/css/props/minHeight/types.ts +9 -0
- package/src/css/props/minWidth/minWidth.css.ts +25 -0
- package/src/css/props/minWidth/minWidth.ts +8 -0
- package/src/css/props/minWidth/types.ts +9 -0
- package/src/css/props/outline/outline.css.ts +10 -0
- package/src/css/props/outline/outline.ts +8 -0
- package/src/css/props/outline/types.ts +7 -0
- package/src/css/props/overflow/overflow.css.ts +16 -0
- package/src/css/props/overflow/overflow.ts +8 -0
- package/src/css/props/overflow/types.ts +11 -0
- package/src/css/props/padding/padding.css.ts +87 -0
- package/src/css/props/padding/padding.ts +25 -0
- package/src/css/props/padding/types.ts +17 -0
- package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
- package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
- package/src/css/props/position/position.css.ts +22 -0
- package/src/css/props/position/position.ts +8 -0
- package/src/css/props/position/types.ts +9 -0
- package/src/css/props/radius/radius.css.ts +21 -0
- package/src/css/props/radius/radius.ts +8 -0
- package/src/css/props/radius/types.ts +8 -0
- package/src/css/props/shadow/shadow.css.ts +23 -0
- package/src/css/props/shadow/shadow.ts +8 -0
- package/src/css/props/shadow/types.ts +8 -0
- package/src/css/props/textAlign/textAlign.css.ts +22 -0
- package/src/css/props/textAlign/textAlign.ts +8 -0
- package/src/css/props/textAlign/types.ts +7 -0
- package/src/css/props/textOverflow/textOverflow.css.ts +19 -0
- package/src/css/props/textOverflow/textOverflow.ts +8 -0
- package/src/css/props/textOverflow/types.ts +12 -0
- package/src/css/props/width/types.ts +11 -0
- package/src/css/props/width/width.css.ts +31 -0
- package/src/css/props/width/width.ts +8 -0
- package/src/css/theme/buildCSSTheme.ts +485 -0
- package/src/css/theme/defaultTheme.css.ts +64 -0
- package/src/css/types.ts +349 -766
- package/src/css/vars.css.ts +673 -0
- package/src/theme/_parseColorToken.ts +180 -0
- package/src/theme/buildTheme.ts +32 -0
- package/src/theme/constants.ts +90 -0
- package/src/theme/defaults/color.ts +197 -0
- package/src/theme/defaults/common.ts +71 -0
- package/src/theme/defaults/fonts.ts +38 -16
- package/src/theme/index.ts +4 -10
- package/src/theme/merge.ts +24 -0
- package/src/theme/resolveTokens.ts +204 -0
- package/src/theme/types.ts +355 -21
- package/bin/ui.js +0 -5
- package/dist/_chunks-cjs/_visual-editing.js +0 -3088
- package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
- package/dist/_chunks-cjs/buildCommand.js +0 -32
- package/dist/_chunks-cjs/buildCommand.js.map +0 -1
- package/dist/_chunks-cjs/refractor.js +0 -27
- package/dist/_chunks-cjs/refractor.js.map +0 -1
- package/dist/_chunks-cjs/v3_v2.js +0 -251
- package/dist/_chunks-cjs/v3_v2.js.map +0 -1
- package/dist/_chunks-es/_visual-editing.mjs +0 -3095
- package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
- package/dist/_chunks-es/refractor.mjs +0 -26
- package/dist/_chunks-es/refractor.mjs.map +0 -1
- package/dist/_chunks-es/v3_v2.mjs +0 -252
- package/dist/_chunks-es/v3_v2.mjs.map +0 -1
- package/dist/_visual-editing.d.mts +0 -808
- package/dist/_visual-editing.mjs +0 -31
- package/dist/_visual-editing.mjs.map +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -357
- package/dist/cli.js.map +0 -1
- package/dist/css.d.mts +0 -2157
- package/dist/css.d.ts +0 -2157
- package/dist/css.js +0 -4746
- package/dist/css.js.map +0 -1
- package/dist/css.mjs +0 -4748
- package/dist/css.mjs.map +0 -1
- package/dist/index.d.mts +0 -2869
- package/dist/index.mjs +0 -1543
- package/dist/index.mjs.map +0 -1
- package/dist/sanity-palette.css +0 -1
- package/dist/sanity-theme.css +0 -1
- package/dist/system.css +0 -22813
- package/dist/theme.d.mts +0 -1841
- package/dist/theme.mjs +0 -2940
- package/dist/theme.mjs.map +0 -1
- package/src/cli/buildCommand.ts +0 -48
- package/src/cli/index.ts +0 -38
- package/src/css/_comp.test.ts +0 -7
- package/src/css/_comp.ts +0 -11
- package/src/css/_mergeStyles.ts +0 -31
- package/src/css/_resp.ts +0 -38
- package/src/css/_responsiveRule.ts +0 -38
- package/src/css/aspects/border/border.style.ts +0 -13
- package/src/css/aspects/border/border.ts +0 -14
- package/src/css/aspects/border/index.ts +0 -2
- package/src/css/aspects/border/types.ts +0 -10
- package/src/css/aspects/display/display.style.ts +0 -34
- package/src/css/aspects/display/display.ts +0 -7
- package/src/css/aspects/display/index.ts +0 -2
- package/src/css/aspects/display/types.ts +0 -17
- package/src/css/aspects/flex/flex.style.ts +0 -30
- package/src/css/aspects/flex/flex.ts +0 -13
- package/src/css/aspects/flex/flexAlign.style.ts +0 -12
- package/src/css/aspects/flex/flexDirection.style.ts +0 -11
- package/src/css/aspects/flex/flexJustify.style.ts +0 -13
- package/src/css/aspects/flex/flexWrap.style.ts +0 -10
- package/src/css/aspects/flex/index.ts +0 -2
- package/src/css/aspects/flex/types.ts +0 -35
- package/src/css/aspects/flexItem/flex.style.ts +0 -22
- package/src/css/aspects/flexItem/flexItem.ts +0 -8
- package/src/css/aspects/flexItem/index.ts +0 -2
- package/src/css/aspects/flexItem/types.ts +0 -27
- package/src/css/aspects/font/font.style.ts +0 -151
- package/src/css/aspects/font/font.ts +0 -12
- package/src/css/aspects/font/index.ts +0 -2
- package/src/css/aspects/font/types.ts +0 -12
- package/src/css/aspects/gap/gap.style.ts +0 -21
- package/src/css/aspects/gap/gap.ts +0 -8
- package/src/css/aspects/gap/index.ts +0 -2
- package/src/css/aspects/gap/types.ts +0 -10
- package/src/css/aspects/grid/grid.ts +0 -13
- package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
- package/src/css/aspects/grid/gridColumns.style.ts +0 -18
- package/src/css/aspects/grid/gridRows.style.ts +0 -18
- package/src/css/aspects/grid/index.ts +0 -2
- package/src/css/aspects/grid/types.ts +0 -29
- package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
- package/src/css/aspects/gridItem/gridItem.ts +0 -15
- package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
- package/src/css/aspects/gridItem/index.ts +0 -2
- package/src/css/aspects/gridItem/types.ts +0 -41
- package/src/css/aspects/height/height.style.ts +0 -9
- package/src/css/aspects/height/height.ts +0 -17
- package/src/css/aspects/height/index.ts +0 -1
- package/src/css/aspects/height/rules.ts +0 -7
- package/src/css/aspects/index.ts +0 -20
- package/src/css/aspects/inset/index.ts +0 -2
- package/src/css/aspects/inset/inset.style.ts +0 -12
- package/src/css/aspects/inset/inset.ts +0 -13
- package/src/css/aspects/inset/types.ts +0 -13
- package/src/css/aspects/margin/index.ts +0 -2
- package/src/css/aspects/margin/margin.style.ts +0 -46
- package/src/css/aspects/margin/margin.ts +0 -15
- package/src/css/aspects/margin/types.ts +0 -11
- package/src/css/aspects/maxWidth/index.ts +0 -2
- package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
- package/src/css/aspects/maxWidth/maxWidth.ts +0 -6
- package/src/css/aspects/maxWidth/types.ts +0 -7
- package/src/css/aspects/outline/outline.style.ts +0 -9
- package/src/css/aspects/overflow/index.ts +0 -2
- package/src/css/aspects/overflow/overflow.style.ts +0 -11
- package/src/css/aspects/overflow/overflow.ts +0 -11
- package/src/css/aspects/overflow/types.ts +0 -11
- package/src/css/aspects/padding/index.ts +0 -2
- package/src/css/aspects/padding/padding.style.ts +0 -46
- package/src/css/aspects/padding/padding.ts +0 -15
- package/src/css/aspects/padding/types.ts +0 -14
- package/src/css/aspects/pointerEvents/index.ts +0 -2
- package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
- package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -6
- package/src/css/aspects/position/index.ts +0 -2
- package/src/css/aspects/position/position.style.ts +0 -12
- package/src/css/aspects/position/position.ts +0 -7
- package/src/css/aspects/position/types.ts +0 -9
- package/src/css/aspects/radius/index.ts +0 -2
- package/src/css/aspects/radius/radius.style.ts +0 -16
- package/src/css/aspects/radius/radius.ts +0 -8
- package/src/css/aspects/radius/types.ts +0 -8
- package/src/css/aspects/shadow/index.ts +0 -2
- package/src/css/aspects/shadow/shadow.style.ts +0 -49
- package/src/css/aspects/shadow/shadow.ts +0 -7
- package/src/css/aspects/shadow/types.ts +0 -8
- package/src/css/aspects/textOverflow/index.ts +0 -2
- package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
- package/src/css/aspects/textOverflow/textOverflow.ts +0 -6
- package/src/css/aspects/textOverflow/types.ts +0 -8
- package/src/css/aspects/width/index.ts +0 -2
- package/src/css/aspects/width/rules.ts +0 -8
- package/src/css/aspects/width/types.ts +0 -9
- package/src/css/aspects/width/width.style.ts +0 -11
- package/src/css/aspects/width/width.ts +0 -6
- package/src/css/compile/compilePalette.ts +0 -27
- package/src/css/compile/compileRule.ts +0 -96
- package/src/css/compile/compileRules.test.ts +0 -36
- package/src/css/compile/compileRules.ts +0 -43
- package/src/css/compile/compileStyle.ts +0 -148
- package/src/css/compile/compileSystem.ts +0 -10
- package/src/css/compile/compileTheme.ts +0 -15
- package/src/css/compile/compileTheme_v3.ts +0 -392
- package/src/css/compile/types.ts +0 -6
- package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
- package/src/css/components/breadcrumbs/index.ts +0 -1
- package/src/css/components/breadcrumbs/rules.ts +0 -25
- package/src/css/components/dialog/dialog.style.ts +0 -79
- package/src/css/components/dialog/index.ts +0 -1
- package/src/css/components/dialog/rules.ts +0 -78
- package/src/css/components/menu/index.ts +0 -1
- package/src/css/components/menu/menu.style.ts +0 -17
- package/src/css/components/menu/rules.ts +0 -15
- package/src/css/components/skeleton/index.ts +0 -2
- package/src/css/components/skeleton/rules.ts +0 -113
- package/src/css/components/skeleton/skeleton.style.ts +0 -96
- package/src/css/components/toast/index.ts +0 -1
- package/src/css/components/toast/rules.ts +0 -18
- package/src/css/components/toast/toast.style.ts +0 -20
- package/src/css/components/tree/index.ts +0 -1
- package/src/css/components/tree/rules.ts +0 -168
- package/src/css/components/tree/tree.style.ts +0 -55
- package/src/css/composeClassNames.ts +0 -17
- package/src/css/primitives/_arrow/_arrow.style.ts +0 -73
- package/src/css/primitives/_arrow/index.ts +0 -1
- package/src/css/primitives/_input/__workshop__/customInput.tsx +0 -16
- package/src/css/primitives/_input/__workshop__/index.ts +0 -14
- package/src/css/primitives/_input/_input.style.ts +0 -162
- package/src/css/primitives/_input/index.ts +0 -2
- package/src/css/primitives/_selectable/__style.ts +0 -117
- package/src/css/primitives/_selectable/_contants.ts +0 -11
- package/src/css/primitives/_selectable/_selectable.style.ts +0 -132
- package/src/css/primitives/_selectable/index.ts +0 -2
- package/src/css/primitives/_selectable/selectable.ts +0 -9
- package/src/css/primitives/_selectable/types.ts +0 -8
- package/src/css/primitives/avatar/avatar.style.ts +0 -175
- package/src/css/primitives/avatar/index.ts +0 -2
- package/src/css/primitives/avatar/rules.ts +0 -176
- package/src/css/primitives/badge/badge.style.ts +0 -22
- package/src/css/primitives/badge/index.ts +0 -2
- package/src/css/primitives/box/box.style.ts +0 -31
- package/src/css/primitives/box/index.ts +0 -2
- package/src/css/primitives/button/_constants.ts +0 -17
- package/src/css/primitives/button/button.style.ts +0 -179
- package/src/css/primitives/button/index.ts +0 -1
- package/src/css/primitives/button/rules.ts +0 -302
- package/src/css/primitives/card/_constants.ts +0 -13
- package/src/css/primitives/card/card.style.ts +0 -198
- package/src/css/primitives/card/index.ts +0 -2
- package/src/css/primitives/card/rules.ts +0 -473
- package/src/css/primitives/checkbox/__styles.ts +0 -129
- package/src/css/primitives/checkbox/checkbox.style.ts +0 -154
- package/src/css/primitives/checkbox/index.ts +0 -1
- package/src/css/primitives/checkbox/rules.ts +0 -152
- package/src/css/primitives/code/code.style.ts +0 -62
- package/src/css/primitives/code/index.ts +0 -2
- package/src/css/primitives/code/rules.ts +0 -96
- package/src/css/primitives/container/container.style.ts +0 -10
- package/src/css/primitives/container/index.ts +0 -2
- package/src/css/primitives/container/rules.ts +0 -8
- package/src/css/primitives/heading/heading.style.ts +0 -47
- package/src/css/primitives/heading/index.ts +0 -2
- package/src/css/primitives/heading/rules.ts +0 -155
- package/src/css/primitives/kbd/index.ts +0 -2
- package/src/css/primitives/kbd/kbd.style.ts +0 -22
- package/src/css/primitives/kbd/rules.ts +0 -20
- package/src/css/primitives/label/index.ts +0 -2
- package/src/css/primitives/label/label.style.ts +0 -48
- package/src/css/primitives/label/rules.ts +0 -137
- package/src/css/primitives/popover/index.ts +0 -1
- package/src/css/primitives/popover/popover.style.ts +0 -5
- package/src/css/primitives/popover/rules.ts +0 -5
- package/src/css/primitives/radio/index.ts +0 -1
- package/src/css/primitives/radio/radio.style.ts +0 -123
- package/src/css/primitives/radio/rules.ts +0 -121
- package/src/css/primitives/select/index.ts +0 -2
- package/src/css/primitives/select/rules.ts +0 -22
- package/src/css/primitives/select/select.style.ts +0 -24
- package/src/css/primitives/spinner/index.ts +0 -1
- package/src/css/primitives/spinner/rules.ts +0 -21
- package/src/css/primitives/spinner/spinner.style.ts +0 -22
- package/src/css/primitives/switch/index.ts +0 -1
- package/src/css/primitives/switch/rules.ts +0 -340
- package/src/css/primitives/switch/switch.style.ts +0 -169
- package/src/css/primitives/text/index.ts +0 -2
- package/src/css/primitives/text/rules.ts +0 -164
- package/src/css/primitives/text/text.style.ts +0 -56
- package/src/css/primitives/textArea/index.ts +0 -2
- package/src/css/primitives/textArea/rules.ts +0 -7
- package/src/css/primitives/textArea/textArea.style.ts +0 -9
- package/src/css/primitives/textInput/index.ts +0 -2
- package/src/css/primitives/textInput/rules.ts +0 -224
- package/src/css/primitives/textInput/textInput.style.ts +0 -167
- package/src/css/primitives/token/rules.ts +0 -45
- package/src/css/primitives/token/token.style.ts +0 -49
- package/src/css/primitives/tooltip/index.ts +0 -1
- package/src/css/primitives/tooltip/rules.ts +0 -19
- package/src/css/primitives/tooltip/tooltip.style.ts +0 -21
- package/src/css/responsiveRules.ts +0 -25
- package/src/css/scopeClassName.ts +0 -6
- package/src/css/system.style.ts +0 -154
- package/src/css/util.ts +0 -27
- package/src/css/utils/srOnly/index.ts +0 -1
- package/src/css/utils/srOnly/srOnly.style.ts +0 -14
- package/src/css/utils/srOnly/srOnly.ts +0 -5
- package/src/css/varNames.ts +0 -486
- package/src/css/vars.ts +0 -456
- package/src/theme/_constants.ts +0 -26
- package/src/theme/_types.ts +0 -41
- package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
- package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -17
- package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
- package/src/theme/build/_deprecated/color/color.test.ts +0 -63
- package/src/theme/build/_deprecated/color/defaults.ts +0 -390
- package/src/theme/build/_deprecated/color/factory.ts +0 -141
- package/src/theme/build/_deprecated/color/index.ts +0 -1
- package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
- package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
- package/src/theme/build/buildColorTheme.test.ts +0 -183
- package/src/theme/build/buildColorTheme.ts +0 -494
- package/src/theme/build/buildTheme.test.ts +0 -87
- package/src/theme/build/buildTheme.ts +0 -12
- package/src/theme/build/colorToken/colorToken.ts +0 -19
- package/src/theme/build/colorToken/compileColorToken.ts +0 -21
- package/src/theme/build/colorToken/index.ts +0 -2
- package/src/theme/build/colorToken/types.ts +0 -6
- package/src/theme/build/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
- package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
- package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
- package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
- package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
- package/src/theme/build/lib/color-fns/convert.ts +0 -150
- package/src/theme/build/lib/color-fns/index.ts +0 -6
- package/src/theme/build/lib/color-fns/parse.ts +0 -60
- package/src/theme/build/lib/color-fns/rgba.ts +0 -14
- package/src/theme/build/lib/color-fns/types.ts +0 -28
- package/src/theme/build/lib/utils.ts +0 -19
- package/src/theme/build/merge.ts +0 -26
- package/src/theme/build/mixThemeColor.test.ts +0 -21
- package/src/theme/build/mixThemeColor.ts +0 -53
- package/src/theme/build/renderColorTheme.ts +0 -532
- package/src/theme/build/renderColorValue.ts +0 -85
- package/src/theme/build/resolveColorTokens.ts +0 -268
- package/src/theme/build/theme.test.ts +0 -27
- package/src/theme/config/helpers.ts +0 -55
- package/src/theme/config/index.ts +0 -4
- package/src/theme/config/system.ts +0 -115
- package/src/theme/config/tokens/color/index.ts +0 -1
- package/src/theme/config/tokens/color/types.ts +0 -133
- package/src/theme/config/tokens/index.ts +0 -4
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
- package/src/theme/config/tokens/parseTokenValue.ts +0 -133
- package/src/theme/config/tokens/types.ts +0 -53
- package/src/theme/config/types.ts +0 -45
- package/src/theme/defaults/colorPalette.ts +0 -5
- package/src/theme/defaults/colorTokens.ts +0 -648
- package/src/theme/defaults/config.ts +0 -84
- package/src/theme/getScopedTheme.ts +0 -88
- package/src/theme/palette/constants.ts +0 -13
- package/src/theme/palette/index.ts +0 -2
- package/src/theme/palette/types.ts +0 -4
- package/src/theme/v0/avatar.ts +0 -10
- package/src/theme/v0/color/_generic.ts +0 -35
- package/src/theme/v0/color/_system.ts +0 -17
- package/src/theme/v0/color/base.ts +0 -21
- package/src/theme/v0/color/button.ts +0 -42
- package/src/theme/v0/color/card.ts +0 -19
- package/src/theme/v0/color/color.ts +0 -40
- package/src/theme/v0/color/index.ts +0 -11
- package/src/theme/v0/color/input.ts +0 -34
- package/src/theme/v0/color/muted.ts +0 -26
- package/src/theme/v0/color/selectable.ts +0 -31
- package/src/theme/v0/color/solid.ts +0 -26
- package/src/theme/v0/color/spot.ts +0 -13
- package/src/theme/v0/css.ts +0 -8
- package/src/theme/v0/focusRing.ts +0 -7
- package/src/theme/v0/font.ts +0 -53
- package/src/theme/v0/index.ts +0 -10
- package/src/theme/v0/input.ts +0 -23
- package/src/theme/v0/layer.ts +0 -8
- package/src/theme/v0/shadow.ts +0 -19
- package/src/theme/v0/styles.ts +0 -13
- package/src/theme/v0/theme.ts +0 -72
- package/src/theme/v2/avatar.ts +0 -14
- package/src/theme/v2/color/_constants.ts +0 -45
- package/src/theme/v2/color/_helpers.ts +0 -24
- package/src/theme/v2/color/_system.ts +0 -40
- package/src/theme/v2/color/avatar.ts +0 -15
- package/src/theme/v2/color/badge.ts +0 -16
- package/src/theme/v2/color/button.ts +0 -17
- package/src/theme/v2/color/color.ts +0 -34
- package/src/theme/v2/color/index.ts +0 -13
- package/src/theme/v2/color/input.ts +0 -25
- package/src/theme/v2/color/kbd.ts +0 -8
- package/src/theme/v2/color/selectable.ts +0 -12
- package/src/theme/v2/color/shadow.ts +0 -7
- package/src/theme/v2/color/state.ts +0 -43
- package/src/theme/v2/color/syntax.ts +0 -41
- package/src/theme/v2/index.ts +0 -4
- package/src/theme/v2/input.ts +0 -33
- package/src/theme/v2/theme.ts +0 -49
- package/src/theme/v3/buildTheme_v3.test.ts +0 -40
- package/src/theme/v3/buildTheme_v3.ts +0 -29
- package/src/theme/v3/color/buildColor_v3.ts +0 -193
- package/src/theme/v3/color/card.ts +0 -116
- package/src/theme/v3/color/color.ts +0 -94
- package/src/theme/v3/color/element.ts +0 -19
- package/src/theme/v3/color/index.ts +0 -7
- package/src/theme/v3/color/parseColor.test.ts +0 -79
- package/src/theme/v3/color/parseColor.ts +0 -167
- package/src/theme/v3/color/renderColor.test.ts +0 -19
- package/src/theme/v3/color/renderColor.ts +0 -33
- package/src/theme/v3/color/token.ts +0 -17
- package/src/theme/v3/color/tokens.ts +0 -5
- package/src/theme/v3/defaults.ts +0 -186
- package/src/theme/v3/index.ts +0 -6
- package/src/theme/v3/merge.ts +0 -22
- package/src/theme/v3/resolveTokens.ts +0 -199
- package/src/theme/v3/tokens.ts +0 -16
- package/src/theme/v3/types.ts +0 -45
- package/src/theme/versioning/getTheme_v2.ts +0 -58
- package/src/theme/versioning/index.ts +0 -1
- package/src/theme/versioning/is_v0.ts +0 -7
- package/src/theme/versioning/is_v2.ts +0 -7
- package/src/theme/versioning/themeColor_v0_v2.ts +0 -245
- package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
- package/src/theme/versioning/themeColor_v3_v2.ts +0 -206
- package/src/theme/versioning/v0_v2.ts +0 -95
- package/src/theme/versioning/v2_v0.ts +0 -127
- package/src/theme/versioning/v3_v2.ts +0 -108
- package/src/ui/StyleTags.tsx +0 -24
- package/src/ui/_compat/index.ts +0 -9
- package/src/ui/_compat/styles/_responsive.ts +0 -19
- package/src/ui/_compat/styles/index.ts +0 -1
- package/src/ui/_compat/theme/index.ts +0 -5
- package/src/ui/_compat/theme/theme.test.tsx +0 -73
- package/src/ui/_compat/theme/themeColorProvider.tsx +0 -30
- package/src/ui/_compat/theme/themeContext.ts +0 -10
- package/src/ui/_compat/theme/themeProvider.tsx +0 -74
- package/src/ui/_compat/theme/types.ts +0 -12
- package/src/ui/_compat/theme/useRootTheme.ts +0 -17
- package/src/ui/_compat/theme/useTheme.ts +0 -16
- package/src/ui/_compat/types.ts +0 -274
- package/src/ui/components/autocomplete/__mocks__/apiStore.ts +0 -49
- package/src/ui/components/autocomplete/__mocks__/countries.ts +0 -245
- package/src/ui/components/autocomplete/__workshop__/async.tsx +0 -157
- package/src/ui/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -131
- package/src/ui/components/autocomplete/__workshop__/custom.tsx +0 -90
- package/src/ui/components/autocomplete/__workshop__/example.tsx +0 -80
- package/src/ui/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
- package/src/ui/components/autocomplete/__workshop__/fullscreen.tsx +0 -293
- package/src/ui/components/autocomplete/__workshop__/index.ts +0 -39
- package/src/ui/components/autocomplete/autocomplete.tsx +0 -731
- package/src/ui/components/autocomplete/autocompleteOption.tsx +0 -45
- package/src/ui/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/ui/components/autocomplete/constants.ts +0 -28
- package/src/ui/components/autocomplete/index.ts +0 -2
- package/src/ui/components/autocomplete/types.ts +0 -108
- package/src/ui/components/breadcrumbs/__workshop__/example.tsx +0 -62
- package/src/ui/components/breadcrumbs/__workshop__/index.ts +0 -14
- package/src/ui/components/breadcrumbs/breadcrumbs.tsx +0 -127
- package/src/ui/components/breadcrumbs/index.ts +0 -1
- package/src/ui/components/dialog/__workshop__/activate.tsx +0 -134
- package/src/ui/components/dialog/__workshop__/autoFocus.tsx +0 -29
- package/src/ui/components/dialog/__workshop__/index.ts +0 -19
- package/src/ui/components/dialog/__workshop__/layering.tsx +0 -41
- package/src/ui/components/dialog/__workshop__/nested.tsx +0 -72
- package/src/ui/components/dialog/__workshop__/onScroll.tsx +0 -39
- package/src/ui/components/dialog/__workshop__/panes.tsx +0 -82
- package/src/ui/components/dialog/__workshop__/position.tsx +0 -30
- package/src/ui/components/dialog/__workshop__/props.tsx +0 -77
- package/src/ui/components/dialog/__workshop__/provider.tsx +0 -11
- package/src/ui/components/dialog/__workshop__/wrapped.tsx +0 -76
- package/src/ui/components/dialog/dialog.tsx +0 -433
- package/src/ui/components/dialog/dialogContext.ts +0 -20
- package/src/ui/components/dialog/dialogProvider.tsx +0 -35
- package/src/ui/components/dialog/index.ts +0 -4
- package/src/ui/components/dialog/useDialog.ts +0 -11
- package/src/ui/components/hotkeys/__workshop__/index.ts +0 -14
- package/src/ui/components/hotkeys/__workshop__/plain.tsx +0 -9
- package/src/ui/components/hotkeys/hotkeys.tsx +0 -54
- package/src/ui/components/hotkeys/index.ts +0 -1
- package/src/ui/components/index.ts +0 -9
- package/src/ui/components/menu/__workshop__/asComponent.tsx +0 -45
- package/src/ui/components/menu/__workshop__/avatarMenu.tsx +0 -51
- package/src/ui/components/menu/__workshop__/closableMenuButton.tsx +0 -46
- package/src/ui/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
- package/src/ui/components/menu/__workshop__/customMenuItem.tsx +0 -45
- package/src/ui/components/menu/__workshop__/customSelectedState.tsx +0 -39
- package/src/ui/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
- package/src/ui/components/menu/__workshop__/groups.tsx +0 -156
- package/src/ui/components/menu/__workshop__/index.ts +0 -89
- package/src/ui/components/menu/__workshop__/menuButton.tsx +0 -80
- package/src/ui/components/menu/__workshop__/menuGroupRight.tsx +0 -65
- package/src/ui/components/menu/__workshop__/nestedMenu.tsx +0 -22
- package/src/ui/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
- package/src/ui/components/menu/__workshop__/selectedItem.tsx +0 -69
- package/src/ui/components/menu/__workshop__/shouldFocus.tsx +0 -47
- package/src/ui/components/menu/__workshop__/tones.tsx +0 -25
- package/src/ui/components/menu/__workshop__/withoutArrow.tsx +0 -32
- package/src/ui/components/menu/helpers.ts +0 -82
- package/src/ui/components/menu/index.ts +0 -5
- package/src/ui/components/menu/menu.test.tsx +0 -128
- package/src/ui/components/menu/menu.tsx +0 -200
- package/src/ui/components/menu/menuButton.tsx +0 -275
- package/src/ui/components/menu/menuContext.ts +0 -31
- package/src/ui/components/menu/menuDivider.tsx +0 -22
- package/src/ui/components/menu/menuGroup.tsx +0 -228
- package/src/ui/components/menu/menuItem.tsx +0 -180
- package/src/ui/components/menu/useMenu.ts +0 -21
- package/src/ui/components/menu/useMenuController.ts +0 -241
- package/src/ui/components/skeleton/__workshop__/delay.tsx +0 -70
- package/src/ui/components/skeleton/__workshop__/index.ts +0 -11
- package/src/ui/components/skeleton/__workshop__/skeleton.tsx +0 -64
- package/src/ui/components/skeleton/index.ts +0 -2
- package/src/ui/components/skeleton/skeleton.tsx +0 -53
- package/src/ui/components/skeleton/textSkeleton.tsx +0 -132
- package/src/ui/components/tab/__workshop__/example.tsx +0 -79
- package/src/ui/components/tab/__workshop__/index.ts +0 -14
- package/src/ui/components/tab/index.ts +0 -3
- package/src/ui/components/tab/tab.tsx +0 -105
- package/src/ui/components/tab/tabList.tsx +0 -74
- package/src/ui/components/tab/tabPanel.tsx +0 -40
- package/src/ui/components/toast/__workshop__/hook.tsx +0 -71
- package/src/ui/components/toast/__workshop__/index.ts +0 -19
- package/src/ui/components/toast/__workshop__/toast.tsx +0 -26
- package/src/ui/components/toast/index.ts +0 -4
- package/src/ui/components/toast/toast.test.tsx +0 -101
- package/src/ui/components/toast/toast.tsx +0 -211
- package/src/ui/components/toast/toastContext.ts +0 -7
- package/src/ui/components/toast/toastLayer.tsx +0 -38
- package/src/ui/components/toast/toastProvider.tsx +0 -113
- package/src/ui/components/toast/types.ts +0 -28
- package/src/ui/components/toast/useToast.ts +0 -25
- package/src/ui/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/ui/components/tree/__workshop__/basic.tsx +0 -105
- package/src/ui/components/tree/__workshop__/index.ts +0 -21
- package/src/ui/components/tree/__workshop__/tabFromElement.tsx +0 -84
- package/src/ui/components/tree/helpers.ts +0 -105
- package/src/ui/components/tree/index.ts +0 -4
- package/src/ui/components/tree/tree.tsx +0 -244
- package/src/ui/components/tree/treeContext.ts +0 -10
- package/src/ui/components/tree/treeGroup.tsx +0 -30
- package/src/ui/components/tree/treeItem.tsx +0 -220
- package/src/ui/components/tree/types.ts +0 -25
- package/src/ui/components/tree/useTree.ts +0 -17
- package/src/ui/constants.ts +0 -79
- package/src/ui/global.ts +0 -6
- package/src/ui/helpers/focus.ts +0 -100
- package/src/ui/helpers/index.ts +0 -5
- package/src/ui/helpers/props.ts +0 -10
- package/src/ui/hooks/index.ts +0 -12
- package/src/ui/hooks/useArrayProp.ts +0 -29
- package/src/ui/hooks/useClickOutside.test.tsx +0 -482
- package/src/ui/hooks/useClickOutside.ts +0 -117
- package/src/ui/hooks/useClickOutsideEvent.test.tsx +0 -115
- package/src/ui/hooks/useClickOutsideEvent.ts +0 -73
- package/src/ui/hooks/useDelayed.test.ts +0 -68
- package/src/ui/hooks/useDelayedState.ts +0 -28
- package/src/ui/hooks/useElementRect/__workshop__/example.tsx +0 -32
- package/src/ui/hooks/useElementRect/__workshop__/index.ts +0 -14
- package/src/ui/hooks/useElementRect/index.ts +0 -1
- package/src/ui/hooks/useElementRect/useElementRect.ts +0 -13
- package/src/ui/hooks/useElementSize.ts +0 -19
- package/src/ui/hooks/useForwardedRef.ts +0 -19
- package/src/ui/hooks/useIsomorphicEffect.ts +0 -7
- package/src/ui/hooks/useMediaIndex/__workshop__/index.ts +0 -14
- package/src/ui/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
- package/src/ui/hooks/useMediaIndex/index.ts +0 -1
- package/src/ui/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
- package/src/ui/hooks/useMediaIndex/useMediaIndex.ts +0 -104
- package/src/ui/hooks/usePrefersDark.hydration.test.tsx +0 -56
- package/src/ui/hooks/usePrefersDark.test.tsx +0 -19
- package/src/ui/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
- package/src/ui/hooks/usePrefersReducedMotion.test.tsx +0 -19
- package/src/ui/index.ts +0 -9
- package/src/ui/lib/createGlobalScopedContext.ts +0 -34
- package/src/ui/lib/globalScope.ts +0 -19
- package/src/ui/lib/isRecord.ts +0 -3
- package/src/ui/middleware/origin.ts +0 -47
- package/src/ui/observers/elementSizeObserver.ts +0 -116
- package/src/ui/observers/index.ts +0 -2
- package/src/ui/primitives/_selectable/index.ts +0 -1
- package/src/ui/primitives/_selectable/selectable.tsx +0 -31
- package/src/ui/primitives/avatar/__workshop__/asButton.tsx +0 -14
- package/src/ui/primitives/avatar/__workshop__/index.ts +0 -29
- package/src/ui/primitives/avatar/__workshop__/stack.tsx +0 -25
- package/src/ui/primitives/avatar/__workshop__/withinButton.tsx +0 -63
- package/src/ui/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -72
- package/src/ui/primitives/avatar/avatar.tsx +0 -158
- package/src/ui/primitives/avatar/avatarCounter.tsx +0 -62
- package/src/ui/primitives/avatar/avatarStack.tsx +0 -82
- package/src/ui/primitives/avatar/index.ts +0 -4
- package/src/ui/primitives/avatar/types.ts +0 -17
- package/src/ui/primitives/badge/__workshop__/index.ts +0 -19
- package/src/ui/primitives/badge/__workshop__/props.tsx +0 -30
- package/src/ui/primitives/badge/__workshop__/tones.tsx +0 -21
- package/src/ui/primitives/badge/badge.test.tsx +0 -16
- package/src/ui/primitives/badge/badge.tsx +0 -64
- package/src/ui/primitives/badge/index.ts +0 -1
- package/src/ui/primitives/badge/types.ts +0 -8
- package/src/ui/primitives/box/__workshop__/index.ts +0 -19
- package/src/ui/primitives/box/__workshop__/props.tsx +0 -20
- package/src/ui/primitives/box/__workshop__/responsive.tsx +0 -20
- package/src/ui/primitives/box/box.tsx +0 -155
- package/src/ui/primitives/box/index.ts +0 -1
- package/src/ui/primitives/button/__workshop__/custom.tsx +0 -50
- package/src/ui/primitives/button/__workshop__/customIcons.tsx +0 -30
- package/src/ui/primitives/button/__workshop__/disabled.tsx +0 -74
- package/src/ui/primitives/button/__workshop__/index.ts +0 -59
- package/src/ui/primitives/button/__workshop__/mixedChildren.tsx +0 -12
- package/src/ui/primitives/button/__workshop__/props.tsx +0 -58
- package/src/ui/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
- package/src/ui/primitives/button/__workshop__/stacked.tsx +0 -59
- package/src/ui/primitives/button/__workshop__/styled1.tsx +0 -17
- package/src/ui/primitives/button/__workshop__/styled2.tsx +0 -19
- package/src/ui/primitives/button/__workshop__/uploadButton.tsx +0 -28
- package/src/ui/primitives/button/button.test.tsx +0 -44
- package/src/ui/primitives/button/button.tsx +0 -206
- package/src/ui/primitives/button/index.ts +0 -1
- package/src/ui/primitives/card/__workshop__/allTones.tsx +0 -27
- package/src/ui/primitives/card/__workshop__/asButton.tsx +0 -107
- package/src/ui/primitives/card/__workshop__/asComponent.tsx +0 -27
- package/src/ui/primitives/card/__workshop__/checkered.tsx +0 -26
- package/src/ui/primitives/card/__workshop__/index.ts +0 -18
- package/src/ui/primitives/card/__workshop__/interactive.tsx +0 -30
- package/src/ui/primitives/card/__workshop__/listNavigation.tsx +0 -80
- package/src/ui/primitives/card/__workshop__/props.tsx +0 -55
- package/src/ui/primitives/card/__workshop__/selected.tsx +0 -93
- package/src/ui/primitives/card/__workshop__/styled.tsx +0 -14
- package/src/ui/primitives/card/card.tsx +0 -122
- package/src/ui/primitives/card/cardContext.ts +0 -10
- package/src/ui/primitives/card/cardProvider.tsx +0 -19
- package/src/ui/primitives/card/index.ts +0 -4
- package/src/ui/primitives/card/types.ts +0 -27
- package/src/ui/primitives/card/useCard.ts +0 -7
- package/src/ui/primitives/checkbox/__workshop__/example.tsx +0 -25
- package/src/ui/primitives/checkbox/__workshop__/index.ts +0 -13
- package/src/ui/primitives/checkbox/__workshop__/props.tsx +0 -33
- package/src/ui/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
- package/src/ui/primitives/checkbox/__workshop__/tones.tsx +0 -28
- package/src/ui/primitives/checkbox/checkbox.tsx +0 -74
- package/src/ui/primitives/checkbox/index.ts +0 -1
- package/src/ui/primitives/code/__workshop__/index.ts +0 -19
- package/src/ui/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
- package/src/ui/primitives/code/__workshop__/props.tsx +0 -21
- package/src/ui/primitives/code/code.tsx +0 -49
- package/src/ui/primitives/code/index.ts +0 -1
- package/src/ui/primitives/code/refractor.tsx +0 -20
- package/src/ui/primitives/container/__workshop__/example.tsx +0 -20
- package/src/ui/primitives/container/__workshop__/index.ts +0 -8
- package/src/ui/primitives/container/container.tsx +0 -35
- package/src/ui/primitives/container/index.ts +0 -2
- package/src/ui/primitives/flex/__workshop__/example.tsx +0 -34
- package/src/ui/primitives/flex/__workshop__/gap.tsx +0 -25
- package/src/ui/primitives/flex/__workshop__/index.ts +0 -11
- package/src/ui/primitives/flex/flex.tsx +0 -29
- package/src/ui/primitives/flex/index.ts +0 -1
- package/src/ui/primitives/grid/__workshop__/index.ts +0 -10
- package/src/ui/primitives/grid/__workshop__/responsive.tsx +0 -54
- package/src/ui/primitives/grid/grid.tsx +0 -30
- package/src/ui/primitives/grid/index.ts +0 -1
- package/src/ui/primitives/heading/__workshop__/index.ts +0 -19
- package/src/ui/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
- package/src/ui/primitives/heading/__workshop__/plain.tsx +0 -32
- package/src/ui/primitives/heading/heading.tsx +0 -62
- package/src/ui/primitives/heading/index.ts +0 -1
- package/src/ui/primitives/index.ts +0 -27
- package/src/ui/primitives/inline/__workshop__/index.ts +0 -8
- package/src/ui/primitives/inline/__workshop__/plain.tsx +0 -27
- package/src/ui/primitives/inline/index.ts +0 -1
- package/src/ui/primitives/inline/inline.tsx +0 -50
- package/src/ui/primitives/inline/types.ts +0 -6
- package/src/ui/primitives/kbd/__workshop__/index.ts +0 -8
- package/src/ui/primitives/kbd/__workshop__/plain.tsx +0 -9
- package/src/ui/primitives/kbd/index.ts +0 -1
- package/src/ui/primitives/kbd/kbd.tsx +0 -55
- package/src/ui/primitives/label/__workshop__/index.ts +0 -19
- package/src/ui/primitives/label/__workshop__/opticalAlignment.tsx +0 -54
- package/src/ui/primitives/label/__workshop__/plain.tsx +0 -37
- package/src/ui/primitives/label/index.ts +0 -1
- package/src/ui/primitives/label/label.tsx +0 -67
- package/src/ui/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
- package/src/ui/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
- package/src/ui/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/ui/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
- package/src/ui/primitives/popover/__workshop__/PlainStory.tsx +0 -71
- package/src/ui/primitives/popover/__workshop__/RecursiveStory.tsx +0 -70
- package/src/ui/primitives/popover/__workshop__/SidePanelStory.tsx +0 -93
- package/src/ui/primitives/popover/__workshop__/TestStory.tsx +0 -98
- package/src/ui/primitives/popover/__workshop__/index.ts +0 -49
- package/src/ui/primitives/popover/constants.ts +0 -22
- package/src/ui/primitives/popover/floating-ui/size.ts +0 -83
- package/src/ui/primitives/popover/helpers.ts +0 -32
- package/src/ui/primitives/popover/index.ts +0 -2
- package/src/ui/primitives/popover/popover.tsx +0 -492
- package/src/ui/primitives/popover/popoverCard.tsx +0 -155
- package/src/ui/primitives/popover/types.ts +0 -6
- package/src/ui/primitives/radio/__workshop__/example.tsx +0 -63
- package/src/ui/primitives/radio/__workshop__/index.ts +0 -11
- package/src/ui/primitives/radio/__workshop__/plain.tsx +0 -28
- package/src/ui/primitives/radio/index.ts +0 -1
- package/src/ui/primitives/radio/radio.tsx +0 -49
- package/src/ui/primitives/select/__workshop__/index.ts +0 -11
- package/src/ui/primitives/select/__workshop__/plain.tsx +0 -30
- package/src/ui/primitives/select/__workshop__/readOnly.tsx +0 -23
- package/src/ui/primitives/select/index.ts +0 -1
- package/src/ui/primitives/select/select.tsx +0 -85
- package/src/ui/primitives/spinner/__workshop__/Props.tsx +0 -16
- package/src/ui/primitives/spinner/__workshop__/index.ts +0 -14
- package/src/ui/primitives/spinner/animatedSpinnerIcon.tsx +0 -16
- package/src/ui/primitives/spinner/index.ts +0 -1
- package/src/ui/primitives/spinner/spinner.tsx +0 -33
- package/src/ui/primitives/stack/__workshop__/index.ts +0 -14
- package/src/ui/primitives/stack/__workshop__/plain.tsx +0 -32
- package/src/ui/primitives/stack/index.ts +0 -1
- package/src/ui/primitives/stack/stack.tsx +0 -40
- package/src/ui/primitives/switch/__workshop__/example.tsx +0 -23
- package/src/ui/primitives/switch/__workshop__/index.ts +0 -11
- package/src/ui/primitives/switch/__workshop__/props.tsx +0 -21
- package/src/ui/primitives/switch/index.ts +0 -1
- package/src/ui/primitives/switch/switch.tsx +0 -75
- package/src/ui/primitives/text/__workshop__/colored.tsx +0 -23
- package/src/ui/primitives/text/__workshop__/example.tsx +0 -39
- package/src/ui/primitives/text/__workshop__/index.ts +0 -24
- package/src/ui/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
- package/src/ui/primitives/text/index.ts +0 -1
- package/src/ui/primitives/text/text.tsx +0 -64
- package/src/ui/primitives/textArea/__workshop__/index.ts +0 -14
- package/src/ui/primitives/textArea/__workshop__/plain.tsx +0 -50
- package/src/ui/primitives/textArea/index.ts +0 -1
- package/src/ui/primitives/textArea/textArea.tsx +0 -71
- package/src/ui/primitives/textInput/__workshop__/clearButton.tsx +0 -30
- package/src/ui/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/ui/primitives/textInput/__workshop__/index.ts +0 -44
- package/src/ui/primitives/textInput/__workshop__/plain.tsx +0 -104
- package/src/ui/primitives/textInput/__workshop__/readOnly.tsx +0 -9
- package/src/ui/primitives/textInput/__workshop__/states.tsx +0 -53
- package/src/ui/primitives/textInput/__workshop__/tones.tsx +0 -277
- package/src/ui/primitives/textInput/__workshop__/typed.tsx +0 -23
- package/src/ui/primitives/textInput/index.ts +0 -1
- package/src/ui/primitives/textInput/textInput.tsx +0 -286
- package/src/ui/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
- package/src/ui/primitives/tooltip/__workshop__/index.ts +0 -29
- package/src/ui/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
- package/src/ui/primitives/tooltip/__workshop__/props.tsx +0 -111
- package/src/ui/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
- package/src/ui/primitives/tooltip/constants.ts +0 -23
- package/src/ui/primitives/tooltip/index.ts +0 -2
- package/src/ui/primitives/tooltip/tooltip.test.tsx +0 -453
- package/src/ui/primitives/tooltip/tooltip.tsx +0 -467
- package/src/ui/primitives/tooltip/tooltipCard.tsx +0 -115
- package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
- package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -55
- package/src/ui/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/ui/primitives/types.ts +0 -166
- package/src/ui/types/avatar.ts +0 -19
- package/src/ui/types/badge.ts +0 -12
- package/src/ui/types/box.ts +0 -22
- package/src/ui/types/button.ts +0 -24
- package/src/ui/types/card.ts +0 -6
- package/src/ui/types/dialog.ts +0 -4
- package/src/ui/types/flex.ts +0 -27
- package/src/ui/types/grid.ts +0 -17
- package/src/ui/types/gridItem.ts +0 -32
- package/src/ui/types/index.ts +0 -15
- package/src/ui/types/placement.ts +0 -18
- package/src/ui/types/popover.ts +0 -4
- package/src/ui/types/props.ts +0 -18
- package/src/ui/types/radius.ts +0 -7
- package/src/ui/types/selectable.ts +0 -7
- package/src/ui/types/text.ts +0 -7
- package/src/ui/utils/arrow/arrow.tsx +0 -59
- package/src/ui/utils/arrow/index.ts +0 -1
- package/src/ui/utils/boundaryElement/__workshop__/index.ts +0 -14
- package/src/ui/utils/boundaryElement/__workshop__/plain.tsx +0 -19
- package/src/ui/utils/boundaryElement/boundaryElement.test.tsx +0 -100
- package/src/ui/utils/boundaryElement/boundaryElementContext.ts +0 -7
- package/src/ui/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
- package/src/ui/utils/boundaryElement/index.ts +0 -3
- package/src/ui/utils/boundaryElement/types.ts +0 -7
- package/src/ui/utils/boundaryElement/useBoundaryElement.ts +0 -26
- package/src/ui/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
- package/src/ui/utils/conditionalWrapper/index.ts +0 -1
- package/src/ui/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
- package/src/ui/utils/elementQuery/__workshop__/index.ts +0 -14
- package/src/ui/utils/elementQuery/elementQuery.tsx +0 -53
- package/src/ui/utils/elementQuery/index.ts +0 -1
- package/src/ui/utils/errorBoundary.tsx +0 -48
- package/src/ui/utils/getElementRef.ts +0 -26
- package/src/ui/utils/index.ts +0 -9
- package/src/ui/utils/layer/__workshop__/_debug.tsx +0 -17
- package/src/ui/utils/layer/__workshop__/index.ts +0 -24
- package/src/ui/utils/layer/__workshop__/multipleRoots.tsx +0 -49
- package/src/ui/utils/layer/__workshop__/nested.tsx +0 -98
- package/src/ui/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
- package/src/ui/utils/layer/getLayerContext.test.ts +0 -30
- package/src/ui/utils/layer/getLayerContext.ts +0 -21
- package/src/ui/utils/layer/index.ts +0 -4
- package/src/ui/utils/layer/layer.test.tsx +0 -108
- package/src/ui/utils/layer/layer.tsx +0 -112
- package/src/ui/utils/layer/layerContext.ts +0 -7
- package/src/ui/utils/layer/layerProvider.tsx +0 -110
- package/src/ui/utils/layer/useLayer.ts +0 -26
- package/src/ui/utils/portal/__workshop__/index.ts +0 -14
- package/src/ui/utils/portal/__workshop__/named.tsx +0 -63
- package/src/ui/utils/portal/index.ts +0 -4
- package/src/ui/utils/portal/portal.test.tsx +0 -103
- package/src/ui/utils/portal/portal.ts +0 -46
- package/src/ui/utils/portal/portalContext.ts +0 -31
- package/src/ui/utils/portal/portalProvider.tsx +0 -79
- package/src/ui/utils/portal/types.ts +0 -9
- package/src/ui/utils/portal/usePortal.ts +0 -25
- package/src/ui/utils/spanWithTextOverflow.tsx +0 -10
- package/src/ui/utils/srOnly/index.ts +0 -1
- package/src/ui/utils/srOnly/srOnly.tsx +0 -35
- package/src/ui/utils/virtualList/__workshop__/changingProps.tsx +0 -36
- package/src/ui/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
- package/src/ui/utils/virtualList/__workshop__/index.ts +0 -29
- package/src/ui/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
- package/src/ui/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
- package/src/ui/utils/virtualList/index.ts +0 -1
- package/src/ui/utils/virtualList/virtualList.tsx +0 -189
- /package/src/{ui → core}/components/autocomplete/__workshop__/types.ts +0 -0
- /package/src/{ui → core}/components/toast/toastState.ts +0 -0
- /package/src/{ui → core}/helpers/animation.ts +0 -0
- /package/src/{ui → core}/helpers/element.ts +0 -0
- /package/src/{ui → core}/helpers/scroll.ts +0 -0
- /package/src/{ui → core}/hooks/useCustomValidity.ts +0 -0
- /package/src/{ui → core}/hooks/useGlobalKeyDown.ts +0 -0
- /package/src/{ui → core}/hooks/useMatchMedia.ts +0 -0
- /package/src/{ui → core}/hooks/useMounted.ts +0 -0
- /package/src/{ui → core}/hooks/usePrefersDark.ts +0 -0
- /package/src/{ui → core}/hooks/usePrefersReducedMotion.ts +0 -0
- /package/src/{theme/build → core}/lib/isRecord.ts +0 -0
- /package/src/{ui/observers/resizeObserver.ts → core/observers/resize.ts} +0 -0
- /package/src/{ui/utils → core/primitives}/arrow/cmds.ts +0 -0
- /package/src/{ui → core}/primitives/container/types.ts +0 -0
- /package/src/{ui/utils → core/primitives}/layer/types.ts +0 -0
- /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/index.ts +0 -0
- /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/types.ts +0 -0
- /package/src/{ui → core}/utils/elementQuery/helpers.ts +0 -0
- /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_visual-editing.cjs","sources":["../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/lib/isArray.ts","../../src/core/lib/isRecord.ts","../../src/core/helpers/props.ts","../../src/core/hooks/useResponsiveProp.ts","../../src/core/primitives/box/box.tsx","../../src/core/primitives/text/text.tsx","../../src/core/primitives/spinner/animatedSpinnerIcon.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/primitives/button/button.tsx","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/middleware/origin.ts","../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/getElementRef.ts","../../src/core/primitives/card/cardContext.ts","../../src/core/primitives/card/cardProvider.tsx","../../src/core/primitives/card/useCard.ts","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.tsx","../../src/core/primitives/layer/getLayerContext.ts","../../src/core/primitives/layer/layerContext.ts","../../src/core/primitives/layer/useLayer.ts","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/arrow/cmds.ts","../../src/core/primitives/arrow/arrow.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/card/card.tsx","../../src/core/primitives/layer/layerCard.tsx","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/primitives/layer/layerProvider.tsx","../../src/core/primitives/layer/layer.tsx","../../src/core/primitives/popover/popoverLayer.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/selectable/selectable.tsx","../../src/core/primitives/stack/stack.tsx","../../src/core/hooks/useCustomValidity.ts","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/primitives/kbd/kbd.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.tsx","../../src/core/components/menu/useMenu.ts","../../src/core/components/menu/menuGroup.tsx","../../src/core/components/menu/menuItem.tsx","../../src/core/components/tab/tab.tsx","../../src/core/components/tab/tabList.tsx","../../src/core/primitives/grid/grid.tsx","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/useDelayedState.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltipLayer.tsx","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/utils/portal/portalProvider.tsx"],"sourcesContent":["import type {Transition, Variant} from 'framer-motion'\n\nexport const EMPTY_ARRAY: never[] = []\n\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\nexport const Z_OFFSETS = {\n dialog: 600,\n popover: 400,\n tooltip: 200,\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","export function isArray(val: unknown): val is unknown[] {\n return Array.isArray(val)\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\n\nimport {EMPTY_ARRAY} from '../constants'\nimport {isArray} from '../lib/isArray'\nimport {isRecord} from '../lib/isRecord'\n\n/**\n * @internal\n */\nexport function _getArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveProp<T>(\n val: ResponsiveProp<T> | undefined,\n defaultVal?: Partial<Record<Breakpoint, T>>,\n): Partial<Record<Breakpoint, T>> {\n if (val === undefined) {\n return (defaultVal || EMPTY_ARRAY) as Partial<Record<Breakpoint, T>>\n }\n\n return (isArray(val) || isRecord(val) ? val : [val]) as Partial<Record<Breakpoint, T>>\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\nimport {useState} from 'react'\n\nimport {_getResponsiveProp} from '../helpers/props'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useResponsiveProp<T>(\n val: ResponsiveProp<T> | undefined,\n defaultVal?: Partial<Record<Breakpoint, T>>,\n): Partial<Record<Breakpoint, T>> {\n const [[cachedVal, cachedHash], setCache] = useState<[Partial<Record<Breakpoint, T>>, string]>(\n () => [_getResponsiveProp(val, defaultVal), JSON.stringify(val ?? defaultVal)],\n )\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getResponsiveProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {box, type BoxStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_BOX_ELEMENT = 'div'\n\n/** @public */\nexport type BoxOwnProps = BoxStyleProps\n\n/** @public */\nexport type BoxElementType =\n | 'a'\n | 'article'\n | 'aside'\n | 'blockquote'\n | 'body'\n | 'button'\n | 'details'\n | 'div'\n | 'header'\n | 'fieldset'\n | 'figure'\n | 'figcaption'\n | 'footer'\n | 'form'\n | 'html'\n | 'iframe'\n | 'kbd'\n | 'label'\n | 'legend'\n | 'li'\n | 'main'\n | 'nav'\n | 'ol'\n | 'pre'\n | 'section'\n | 'span'\n | 'summary'\n | 'ul'\n | ComponentType\n\n/** @public */\nexport type BoxProps<E extends BoxElementType = BoxElementType> = Props<BoxOwnProps, E>\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport function Box<E extends BoxElementType = typeof DEFAULT_BOX_ELEMENT>(\n props: BoxProps<E>,\n): React.JSX.Element {\n const {\n alignItems,\n as: Element = DEFAULT_BOX_ELEMENT,\n // autoCols,\n // autoFlow,\n // autoRows,\n border = false,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n children,\n // column,\n // columnStart,\n // columnEnd,\n // columns,\n display = 'block',\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight = 0,\n minWidth = 0,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n // row,\n // rows,\n // rowStart,\n // rowEnd,\n shadow,\n sizing = 'border',\n textAlign,\n width,\n ...rest\n } = props as BoxProps<typeof DEFAULT_BOX_ELEMENT>\n\n return (\n <Element\n data-ui=\"Box\"\n {...rest}\n className={box({\n className,\n alignItems,\n // autoCols,\n // autoFlow,\n // autoRows,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n // column,\n // columnStart,\n // columnEnd,\n // columns,\n display,\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight,\n minWidth,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n // row,\n // rows,\n // rowStart,\n // rowEnd,\n shadow,\n sizing,\n textAlign,\n width,\n })}\n >\n {children}\n </Element>\n )\n}\n","import {text, textOverflow, type TextOverflowStyleProps, type TextStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TEXT_ELEMENT = 'div'\n\n/** @public */\nexport type TextOwnProps = TextStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type TextElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type TextProps<E extends TextElementType = TextElementType> = Props<TextOwnProps, E>\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport function Text<E extends TextElementType = typeof DEFAULT_TEXT_ELEMENT>(\n props: TextProps<E>,\n): React.JSX.Element {\n const {\n align,\n as: Element = DEFAULT_TEXT_ELEMENT,\n children,\n className,\n flex,\n maxWidth = 'fill',\n muted,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as TextProps<typeof DEFAULT_TEXT_ELEMENT>\n\n return (\n <Element\n data-ui=\"Text\"\n {...rest}\n className={text({\n className,\n align,\n flex,\n maxWidth,\n muted,\n size,\n weight,\n })}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {animatedSpinnerIcon} from '@sanity/ui/css'\nimport type {SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(\n props: Omit<SVGProps<SVGSVGElement>, 'className'>,\n): React.JSX.Element {\n const {...rest} = props\n\n return (\n <SpinnerIcon data-sanity-icon=\"animated-spinner\" {...rest} className={animatedSpinnerIcon()} />\n )\n}\n","import {type ResponsiveProp, spinner} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Text} from '../text/text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/** @public */\nexport const DEFAULT_SPINNER_ELEMENT = 'div'\n\n/** @public */\nexport type SpinnerOwnProps = {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type SpinnerElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type SpinnerProps<E extends SpinnerElementType = SpinnerElementType> = Props<\n SpinnerOwnProps,\n E\n>\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport function Spinner<E extends SpinnerElementType = typeof DEFAULT_SPINNER_ELEMENT>(\n props: SpinnerProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_SPINNER_ELEMENT,\n className,\n ...rest\n } = props as SpinnerProps<typeof DEFAULT_SPINNER_ELEMENT>\n\n return (\n <Text as={as} data-ui=\"Spinner\" {...rest} className={spinner({className})}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n}\n","import type {\n BoxStyleProps,\n ButtonStyleProps,\n DisplayStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {button, buttonLoadingBox} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\nimport {type ElementType as ReactElementType, isValidElement, type ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box/box'\nimport {Spinner} from '../spinner/spinner'\nimport {Text, type TextOwnProps} from '../text/text'\nimport type {ButtonTextAlign} from './types'\n\n/** @public */\nexport const DEFAULT_BUTTON_ELEMENT = 'button'\n\n/** @public */\nexport type ButtonOwnProps = ButtonStyleProps &\n DisplayStyleProps &\n GapStyleProps &\n PaddingStyleProps & {\n 'align'?: BoxStyleProps['alignItems']\n 'data-ui'?: string\n 'disabled'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'icon'?: ReactElementType | ReactNode\n 'iconRight'?: ReactElementType | ReactNode\n 'justify'?: BoxStyleProps['justifyContent']\n /** @beta Do not use in production, as this might change.*/\n 'loading'?: boolean\n 'selected'?: boolean\n 'textAlign'?: ButtonTextAlign\n 'muted'?: boolean\n 'target'?: string\n 'text'?: ReactNode\n 'textOverflow'?: TextOwnProps['textOverflow']\n 'textWeight'?: TextOwnProps['weight']\n 'width'?: ResponsiveProp<Width>\n }\n\n/** @public */\nexport type ButtonElementType = 'a' | 'button' | 'label' | ComponentType\n\n/** @public */\nexport type ButtonProps<E extends ButtonElementType = ButtonElementType> = Props<ButtonOwnProps, E>\n\n/** @public */\nexport function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEMENT>(\n props: ButtonProps<E>,\n): React.JSX.Element {\n const {\n align = 'center',\n as: Element = DEFAULT_BUTTON_ELEMENT,\n children,\n className,\n disabled,\n flex,\n fontSize = 1,\n gap = props.padding ?? 3,\n gapX,\n gapY,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify = 'center',\n loading,\n mode = 'default',\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n radius = 2,\n selected,\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight = 'medium',\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...rest\n } = props as ButtonProps<typeof DEFAULT_BUTTON_ELEMENT>\n\n let href: string | undefined = undefined\n\n if ('href' in rest) {\n href = typeof rest.href === 'string' ? rest.href : href\n delete rest.href\n }\n\n return (\n <Element\n data-ui=\"Button\"\n {...rest}\n className={button({className, flex, mode, radius, tone, width})}\n data-disabled={loading || disabled ? '' : undefined}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n // @ts-expect-error - TODO: fix this\n href={disabled ? undefined : href}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justifyContent=\"center\"\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n alignItems={align}\n as=\"span\"\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n justifyContent={justify}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {IconComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box as=\"span\" maxWidth=\"auto\">\n <Text\n align={textAlign}\n as=\"span\"\n muted={muted}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Box>\n )}\n\n {children && (\n <Box\n as=\"span\"\n flex={1}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {children}\n </Box>\n )}\n </Element>\n )\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import type {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope: typeof globalThis = getGlobalScope()\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/v3/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n // Use the global scope as a map of symbols to contexts\n const symbolMap = globalScope as Record<symbol, Context<ContextType>>\n\n symbolMap[symbol] = symbolMap[symbol] || createContext<T>(defaultValue)\n\n return symbolMap[symbol]\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext: Context<BoundaryElementContextValue | null> =\n createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/v3/boundaryElement',\n null,\n )\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/** @public */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** @internal */\n// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement): React.Ref<unknown> | undefined {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {CardContextValue} from './types'\n\n/**\n * @internal\n */\nexport const CardContext: Context<CardContextValue | null> =\n createGlobalScopedContext<CardContextValue | null>('@sanity/ui/v3/card', null)\n","import type {CardTone, ColorScheme} from '@sanity/ui/theme'\nimport {type ReactNode, useMemo} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {_CardCompatProviderComponent} from './types'\n\n/** @public */\nexport function CardProvider(props: {\n children?: ReactNode\n tone: CardTone\n scheme: ColorScheme\n /** @internal */\n unstable_CompatProvider?: _CardCompatProviderComponent\n}): React.JSX.Element {\n const {children, tone, scheme, unstable_CompatProvider} = props\n\n return (\n <CardContext.Provider\n value={useMemo(\n () => ({tone, scheme, unstable_CompatProvider}),\n [tone, scheme, unstable_CompatProvider],\n )}\n >\n {children}\n </CardContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {CardContextValue} from './types'\n\n/** @public */\nexport function useCard(): CardContextValue {\n const card = useContext(CardContext)\n\n if (!card) {\n throw new Error('useCard(): missing context value')\n }\n\n return card\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport type {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/v3/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\n// Use the global scope as a map of symbols to elements\nconst elementMap = globalScope as Record<symbol, HTMLDivElement | null>\n\nelementMap[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (elementMap[elementKey]) {\n return elementMap[elementKey]\n }\n\n elementMap[elementKey] = document.createElement('div')\n elementMap[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(elementMap[elementKey])\n\n return elementMap[elementKey]\n },\n}\n\nexport const PortalContext: Context<PortalContextValue> =\n createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import type {ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {CardProvider} from '../../primitives/card/cardProvider'\nimport {useCard} from '../../primitives/card/useCard'\nimport {usePortal} from './usePortal'\n\n/** @public */\nexport interface PortalProps {\n children: ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/** @public */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const card = useCard()\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) ||\n portal.elements?.['default']\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(\n <CardProvider tone=\"transparent\" scheme={card.scheme}>\n {children}\n </CardProvider>,\n portalElement,\n )\n}\n","import {isRecord} from '../../lib/isRecord'\nimport type {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {LayerContextValue} from './types'\n\nexport const LayerContext: Context<LayerContextValue | null> =\n createGlobalScopedContext<LayerContextValue | null>('@sanity/ui/v3/layer', null)\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import type {Placement, PopoverMargins} from '@sanity/ui'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, type Elements, type Middleware} from '@floating-ui/react-dom'\n\nimport type {PopoverMargins} from '../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {_arrow, _arrowShape, _arrowStroke, _arrowStrokeMask, _arrowSvg, vars} from '@sanity/ui/css'\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport {useMemo} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\nimport {compileCommands, getRoundedCommands, type Point} from './cmds'\n\n/** @internal */\nexport const DEFAULT_ARROW_ELEMENT = 'div'\n\n/** @internal */\nexport type ArrowOwnProps = {\n width: number\n height: number\n radius?: number\n}\n\n/** @internal */\nexport type ArrowElementType = 'div' | 'span' | ComponentType\n\n/** @internal */\nexport type ArrowProps<E extends ArrowElementType = ArrowElementType> = Props<ArrowOwnProps, E>\n\n/** @internal */\nexport function Arrow<E extends ArrowElementType = typeof DEFAULT_ARROW_ELEMENT>(\n props: ArrowProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_ARROW_ELEMENT,\n width: w,\n height: h,\n radius = 0,\n style,\n ...rest\n } = props as ArrowProps<typeof DEFAULT_ARROW_ELEMENT>\n\n const center = w / 2\n\n const path = useMemo(() => {\n const points: Point[] = [\n {x: 0, y: 0},\n {x: radius, y: 0, radius},\n {x: center, y: h - 1, radius},\n {x: w - radius, y: 0, radius},\n {x: w, y: 0},\n ]\n\n const cmds = getRoundedCommands(points)\n\n return compileCommands(cmds)\n }, [center, h, radius, w])\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Element\n {...rest}\n className={_arrow()}\n style={{\n ...style,\n ...assignInlineVars({[vars.arrow.size]: `${w}px`}),\n }}\n >\n <svg className={_arrowSvg()} width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect className={_arrowStrokeMask()} x={0} width={w} height={w} fill=\"white\" />\n </mask>\n <path className={_arrowStroke()} d={strokePath} mask=\"url(#stroke-mask)\" />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </Element>\n )\n}\n","import type {\n AlignItems,\n FlexDirection,\n FlexWrap,\n JustifyContent,\n ResponsiveProp,\n} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_FLEX_ELEMENT = 'div'\n\n/** @public */\nexport type FlexOwnProps = Omit<BoxOwnProps, 'align' | 'display' | 'flexDirection' | 'flexWrap'> & {\n align?: ResponsiveProp<AlignItems>\n direction?: ResponsiveProp<FlexDirection>\n justify?: ResponsiveProp<JustifyContent>\n wrap?: ResponsiveProp<FlexWrap>\n}\n\n/** @public */\nexport type FlexElementType = BoxElementType\n\n/** @public */\nexport type FlexProps<E extends FlexElementType = FlexElementType> = Props<FlexOwnProps, E>\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport function Flex<E extends FlexElementType = typeof DEFAULT_FLEX_ELEMENT>(\n props: FlexProps<E>,\n): React.JSX.Element {\n const {\n align,\n as = DEFAULT_FLEX_ELEMENT,\n direction = 'row',\n justify,\n wrap,\n ...rest\n } = props as FlexProps<typeof DEFAULT_FLEX_ELEMENT>\n\n return (\n <Box\n data-ui=\"Flex\"\n {...rest}\n alignItems={align}\n as={as}\n display=\"flex\"\n flexDirection={direction}\n flexWrap={wrap}\n justifyContent={justify}\n />\n )\n}\n","import {card, type CardStyleProps} from '@sanity/ui/css'\nimport {useContext} from 'react'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\nimport {CardContext} from './cardContext'\nimport {CardProvider} from './cardProvider'\n\n/** @public */\nexport const DEFAULT_CARD_ELEMENT = 'div'\n\n/** @public */\nexport interface CardOwnProps extends BoxOwnProps, CardStyleProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n disabled?: boolean\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/** @public */\nexport type CardElementType = BoxElementType\n\n/** @public */\nexport type CardProps<E extends CardElementType = CardElementType> = Props<CardOwnProps, E>\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(\n props: CardProps<E>,\n): React.JSX.Element {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as = DEFAULT_CARD_ELEMENT,\n className,\n disabled,\n pressed,\n radius = 0,\n scheme: schemeProp,\n selected,\n style,\n tone: toneProp = 'default',\n ...rest\n } = props as CardProps<typeof DEFAULT_CARD_ELEMENT>\n\n const parent = useContext(CardContext)\n const tone = toneProp === 'inherit' ? parent?.tone : toneProp\n const scheme = schemeProp === undefined ? parent?.scheme : schemeProp\n\n let node = (\n <Box\n data-ui=\"Card\"\n {...rest}\n as={as}\n className={card({\n className,\n scheme: scheme === parent?.scheme ? undefined : scheme,\n tone,\n })}\n data-checkered={checkered ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n radius={radius}\n style={style}\n />\n )\n\n if (scheme === parent?.scheme && tone === parent?.tone) {\n return node\n }\n\n node = (\n <CardProvider\n scheme={scheme ?? 'light'}\n tone={tone ?? 'default'}\n unstable_CompatProvider={parent?.unstable_CompatProvider}\n >\n {node}\n </CardProvider>\n )\n\n if (parent?.unstable_CompatProvider) {\n const CompatProvider = parent.unstable_CompatProvider\n\n return (\n <CompatProvider scheme={scheme ?? 'light'} tone={tone ?? parent.tone}>\n {node}\n </CompatProvider>\n )\n }\n\n return node\n}\n","import {type FocusEvent, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {Card, type CardElementType} from '../../primitives/card/card'\nimport type {Props} from '../../types'\nimport type {LayerElementType, LayerOwnProps} from './layer'\nimport {useLayer} from './useLayer'\n\n/** @internal */\nexport const DEFAULT_LAYER_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type LayerCardOwnProps = Omit<LayerOwnProps, 'zOffset'>\n\n/** @internal */\nexport type LayerCardElementType = LayerElementType\n\n/** @internal */\nexport type LayerCardProps<E extends LayerCardElementType = LayerCardElementType> = Props<\n LayerCardOwnProps,\n E\n>\n\n/** @internal */\nexport function LayerCard<E extends LayerCardElementType = typeof DEFAULT_LAYER_CARD_ELEMENT>(\n props: LayerCardProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_LAYER_CARD_ELEMENT,\n children,\n onActivate,\n onFocus,\n position = 'relative',\n ref: forwardedRef,\n style = EMPTY_RECORD,\n ...rest\n } = props as LayerCardProps<typeof DEFAULT_LAYER_CARD_ELEMENT>\n\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Card\n data-ui=\"Layer\"\n {...rest}\n as={as as CardElementType}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Card>\n )\n}\n","import {type Breakpoint, BREAKPOINTS} from '@sanity/ui/css'\nimport {useMemo, useSyncExternalStore} from 'react'\n\nconst media = Object.values(BREAKPOINTS)\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => Breakpoint\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index + 1] - 1}px)`\n }\n\n if (index === media.length - 1) {\n return `screen and (min-width: ${media[index]}px)`\n }\n\n return `screen and (min-width: ${media[index]}px) and (max-width: ${media[index + 1] - 1}px)`\n}\n\nfunction _createMediaStore(): _MediaStore {\n const mediaLen = media.length\n\n let sizes: {mq: MediaQueryList; index: number}[] | undefined = undefined\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (typeof window === 'undefined') {\n return sizes\n }\n\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes() ?? []) {\n if (mq.matches) return index as Breakpoint\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes() ?? []) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot(): Breakpoint {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): Breakpoint {\n const store = useMemo(() => _createMediaStore(), [])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\nimport {type ReactNode, useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useResponsiveProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = Object.values(zOffset).length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex) as Breakpoint\n const zIndex = parent ? parent.zIndex + (zOffset[mediaIndex] ?? 0) : (zOffset[mediaIndex] ?? 0)\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\n\nimport type {CardElementType, CardOwnProps} from '../../primitives/card/card'\nimport type {Props} from '../../types'\nimport {LayerCard} from './layerCard'\nimport {LayerProvider} from './layerProvider'\n\n/** @public */\nexport const DEFAULT_LAYER_ELEMENT = 'div'\n\n/** @public */\nexport type LayerOwnProps = CardOwnProps & {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport type LayerElementType = CardElementType\n\n/** @public */\nexport type LayerProps<E extends LayerElementType = LayerElementType> = Props<LayerOwnProps, E>\n\n/** @public */\nexport function Layer<E extends LayerElementType = typeof DEFAULT_LAYER_ELEMENT>(\n props: LayerProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_LAYER_ELEMENT,\n children,\n zOffset = 1,\n ...rest\n } = props as LayerProps<typeof DEFAULT_LAYER_ELEMENT>\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerCard {...rest} as={as}>\n {children}\n </LayerCard>\n </LayerProvider>\n )\n}\n","import type {Strategy} from '@floating-ui/react-dom'\nimport {popoverCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement} from '../../types'\nimport {Arrow} from '../arrow/arrow'\nimport {Flex} from '../flex/flex'\nimport {Layer, type LayerOwnProps, type LayerProps} from '../layer/layer'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\nimport type {PopoverMargins} from './types'\n\n/** @internal */\nexport const DEFAULT_POPOVER_LAYER_ELEMENT = 'div'\n\n/** @internal */\nexport type PopoverLayerOwnProps = LayerOwnProps & {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement: Placement\n referenceWidth?: number\n strategy: Strategy\n x: number | null\n y: number | null\n}\n\n/** @internal */\nexport type PopoverLayerProps = PopoverLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function PopoverLayer(props: PopoverLayerProps): React.JSX.Element {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n maxWidth,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n shadow,\n strategy,\n style,\n tone = 'inherit',\n x: xProp,\n y: yProp,\n ...rest\n } = props\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n top: y,\n width: referenceWidth,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, referenceWidth, style, x, y],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n className={popoverCard()}\n data-ui=\"Popover\"\n {...rest}\n as={motion.div}\n data-context-tone={tone}\n data-placement={placement}\n flexDirection=\"column\"\n display=\"flex\"\n position={strategy}\n radius={radius}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <Flex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n maxWidth={maxWidth}\n overflow={overflow}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {type MaxWidth, popover as popoverCss, type ResponsiveProp} from '@sanity/ui/css'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type ForwardedRef,\n type ReactElement,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport {origin} from '../../middleware/origin'\nimport type {ComponentType, Placement, Props} from '../../types'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {Portal} from '../../utils/portal/portal'\nimport {CardProvider} from '../card/cardProvider'\nimport {useCard} from '../card/useCard'\nimport {type LayerOwnProps} from '../layer/layer'\nimport {useLayer} from '../layer/useLayer'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {PopoverLayer} from './popoverLayer'\nimport type {PopoverMargins, PopoverUpdateCallback} from './types'\n\n/** @public */\nexport const DEFAULT_POPOVER_ELEMENT = 'div'\n\n/** @public */\nexport type PopoverOwnProps = Omit<LayerOwnProps, 'maxWidth'> & {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n *\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n placement?: Placement\n /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: ResponsiveProp<MaxWidth>\n}\n\n/** @public */\nexport type PopoverElementType = 'div' | ComponentType\n\n/** @public */\nexport type PopoverProps<E extends PopoverElementType = PopoverElementType> = Props<\n PopoverOwnProps,\n E\n>\n\nfunction ViewportOverlay() {\n const {zIndex} = useLayer()\n\n return (\n <div\n style={{\n position: 'fixed',\n inset: 0,\n width: '100vw',\n height: '100vh',\n zIndex,\n }}\n />\n )\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_ELEMENT>(\n props: PopoverProps<E>,\n): React.JSX.Element {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n as: as = DEFAULT_POPOVER_ELEMENT,\n children: childProp,\n className,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding,\n placement: placementProp = 'bottom',\n placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius = 3,\n ref: forwardedRef,\n referenceBoundary = boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = Z_OFFSETS.popover,\n updateRef,\n ...rest\n } = props as PopoverProps<typeof DEFAULT_POPOVER_ELEMENT>\n\n const card = useCard()\n\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const zOffset = useResponsiveProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${availableWidth}px`\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n placementProp,\n placementStrategy,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n if (!childProp) return\n\n const childRef = getElementRef(childProp)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const node = (\n <>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned\n before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverLayer\n {...rest}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n className={popoverCss({className})}\n hidden={referenceHidden}\n maxWidth={widthProp}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n x={x}\n y={y}\n zOffset={zOffset}\n >\n {content}\n </PopoverLayer>\n </>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n <CardProvider tone={tone === 'inherit' ? card.tone : tone} scheme={scheme ?? 'light'}>\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n","import {_selectable, type SelectableStyleProps} from '@sanity/ui/css'\nimport type {ElementTone} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box, type BoxOwnProps} from '../box/box'\n\n/** @internal */\nexport const DEFAULT_SELECTABLE_ELEMENT = 'button'\n\n/** @internal */\nexport type SelectableOwnProps = BoxOwnProps &\n SelectableStyleProps & {\n disabled?: boolean\n href?: string\n selected?: boolean\n tone?: ElementTone\n type?: 'button'\n }\n\n/** @internal */\nexport type SelectableElementType = 'button' | 'a' | ComponentType\n\n/** @internal */\nexport type SelectableProps<E extends SelectableElementType = SelectableElementType> = Props<\n SelectableOwnProps,\n E\n>\n\n/** @internal */\nexport function Selectable<E extends SelectableElementType = typeof DEFAULT_SELECTABLE_ELEMENT>(\n props: SelectableProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_SELECTABLE_ELEMENT,\n className,\n radius,\n selected,\n tone,\n ...rest\n } = props as SelectableProps<typeof DEFAULT_SELECTABLE_ELEMENT>\n\n return (\n <Box\n {...rest}\n as={as}\n className={_selectable({className, radius, tone})}\n data-selected={selected ? '' : undefined}\n />\n )\n}\n","import {stack} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type StackOwnProps = Omit<\n BoxOwnProps,\n | 'align'\n | 'alignItems'\n | 'columns'\n | 'gridTemplateColumns'\n | 'direction'\n | 'display'\n | 'flexDirection'\n | 'flexWrap'\n | 'gapX'\n | 'gapY'\n | 'justify'\n | 'justifyContent'\n | 'rows'\n | 'gridTemplateRows'\n>\n\n/** @public */\nexport type StackElementType = BoxElementType\n\n/** @public */\nexport type StackProps<E extends StackElementType = StackElementType> = Props<StackOwnProps, E>\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>(\n props: StackProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_STACK_ELEMENT,\n className,\n gap,\n ...rest\n } = props as StackProps<typeof DEFAULT_STACK_ELEMENT>\n\n return (\n <Box\n data-ui=\"Stack\"\n {...rest}\n as={as}\n gridAutoRows=\"min\"\n className={stack({className})}\n display=\"grid\"\n gap={gap}\n />\n )\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _inputElement,\n _inputPresentation,\n type InputStyleProps,\n type ResponsiveProp,\n textInput,\n textInputElement,\n textInputPrefix,\n textInputSuffix,\n} from '@sanity/ui/css'\nimport type {FontWeight, Space} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport {isRecord} from '../../lib/isRecord'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box/box'\nimport {Button, type ButtonProps} from '../button/button'\nimport {Text} from '../text/text'\n\n/** @public */\nexport const DEFAULT_TEXT_INPUT_ELEMENT = 'input'\n\n/** @public */\nexport type TextInputClearButtonProps = Omit<\n ButtonProps<'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/** @public */\nexport type TextInputOwnProps = InputStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n prefix?: ReactNode\n suffix?: ReactNode\n weight?: FontWeight\n}\n\n/** @public */\nexport type TextInputElementType = 'input' | ComponentType\n\n/** @public */\nexport type TextInputProps<E extends TextInputElementType = TextInputElementType> = Props<\n TextInputOwnProps,\n E\n>\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport function TextInput<E extends TextInputElementType = typeof DEFAULT_TEXT_INPUT_ELEMENT>(\n props: TextInputProps<E>,\n): React.JSX.Element {\n const {\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_INPUT_ELEMENT,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 2,\n gap = 3,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...rest\n } = props as TextInputProps<typeof DEFAULT_TEXT_INPUT_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n const responsivePadding = useResponsiveProp(padding)\n\n const withClearButton = Boolean(clearButton)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n const clearButtonBoxPadding = useMemo(() => {\n return Object.fromEntries(\n Object.entries(responsivePadding).map(([key, value]) => {\n if (value === 0) return [key, 0]\n if (value === 1) return [key, 1]\n if (value === 2) return [key, 1]\n\n return [key, typeof value === 'number' ? value - 2 : 0]\n }),\n ) as ResponsiveProp<Space>\n }, [responsivePadding])\n\n const clearButtonPadding = useMemo(() => {\n return Object.fromEntries(\n Object.entries(responsivePadding).map(([key, value]) => {\n if (value === 0) return [key, 0]\n if (value === 1) return [key, 0]\n if (value === 2) return [key, 1]\n\n return [key, typeof value === 'number' ? value - 1 : 0]\n }),\n ) as ResponsiveProp<Space>\n }, [responsivePadding])\n\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (isRecord(clearButton) ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n\n return (\n <Box\n alignItems=\"center\"\n className={textInput({\n className,\n border,\n fontSize,\n padding,\n radius,\n gap: gap,\n width,\n })}\n data-icon-left={IconComponent ? '' : undefined}\n data-icon-right={IconRightComponent ? '' : undefined}\n data-invalid={customValidity ? '' : undefined}\n data-prefix={prefix ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box className={textInputPrefix()} sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box className={textInputElement()} flex={1} position=\"relative\">\n <Element\n {...rest}\n className={_inputElement()}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box className={_inputPresentation()} position=\"absolute\">\n {IconComponent && (\n <Box padding={padding} position=\"absolute\" insetTop={0} insetLeft={0}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </Box>\n )}\n\n {!withClearButton && IconRightComponent && (\n <Box padding={padding} position=\"absolute\" insetTop={0} insetRight={0}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </Box>\n )}\n </Box>\n\n {!disabled && !readOnly && clearButton && (\n <Box\n insetTop={0}\n insetRight={0}\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={{zIndex: 2}}\n >\n <Button\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n display=\"block\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </Box>\n )}\n </Box>\n\n {suffix && (\n <Box className={textInputSuffix()} sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/** @public */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {kbd, type RadiusStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\nimport {Text} from '../text/text'\n\n/** @public */\nexport const DEFAULT_KBD_ELEMENT = 'kbd'\n\n/** @public */\nexport type KBDOwnProps = BoxOwnProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n }\n\n/** @public */\nexport type KBDElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type KBDProps<E extends KBDElementType = KBDElementType> = Props<KBDOwnProps, E>\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport function KBD<E extends KBDElementType = typeof DEFAULT_KBD_ELEMENT>(\n props: KBDProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_KBD_ELEMENT,\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n padding = 1,\n radius = 2,\n ...rest\n } = props as KBDProps<typeof DEFAULT_KBD_ELEMENT>\n\n return (\n <Box\n data-ui=\"KBD\"\n {...rest}\n as={as as BoxElementType}\n className={kbd({className, radius})}\n display={display}\n muted\n padding={padding}\n >\n <Text as=\"span\" muted size={fontSize} weight=\"medium\">\n {children}\n </Text>\n </Box>\n )\n}\n","import type {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space} from '@sanity/ui/theme'\n\nimport {Box} from '../../primitives/box/box'\nimport {KBD} from '../../primitives/kbd/kbd'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_HOTKEYS_ELEMENT = 'kbd'\n\n/** @public */\nexport interface HotkeysOwnProps extends GapStyleProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n keys?: string[]\n}\n\n/** @public */\nexport type HotkeysElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type HotkeysProps<E extends HotkeysElementType = HotkeysElementType> = Props<\n HotkeysOwnProps,\n E\n>\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport function Hotkeys<E extends HotkeysElementType = typeof DEFAULT_HOTKEYS_ELEMENT>(\n props: HotkeysProps<E>,\n): React.JSX.Element | undefined {\n const {\n as = DEFAULT_HOTKEYS_ELEMENT,\n fontSize,\n gap = 1,\n gapX,\n gapY,\n keys,\n padding,\n radius,\n ...rest\n } = props as HotkeysProps<typeof DEFAULT_HOTKEYS_ELEMENT>\n\n if (!keys || keys.length === 0) {\n return undefined\n }\n\n return (\n <Box as={as} data-ui=\"Hotkeys\" {...rest} display=\"flex\" gap={gap} gapX={gapX} gapY={gapY}>\n {keys.map((key, i) => (\n <KBD fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </KBD>\n ))}\n </Box>\n )\n}\n","import {type Context, type MouseEvent as ReactMouseEvent} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: ReactMouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: ReactMouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n}\n\nexport const MenuContext: Context<MenuContextValue | null> =\n createGlobalScopedContext<MenuContextValue | null>('@sanity/ui/v3/menu', null)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers/element'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {\n type KeyboardEvent,\n type KeyboardEventHandler,\n type MouseEvent,\n type MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {menu, type PaddingStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {Box} from '../../primitives/box/box'\nimport {useLayer} from '../../primitives/layer/useLayer'\nimport {Stack} from '../../primitives/stack/stack'\nimport type {ComponentType, Props} from '../../types'\nimport {MenuContext, type MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/** @public */\nexport const DEFAULT_MENU_ELEMENT = 'div'\n\n/** @public */\nexport type MenuOwnProps = PaddingStyleProps & {\n 'gap'?: ResponsiveProp<Space>\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n 'aria-labelledby'?: string\n}\n\n/** @public */\nexport type MenuElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type MenuProps<E extends MenuElementType = MenuElementType> = Props<MenuOwnProps, E>\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport function Menu<E extends MenuElementType = typeof DEFAULT_MENU_ELEMENT>(\n props: MenuProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_MENU_ELEMENT,\n children,\n className,\n gap = 1,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n ref: forwardedRef,\n registerElement,\n shouldFocus: _shouldFocus,\n ...rest\n } = props as MenuProps<typeof DEFAULT_MENU_ELEMENT>\n\n const shouldFocus = _shouldFocus ?? null\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({\n onKeyDown,\n originElement,\n shouldFocus,\n rootElementRef: ref,\n })\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Box\n data-ui=\"Menu\"\n {...rest}\n as={as}\n className={menu({className})}\n onKeyDown={handleKeyDown}\n overflow=\"auto\"\n outline=\"none\"\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack gap={gap}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n}\n","import {menuDivider} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_MENU_DIVIDER_ELEMENT = 'hr'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type MenuDividerOwnProps = {}\n\n/** @public */\nexport type MenuDividerElementType = 'div' | 'hr' | 'span' | ComponentType\n\n/** @public */\nexport type MenuDividerProps<E extends MenuDividerElementType = MenuDividerElementType> = Props<\n MenuDividerOwnProps,\n E\n>\n\n/** @public */\nexport function MenuDivider<E extends MenuDividerElementType = typeof DEFAULT_MENU_DIVIDER_ELEMENT>(\n props: MenuDividerProps<E>,\n): React.JSX.Element {\n const {\n as: Element = DEFAULT_MENU_DIVIDER_ELEMENT,\n className,\n ...rest\n } = props as MenuDividerProps<typeof DEFAULT_MENU_DIVIDER_ELEMENT>\n\n return <Element {...rest} className={menuDivider({className})} />\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, type MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport type {RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {ElementTone, FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Popover, type PopoverProps} from '../../primitives/popover/popover'\nimport {Selectable} from '../../primitives/selectable/selectable'\nimport {Text} from '../../primitives/text/text'\nimport type {ComponentType, Props} from '../../types'\nimport {DEFAULT_MENU_ELEMENT, Menu, type MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_GROUP_ELEMENT = 'button'\n\n/** @public */\nexport type MenuGroupOwnProps = RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n gap?: ResponsiveProp<Space>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps<typeof DEFAULT_MENU_ELEMENT>,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'open'>\n text?: ReactNode\n tone?: ElementTone\n}\n\n/** @public */\nexport type MenuGroupElementType = 'button' | ComponentType\n\n/** @public */\nexport type MenuGroupProps<E extends MenuGroupElementType = MenuGroupElementType> = Props<\n MenuGroupOwnProps,\n E\n>\n\n/** @public */\nexport function MenuGroup<E extends MenuGroupElementType = typeof DEFAULT_MENU_GROUP_ELEMENT>(\n props: MenuGroupProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_MENU_GROUP_ELEMENT,\n children,\n fontSize = 1,\n gap = 3,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n text,\n tone = 'default',\n ...rest\n } = props as MenuGroupProps<typeof DEFAULT_MENU_GROUP_ELEMENT>\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter,\n registerElement,\n } = useMenu()\n\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter?.(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n // data-as={as}\n data-ui=\"MenuGroup\"\n // forwardedAs={as}\n {...rest}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n as={as}\n // data-pressed={as !== 'button' ? withinMenu : undefined}\n // data-selected={!withinMenu && active ? '' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n radius={radius}\n ref={setRootElement}\n selected={withinMenu}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={gap} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n","import type {\n GapStyleProps,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {ElementTone, FontTextSize} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Selectable} from '../../primitives/selectable/selectable'\nimport {Text} from '../../primitives/text/text'\nimport type {ComponentType, Props} from '../../types'\nimport {Hotkeys} from '../hotkeys/hotkeys'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_ITEM_ELEMENT = 'button'\n\n/** @public */\nexport type MenuItemOwnProps = GapStyleProps &\n PaddingStyleProps &\n RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n hotkeys?: string[]\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n pressed?: boolean\n selected?: boolean\n text?: ReactNode\n tone?: ElementTone\n }\n\n/** @public */\nexport type MenuItemElementType = 'button' | 'a' | ComponentType\n\n/** @public */\nexport type MenuItemProps<E extends MenuItemElementType = MenuItemElementType> = Omit<\n Props<MenuItemOwnProps, E>,\n 'role'\n>\n\n/** @public */\nexport function MenuItem<E extends MenuItemElementType = typeof DEFAULT_MENU_ITEM_ELEMENT>(\n props: MenuItemProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_MENU_ITEM_ELEMENT,\n children,\n disabled,\n fontSize = 1,\n gap = 3,\n gapX,\n gapY,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n ref: forwardedRef,\n selected: selectedProp,\n text,\n tone = 'default',\n ...rest\n } = props as MenuItemProps<typeof DEFAULT_MENU_ITEM_ELEMENT>\n\n const menu = useMenu()\n const {activeElement, mount, onItemClick, onItemMouseEnter, onItemMouseLeave} = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLButtonElement | null>(null)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback((el: HTMLButtonElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...rest}\n as={as}\n data-pressed={pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n radius={radius}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={gap} gapX={gapX} gapY={gapY} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && <Hotkeys keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />}\n\n {IconRightComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {ElementTone, FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type FocusEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives/button/button'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TAB_ELEMENT = 'button'\n\n/** @public */\nexport type TabOwnProps = {\n /**\n * The `id` of the corresponding `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: ElementType | ReactNode\n 'focused'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'label'?: ReactNode\n 'padding'?: ResponsiveProp<Space>\n 'selected'?: boolean\n 'tone'?: ElementTone\n}\n\n/** @public */\nexport type TabElementType = 'button' | ComponentType\n\n/** @public */\nexport type TabProps<E extends TabElementType = TabElementType> = Props<TabOwnProps, E>\n\n/** @public */\nexport function Tab<E extends TabElementType = typeof DEFAULT_TAB_ELEMENT>(\n props: TabProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_TAB_ELEMENT,\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected,\n ...rest\n } = props as TabProps<typeof DEFAULT_TAB_ELEMENT>\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <Button\n data-ui=\"Tab\"\n {...rest}\n aria-selected={selected ? 'true' : 'false'}\n as={as}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n}\n","import {\n Children,\n cloneElement,\n type KeyboardEvent,\n type ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Flex, type FlexOwnProps} from '../../primitives/flex/flex'\nimport type {ComponentType, Props} from '../../types'\nimport type {TabProps} from './tab'\n\n/** @public */\nexport const DEFAULT_TAB_LIST_ELEMENT = 'div'\n\n/** @public */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/** @public */\nexport type TabListOwnProps = Omit<FlexOwnProps, 'as' | 'height'> & {\n children: TabListChild[]\n}\n\n/** @public */\nexport type TabListElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabListProps<E extends TabListElementType = TabListElementType> = Props<\n TabListOwnProps,\n E\n>\n\n/** @public */\nexport function TabList<E extends TabListElementType = typeof DEFAULT_TAB_LIST_ELEMENT>(\n props: TabListProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_TAB_LIST_ELEMENT,\n children: childrenProp,\n gap = 1,\n wrap = 'nowrap',\n ...rest\n } = props as TabListProps<typeof DEFAULT_TAB_LIST_ELEMENT>\n\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = Children.toArray(childrenProp).filter(_isReactElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <Flex\n data-ui=\"TabList\"\n {...rest}\n as={as}\n gap={gap}\n onKeyDown={handleKeyDown}\n role=\"tablist\"\n wrap={wrap}\n >\n {tabs}\n </Flex>\n )\n}\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n","import type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_GRID_ELEMENT = 'div'\n\n/** @public */\nexport type GridOwnProps = Omit<BoxOwnProps, 'display'>\n\n/** @public */\nexport type GridElementType = BoxElementType\n\n/** @public */\nexport type GridProps<E extends GridElementType = GridElementType> = Props<GridOwnProps, E>\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport function Grid<E extends GridElementType = typeof DEFAULT_GRID_ELEMENT>(\n props: GridProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_GRID_ELEMENT,\n children,\n ...rest\n } = props as GridProps<typeof DEFAULT_GRID_ELEMENT>\n\n return (\n <Box data-ui=\"Grid\" {...rest} as={as} display=\"grid\">\n {children}\n </Box>\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {type SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import type {Placement} from '../../types'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: Context<TooltipDelayGroupContextValue | null> =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/v3/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {motion, type MotionStyle} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement} from '../../types'\nimport {Arrow} from '../arrow/arrow'\nimport {Layer, type LayerOwnProps, type LayerProps} from '../layer/layer'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\n/* @internal */\nexport const DEFAULT_TOOLTIP_LAYER_ELEMENT = 'div'\n\n/* @internal */\nexport interface TooltipLayerOwnProps extends LayerOwnProps {\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement?: Placement\n}\n\n/** @internal */\nexport type TooltipLayerProps = TooltipLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function TooltipLayer(props: TooltipLayerProps): React.JSX.Element {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n tone = 'inherit',\n ...rest\n } = props\n\n const rootStyle: MotionStyle = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n data-ui=\"Tooltip__layer\"\n {...rest}\n as={motion.div}\n data-animate={animate ? '' : undefined}\n data-placement={placement}\n padding={padding}\n radius={radius}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n tone={tone}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {type RadiusStyleProps, type ShadowStyleProps, tooltip} from '@sanity/ui/css'\nimport type {CardTone, ColorScheme} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type FocusEvent,\n type HTMLAttributes,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n type ReactNode,\n type RefAttributes,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport type {ComponentType, Delay, Placement, Props} from '../../types'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {CardProvider} from '../card/cardProvider'\nimport {useCard} from '../card/useCard'\nimport type {LayerOwnProps} from '../layer/layer'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\nimport {TooltipLayer} from './tooltipLayer'\n\n/** @public */\nexport const DEFAULT_TOOLTIP_ELEMENT = 'div'\n\n/** @public */\nexport type TooltipOwnProps = LayerOwnProps &\n RadiusStyleProps &\n ShadowStyleProps & {\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: ReactElement<HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>>\n content?: ReactNode\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n disabled?: boolean\n fallbackPlacements?: Placement[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n scheme?: ColorScheme\n tone?: CardTone\n }\n\n/** @public */\nexport type TooltipElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TooltipProps<E extends TooltipElementType = TooltipElementType> = Props<\n TooltipOwnProps,\n E\n>\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_ELEMENT>(\n props: TooltipProps<E>,\n): React.JSX.Element {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n as = DEFAULT_TOOLTIP_ELEMENT,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n className,\n content,\n delay,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 3,\n ref: forwardedRef,\n scheme,\n shadow = 2,\n zOffset = Z_OFFSETS.tooltip,\n tone = 'inherit',\n ...rest\n } = props as TooltipProps<typeof DEFAULT_TOOLTIP_ELEMENT>\n\n const card = useCard()\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n transform: false,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const node = (\n <TooltipLayer\n data-ui=\"Tooltip\"\n {...rest}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n className={tooltip({className})}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n tone={tone}\n zOffset={zOffset}\n >\n {content}\n </TooltipLayer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n <CardProvider tone={tone === 'inherit' ? card.tone : tone} scheme={scheme ?? 'light'}>\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {type ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport interface PortalProviderProps {\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/** @public */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n const {children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: null,\n element: element || fallbackElement,\n elements,\n }\n }, [element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n"],"names":["EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","type","visualDuration","bounce","Z_OFFSETS","dialog","popover","tooltip","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","isArray","val","Array","isRecord","value","Boolean","_getArrayProp","defaultVal","undefined","_getResponsiveProp","useResponsiveProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","DEFAULT_BOX_ELEMENT","Box","props","alignItems","borderBottom","borderLeft","borderRight","borderTop","children","className","flex","flexDirection","flexWrap","gap","gapX","gapY","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","gridTemplateColumns","gridTemplateRows","height","inset","insetBottom","insetLeft","insetRight","insetTop","justifyContent","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","maxWidth","muted","outline","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","rest","shadow","t2","t3","t4","t5","t6","t7","t8","textAlign","width","as","border","display","margin","minHeight","minWidth","padding","sizing","Element","t9","box","t10","DEFAULT_TEXT_ELEMENT","Text","align","textOverflowProp","size","textOverflow","weight","text","jsx","AnimatedSpinnerIcon","Symbol","for","animatedSpinnerIcon","SpinnerIcon","DEFAULT_SPINNER_ELEMENT","Spinner","spinner","DEFAULT_BUTTON_ELEMENT","Button","disabled","fontSize","icon","IconComponent","iconRight","IconRightComponent","justify","loading","mode","selected","textWeight","tone","href","jsxs","button","buttonLoadingBox","isValidElement","isValidElementType","useMatchMedia","mediaQueryString","getServerSnapshot","useDebugValue","onStoreChange","media","window","matchMedia","addEventListener","removeEventListener","matches","useSyncExternalStore","usePrefersReducedMotion","_temp","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","includes","originX","originY","clamp","data","num","min","max","Math","getGlobalScope","globalThis","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","document","createContext","symbolMap","BoundaryElementContext","DEFAULT_VALUE","version","useBoundaryElement","useContext","getElementRef","getter","Object","getOwnPropertyDescriptor","get","mayWarn","isReactWarning","ref","CardContext","CardProvider","scheme","unstable_CompatProvider","useCard","elementKey","elementMap","defaultContextValue","boundaryElement","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","elements","createPortal","getLayerContext","contextValue","LayerContext","useLayer","err","message","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","top","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","moveTowardsLength","movingPoint","targetPoint","amount","distance","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","len","length","cmds","i","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","push","compileCommands","map","n","idx","join","DEFAULT_ARROW_ELEMENT","Arrow","h","style","w","center","path","strokePath","fillPath","_arrow","assignInlineVars","vars","arrow","_arrowSvg","_arrowStrokeMask","t11","t12","_arrowStroke","t13","t14","_arrowShape","t15","t16","t17","DEFAULT_FLEX_ELEMENT","Flex","wrap","direction","DEFAULT_CARD_ELEMENT","Card","pressed","schemeProp","__unstable_checkered","__unstable_focusRing","checkered","focusRing","toneProp","parent","CompatProvider","t18","t19","t20","DEFAULT_LAYER_CARD_ELEMENT","LayerCard","forwardedRef","onActivate","onFocus","zIndex","isTopLayer","lastFocusedRef","useRef","isTopLayerRef","current","useImperativeHandle","activeElement","useEffect","event","rootElement","target","handleFocus","values","BREAKPOINTS","_getMediaQuery","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","getSnapshot","subscribe","disposeFns","handleChange","disposeFn","useMediaIndex","store","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","setChildLayers","setSize","childLevel","parentDispose","state","prevLen","nextState","keys","state_0","nextState_0","_temp2","v_0","v","DEFAULT_LAYER_ELEMENT","Layer","PopoverLayer","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","popoverCard","motion","div","DEFAULT_POPOVER_ELEMENT","ViewportOverlay","Popover","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","content","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","placementStrategy","preventOverflow","referenceBoundary","referenceElement","widthProp","updateRef","referenceWidthRef","middleware","useMemo","ret","autoPlacement","allowedPlacements","concat","flip","offset","mainAxis","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","child","cloneElement","Fragment","popoverCss","AnimatePresence","DEFAULT_SELECTABLE_ELEMENT","Selectable","_selectable","DEFAULT_STACK_ELEMENT","Stack","stack","useCustomValidity","customValidity","setCustomValidity","DEFAULT_TEXT_INPUT_ELEMENT","TextInput","__unstable_disableFocusRing","clearButton","onClear","prefix","readOnly","suffix","t21","t22","t23","t24","t25","t26","t27","_width","t28","t29","responsivePadding","withClearButton","handleClearMouseDown","event_0","preventDefault","stopPropagation","focus","handleClearClick","fromEntries","entries","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","textInputPrefix","textInputElement","_inputElement","_inputPresentation","t30","t31","t32","CloseIcon","t33","t34","textInputSuffix","t35","key_0","value_0","useClickOutsideEvent","listener","elementsArg","evt","resolvedBoundaryElement","flat","el","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","useGlobalKeyDown","onKeyDown","handleKeyDown","handler","DEFAULT_KBD_ELEMENT","KBD","kbd","DEFAULT_HOTKEYS_ELEMENT","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","filter","_getDOMPath","e","parentElement","from","childNodes","indexOf","unshift","EMPTY_PATH","_sortElements","WeakMap","set","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","splice","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","requestAnimationFrame","cancelAnimationFrame","DEFAULT_MENU_ELEMENT","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","onMouseEnter","onMouseLeave","menu","DEFAULT_MENU_DIVIDER_ELEMENT","MenuDivider","menuDivider","useMenu","DEFAULT_MENU_GROUP_ELEMENT","MenuGroup","menuProps","onClick","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMouseEnter","handleMenuKeyDown","event_1","handleClick","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","DEFAULT_MENU_ITEM_ELEMENT","MenuItem","hotkeys","selectedProp","paddingProps","setRef","DEFAULT_TAB_ELEMENT","Tab","focused","id","label","focusedRef","handleBlur","DEFAULT_TAB_LIST_ELEMENT","TabList","childrenProp","setFocusedIndex","Children","toArray","_isReactElement","childIndex","tabs","numTabs","prevIndex","prevIndex_0","DEFAULT_GRID_ELEMENT","Grid","usePrefersDark","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipLayer","DEFAULT_TOOLTIP_ELEMENT","Tooltip","portalProp","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","transform","tooltipId","useId","isOpen","setIsOpen","delayGroupContext","setIsGroupActive","setOpenTooltipId","showTooltip","openTooltipId","isInsideGroup","openDelayProp","closeDelayProp","close","openDelay","closeDelay","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","onBlur","handleContextMenu","onContextMenu","handleMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every"],"mappings":";;AAEO,MAAMA,cAAuB,CAAA,GAEvBC,eAAsC,CAAA,GAOtCC,uBAaT;AAAA,EACFC,MAAM;AAAA,IACJC,SAAS;AAAA,MACPC,OAAO;AAAA,MACPC,YAAY;AAAA,IACd;AAAA,IACAC,QAAQ;AAAA,MACNC,SAAS;AAAA,IACX;AAAA,IACAC,SAAS;AAAA,MACPD,SAAS;AAAA,MACTE,YAAY;AAAA,QACVC,MAAM;AAAA,QACNC,UAAUC;AAAAA,MAAAA;AAAAA,IAEd;AAAA,IACAC,SAAS;AAAA,MACPT,OAAO;AAAA,IACT;AAAA,IACAU,UAAU;AAAA,MACRV,OAAO;AAAA,IAAA;AAAA,EAEX;AAAA,EASAK,YAAY;AAAA,IACVM,MAAM;AAAA,IACNC,gBAAgBJ;AAAAA,IAChBK,QAAQ;AAAA,EAAA;AAEZ,GAEaC,YAAY;AAAA,EACvBC,QAAQ;AAAA,EACRC,SAAS;AAAA,EACTC,SAAS;AACX;AC/DO,SAASC,uBAAuBC,SAA+B;AACpE,SAAOC,oBAAoBD,OAAO,KAAKE,oBAAoBF,OAAO;AACpE;AAKO,SAASG,cAAcC,MAAoC;AAChE,SAAOA,gBAAgBC,QAAQD,KAAKE,aAAaD,KAAKE;AACxD;AAKO,SAASN,oBAAoBD,SAAgD;AAClF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASC,mBAAmBT,SAA+C;AAChF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASN,oBAAoBF,SAAgD;AAClF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASE,oBAAoBV,SAAgD;AAClF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASG,sBAAsBX,SAAkD;AACtF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKgBI,SAAAA,wBAAwBZ,SAAsBI,MAAqB;AACjF,SAAOJ,QAAQa,SAAST,IAAI,KAAKJ,YAAYI;AAC/C;ACtDO,SAASU,QAAQC,KAAgC;AAC/CC,SAAAA,MAAMF,QAAQC,GAAG;AAC1B;ACFO,SAASE,SAASC,OAAkD;AAClEC,SAAAA,CAAAA,EAAQD,SAAS,OAAOA,SAAU,YAAY,CAACF,MAAMF,QAAQI,KAAK;AAC3E;ACOgBE,SAAAA,cAAiBL,KAA0BM,YAAuB;AAC5EN,SAAAA,QAAQO,SAAkBD,cAAc7C,cAErCwC,MAAMF,QAAQC,GAAG,IAAIA,MAAM,CAACA,GAAG;AACxC;AAKgBQ,SAAAA,mBACdR,KACAM,YACgC;AAChC,SAAIN,QAAQO,SACFD,cAAc7C,cAGhBsC,QAAQC,GAAG,KAAKE,SAASF,GAAG,IAAIA,MAAM,CAACA,GAAG;AACpD;AClBOS,SAAAA,kBAAAT,KAAAM,YAAA;AAAAI,QAAAA,IAAAC,kBAAA,CAAA;AAAAC,MAAAA;AAAAF,IAAAJ,CAAAA,MAAAA,cAAAI,SAAAV,OAKHY,KAAAA,MAAA,CAAOJ,mBAAmBR,KAAKM,UAAU,GAAGO,KAAAC,UAAed,OAAOM,UAAU,CAAC,GAACI,OAAAJ,YAAAI,OAAAV,KAAAU,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AADhF,QAAA,CAAAK,IAAAC,QAAA,IAA4CC,MAAAA,SAC1CL,EACF,GAFO,CAAAM,WAAAC,UAAA,IAAAJ,IAIPK,OAAaP,KAAAC,UAAed,OAAOM,UAAU;AAEzCc,SAAAA,SAASD,cAIXH,SAAQ,CAAER,mBAAmBR,KAAKM,UAAU,GAAGc,IAAI,CAAC,GAG/CF;AAAS;ACrBX,MAAMG,sBAAsB;AA8C5B,SAAAC,IAAAC,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,GAAA,GA+EDC,KAAAW;AAA6C,MAAAC,YAAAC,cAAAC,YAAAC,aAAAC,WAAAC,UAAAC,WAAAC,MAAAC,eAAAC,UAAAC,KAAAC,MAAAC,MAAAC,iBAAAC,cAAAC,cAAAC,YAAAC,eAAAC,iBAAAC,SAAAC,YAAAC,cAAAC,qBAAAC,kBAAAC,QAAAC,OAAAC,aAAAC,WAAAC,YAAAC,UAAAC,gBAAAC,cAAAC,YAAAC,aAAAC,WAAAC,SAAAC,SAAAC,UAAAC,OAAAC,SAAAC,UAAAC,WAAAC,WAAAC,eAAAC,aAAAC,cAAAC,YAAAC,UAAAC,UAAAC,eAAAC,UAAAC,QAAAC,MAAAC,QAAA9D,IAAA+D,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC,WAAAC;AAAA5E,WAAAE,MA5EjD;AAAA,IAAAY;AAAAA,IAAA+D,IAAAxE;AAAAA,IAAAyE,QAAAV;AAAAA,IAAAlD;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAI;AAAAA,IAAAD;AAAAA,IAAA4D,SAAAV;AAAAA,IAAAhD;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAoC,QAAAV;AAAAA,IAAArB;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAK;AAAAA,IAAA8B,WAAAV;AAAAA,IAAAW,UAAAV;AAAAA,IAAApB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA2B,SAAAV;AAAAA,IAAAZ;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAK;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,IAAAiB,QAAAV;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA,GAAAV;AAAAA,EA4EIhE,IAAAA,IAA6CF,OAAAE,IAAAF,OAAAc,YAAAd,OAAAe,cAAAf,OAAAgB,YAAAhB,OAAAiB,aAAAjB,OAAAkB,WAAAlB,OAAAmB,UAAAnB,OAAAoB,WAAApB,OAAAqB,MAAArB,OAAAsB,eAAAtB,QAAAuB,UAAAvB,QAAAwB,KAAAxB,QAAAyB,MAAAzB,QAAA0B,MAAA1B,QAAA2B,iBAAA3B,QAAA4B,cAAA5B,QAAA6B,cAAA7B,QAAA8B,YAAA9B,QAAA+B,eAAA/B,QAAAgC,iBAAAhC,QAAAiC,SAAAjC,QAAAkC,YAAAlC,QAAAmC,cAAAnC,QAAAoC,qBAAApC,QAAAqC,kBAAArC,QAAAsC,QAAAtC,QAAAuC,OAAAvC,QAAAwC,aAAAxC,QAAAyC,WAAAzC,QAAA0C,YAAA1C,QAAA2C,UAAA3C,QAAA4C,gBAAA5C,QAAA6C,cAAA7C,QAAA8C,YAAA9C,QAAA+C,aAAA/C,QAAAgD,WAAAhD,QAAAiD,SAAAjD,QAAAkD,SAAAlD,QAAAmD,UAAAnD,QAAAoD,OAAApD,QAAAqD,SAAArD,QAAAsD,UAAAtD,QAAAuD,WAAAvD,QAAAwD,WAAAxD,QAAAyD,eAAAzD,QAAA0D,aAAA1D,QAAA2D,cAAA3D,QAAA4D,YAAA5D,QAAA6D,UAAA7D,QAAA8D,UAAA9D,QAAA+D,eAAA/D,QAAAgE,UAAAhE,QAAAiE,QAAAjE,QAAAkE,MAAAlE,QAAAmE,QAAAnE,QAAAK,IAAAL,QAAAoE,IAAApE,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAuE,IAAAvE,QAAAwE,IAAAxE,QAAAyE,IAAAzE,QAAA0E,IAAA1E,QAAA2E,WAAA3E,QAAA4E,UAAA9D,aAAAd,EAAA,CAAA,GAAAe,eAAAf,EAAA,CAAA,GAAAgB,aAAAhB,EAAA,CAAA,GAAAiB,cAAAjB,EAAA,CAAA,GAAAkB,YAAAlB,EAAA,CAAA,GAAAmB,WAAAnB,EAAA,CAAA,GAAAoB,YAAApB,EAAA,CAAA,GAAAqB,OAAArB,EAAA,CAAA,GAAAsB,gBAAAtB,EAAA,CAAA,GAAAuB,WAAAvB,EAAA,EAAA,GAAAwB,MAAAxB,EAAA,EAAA,GAAAyB,OAAAzB,EAAA,EAAA,GAAA0B,OAAA1B,EAAA,EAAA,GAAA2B,kBAAA3B,EAAA,EAAA,GAAA4B,eAAA5B,EAAA,EAAA,GAAA6B,eAAA7B,EAAA,EAAA,GAAA8B,aAAA9B,EAAA,EAAA,GAAA+B,gBAAA/B,EAAA,EAAA,GAAAgC,kBAAAhC,EAAA,EAAA,GAAAiC,UAAAjC,EAAA,EAAA,GAAAkC,aAAAlC,EAAA,EAAA,GAAAmC,eAAAnC,EAAA,EAAA,GAAAoC,sBAAApC,EAAA,EAAA,GAAAqC,mBAAArC,EAAA,EAAA,GAAAsC,SAAAtC,EAAA,EAAA,GAAAuC,QAAAvC,EAAA,EAAA,GAAAwC,cAAAxC,EAAA,EAAA,GAAAyC,YAAAzC,EAAA,EAAA,GAAA0C,aAAA1C,EAAA,EAAA,GAAA2C,WAAA3C,EAAA,EAAA,GAAA4C,iBAAA5C,EAAA,EAAA,GAAA6C,eAAA7C,EAAA,EAAA,GAAA8C,aAAA9C,EAAA,EAAA,GAAA+C,cAAA/C,EAAA,EAAA,GAAAgD,YAAAhD,EAAA,EAAA,GAAAiD,UAAAjD,EAAA,EAAA,GAAAkD,UAAAlD,EAAA,EAAA,GAAAmD,WAAAnD,EAAA,EAAA,GAAAoD,QAAApD,EAAA,EAAA,GAAAqD,UAAArD,EAAA,EAAA,GAAAsD,WAAAtD,EAAA,EAAA,GAAAuD,YAAAvD,EAAA,EAAA,GAAAwD,YAAAxD,EAAA,EAAA,GAAAyD,gBAAAzD,EAAA,EAAA,GAAA0D,cAAA1D,EAAA,EAAA,GAAA2D,eAAA3D,EAAA,EAAA,GAAA4D,aAAA5D,EAAA,EAAA,GAAA6D,WAAA7D,EAAA,EAAA,GAAA8D,WAAA9D,EAAA,EAAA,GAAA+D,gBAAA/D,EAAA,EAAA,GAAAgE,WAAAhE,EAAA,EAAA,GAAAiE,SAAAjE,EAAA,EAAA,GAAAkE,OAAAlE,EAAA,EAAA,GAAAmE,SAAAnE,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAAoE,KAAApE,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA,GAAAsE,KAAAtE,EAAA,EAAA,GAAAuE,KAAAvE,EAAA,EAAA,GAAAwE,KAAAxE,EAAA,EAAA,GAAAyE,KAAAzE,EAAA,EAAA,GAAA0E,KAAA1E,EAAA,EAAA,GAAA2E,YAAA3E,EAAA,EAAA,GAAA4E,QAAA5E,EAAA,EAAA;AA1E3C,QAAAqF,UAAAhF,OAA6BR,SAAAc,sBAA7BN,IAIJyE,SAAAV,OAAcvE,cAAduE,IAWAW,UAAAV,OAAiBxE,SAAP,UAAVwE,IAyBAW,SAAAV,OAAUzE,aAAVyE,IAQAW,YAAAV,OAAa1E,aAAb0E,IACAW,WAAAV,OAAY3E,aAAZ2E,IAMAW,UAAAV,OAAW5E,aAAX4E,IAeAW,SAAAV,OAAiB7E,SAAR,WAAT6E;AAAiBY,MAAAA;AAAAtF,IAAAc,EAAAA,MAAAA,cAAAd,EAAA8E,EAAAA,MAAAA,UAAA9E,EAAAe,EAAAA,MAAAA,gBAAAf,UAAAgB,cAAAhB,EAAA,EAAA,MAAAiB,eAAAjB,EAAA,EAAA,MAAAkB,aAAAlB,EAAA,EAAA,MAAAoB,aAAApB,EAAA+E,EAAAA,MAAAA,WAAA/E,EAAAqB,EAAAA,MAAAA,QAAArB,EAAAsB,EAAAA,MAAAA,iBAAAtB,EAAAuB,EAAAA,MAAAA,YAAAvB,EAAAwB,EAAAA,MAAAA,OAAAxB,EAAAyB,EAAAA,MAAAA,QAAAzB,EAAA0B,EAAAA,MAAAA,QAAA1B,EAAA2B,EAAAA,MAAAA,mBAAA3B,EAAA,EAAA,MAAA4B,gBAAA5B,EAAA,EAAA,MAAA6B,gBAAA7B,EAAA,EAAA,MAAA8B,cAAA9B,EAAA,EAAA,MAAA+B,iBAAA/B,EAAA,EAAA,MAAAgC,mBAAAhC,EAAA,EAAA,MAAAiC,WAAAjC,EAAA,EAAA,MAAAkC,cAAAlC,EAAA,EAAA,MAAAmC,gBAAAnC,EAAAoC,EAAAA,MAAAA,uBAAApC,EAAAqC,EAAAA,MAAAA,oBAAArC,EAAAsC,EAAAA,MAAAA,UAAAtC,EAAAuC,EAAAA,MAAAA,SAAAvC,EAAAwC,EAAAA,MAAAA,eAAAxC,EAAAyC,EAAAA,MAAAA,aAAAzC,EAAA0C,EAAAA,MAAAA,cAAA1C,UAAA2C,YAAA3C,EAAA,EAAA,MAAA4C,kBAAA5C,EAAA,EAAA,MAAAgF,UAAAhF,EAAA,EAAA,MAAA6C,gBAAA7C,EAAA8C,EAAAA,MAAAA,cAAA9C,EAAA+C,GAAAA,MAAAA,eAAA/C,EAAAgD,GAAAA,MAAAA,aAAAhD,EAAAiD,GAAAA,MAAAA,WAAAjD,EAAA,GAAA,MAAAkD,WAAAlD,EAAA,GAAA,MAAAmD,YAAAnD,EAAA,GAAA,MAAAiF,aAAAjF,EAAA,GAAA,MAAAkF,YAAAlF,EAAA,GAAA,MAAAoD,SAAApD,EAAA,GAAA,MAAAqD,WAAArD,EAAA,GAAA,MAAAsD,YAAAtD,EAAA,GAAA,MAAAuD,aAAAvD,EAAAwD,GAAAA,MAAAA,aAAAxD,EAAAmF,GAAAA,MAAAA,WAAAnF,EAAAyD,GAAAA,MAAAA,iBAAAzD,EAAA0D,GAAAA,MAAAA,eAAA1D,EAAA2D,GAAAA,MAAAA,gBAAA3D,EAAA4D,GAAAA,MAAAA,cAAA5D,EAAA6D,GAAAA,MAAAA,YAAA7D,WAAA8D,YAAA9D,EAAA,GAAA,MAAA+D,iBAAA/D,EAAA,GAAA,MAAAgE,YAAAhE,EAAA,GAAA,MAAAiE,UAAAjE,EAAA,GAAA,MAAAmE,UAAAnE,EAAA,GAAA,MAAAoF,UAAApF,EAAA,GAAA,MAAA2E,aAAA3E,EAAA,GAAA,MAAA4E,SAUJU,KAAAC,IAAAA,IAAA;AAAA,IAAAnE;AAAAA,IAAAN;AAAAA,IAAAgE;AAAAA,IAAA5D;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAA+D;AAAAA,IAAA1D;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAoC;AAAAA,IAAA/B;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAK;AAAAA,IAAA8B;AAAAA,IAAAC;AAAAA,IAAA9B;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA2B;AAAAA,IAAAtB;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAK;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,IAAAiB;AAAAA,IAAAT;AAAAA,IAAAC;AAAAA,EAyEV,CAAA,GAAC5E,QAAAc,YAAAd,QAAA8E,QAAA9E,QAAAe,cAAAf,QAAAgB,YAAAhB,QAAAiB,aAAAjB,QAAAkB,WAAAlB,QAAAoB,WAAApB,QAAA+E,SAAA/E,QAAAqB,MAAArB,QAAAsB,eAAAtB,QAAAuB,UAAAvB,QAAAwB,KAAAxB,QAAAyB,MAAAzB,QAAA0B,MAAA1B,QAAA2B,iBAAA3B,QAAA4B,cAAA5B,QAAA6B,cAAA7B,QAAA8B,YAAA9B,QAAA+B,eAAA/B,QAAAgC,iBAAAhC,QAAAiC,SAAAjC,QAAAkC,YAAAlC,QAAAmC,cAAAnC,QAAAoC,qBAAApC,QAAAqC,kBAAArC,QAAAsC,QAAAtC,QAAAuC,OAAAvC,QAAAwC,aAAAxC,QAAAyC,WAAAzC,QAAA0C,YAAA1C,QAAA2C,UAAA3C,QAAA4C,gBAAA5C,QAAAgF,QAAAhF,QAAA6C,cAAA7C,QAAA8C,YAAA9C,SAAA+C,aAAA/C,SAAAgD,WAAAhD,SAAAiD,SAAAjD,SAAAkD,SAAAlD,SAAAmD,UAAAnD,SAAAiF,WAAAjF,SAAAkF,UAAAlF,SAAAoD,OAAApD,SAAAqD,SAAArD,SAAAsD,UAAAtD,SAAAuD,WAAAvD,SAAAwD,WAAAxD,SAAAmF,SAAAnF,SAAAyD,eAAAzD,SAAA0D,aAAA1D,SAAA2D,cAAA3D,SAAA4D,YAAA5D,SAAA6D,UAAA7D,SAAA8D,UAAA9D,SAAA+D,eAAA/D,SAAAgE,UAAAhE,SAAAiE,QAAAjE,SAAAmE,QAAAnE,SAAAoF,QAAApF,SAAA2E,WAAA3E,SAAA4E,OAAA5E,SAAAsF,MAAAA,KAAAtF,EAAA,GAAA;AAAAwF,MAAAA;AAAAxF,SAAAA,EAAA,GAAA,MAAAqF,WAAArF,EAAAmB,GAAAA,MAAAA,YAAAnB,EAAAkE,GAAAA,MAAAA,QAAAlE,WAAAsF,MA5EJE,qCAAC,WACS,WAAA,UACJtB,MACO,WAAAoB,cA4Eb,GAAUtF,SAAAqF,SAAArF,SAAAmB,UAAAnB,SAAAkE,MAAAlE,SAAAsF,IAAAtF,SAAAwF,OAAAA,MAAAxF,EAAA,GAAA,GA/EVwF;AA+EU;AC/MP,MAAMC,uBAAuB;AA4B7B,SAAAC,KAAA7E,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAeDC,KAAAW;AAA+C8E,MAAAA,OAAAxE,UAAAC,WAAAC,MAAA+B,OAAAc,MAAA7D,IAAA+D,IAAAC,IAAAC,IAAAsB;AAAA5F,WAAAE,MAZnD;AAAA,IAAAyF;AAAAA,IAAAd,IAAAxE;AAAAA,IAAAc;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA8B,UAAAiB;AAAAA,IAAAhB;AAAAA,IAAAyC,MAAAxB;AAAAA,IAAAyB,cAAAF;AAAAA,IAAAG,QAAAzB;AAAAA,IAAA,GAAAJ;AAAAA,EAAAA,IAYIhE,IAA+CF,OAAAE,IAAAF,OAAA2F,OAAA3F,OAAAmB,UAAAnB,OAAAoB,WAAApB,OAAAqB,MAAArB,OAAAoD,OAAApD,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,IAAApE,OAAAqE,IAAArE,QAAAsE,IAAAtE,QAAA4F,qBAAAD,QAAA3F,EAAA,CAAA,GAAAmB,WAAAnB,EAAA,CAAA,GAAAoB,YAAApB,EAAA,CAAA,GAAAqB,OAAArB,EAAA,CAAA,GAAAoD,QAAApD,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAAqE,KAAArE,EAAA,CAAA,GAAAsE,KAAAtE,EAAA,EAAA,GAAA4F,mBAAA5F,EAAA,EAAA;AAV7C,QAAAqF,UAAAhF,OAA8BR,SAAA4F,uBAA9BpF,IAIJ8C,WAAAiB,OAAiBvE,SAAN,SAAXuE,IAEAyB,QAAAxB,OAAQxE,aAARwE,IAEA0B,SAAAzB,OAAkBzE,SAAT,YAATyE;AAAkBC,MAAAA;AAAAvE,IAAA2F,EAAAA,MAAAA,SAAA3F,EAAAoB,EAAAA,MAAAA,aAAApB,EAAAqB,EAAAA,MAAAA,QAAArB,UAAAmD,YAAAnD,EAAA,EAAA,MAAAoD,SAAApD,EAAA,EAAA,MAAA6F,SAAA7F,EAAA,EAAA,MAAA+F,UAQLxB,KAAAyB,IAAAA,KAAA;AAAA,IAAA5E;AAAAA,IAAAuE;AAAAA,IAAAtE;AAAAA,IAAA8B;AAAAA,IAAAC;AAAAA,IAAAyC,MAAAA;AAAAA,IAAAE;AAAAA,EAAAA,CAQV,GAAC/F,QAAA2F,OAAA3F,QAAAoB,WAAApB,QAAAqB,MAAArB,QAAAmD,UAAAnD,QAAAoD,OAAApD,QAAA6F,OAAA7F,QAAA+F,QAAA/F,QAAAuE,MAAAA,KAAAvE,EAAA,EAAA;AAAAwE,MAAAA;AAAAxE,YAAA4F,oBAGWpB,KAAAsB,IAAAA,aAAA;AAAA,IAAAA,cACKF;AAAAA,EACf,CAAA,GAAC5F,QAAA4F,kBAAA5F,QAAAwE,MAAAA,KAAAxE,EAAA,EAAA;AAAAyE,MAAAA;AAAAzE,IAAAmB,EAAAA,MAAAA,YAAAnB,UAAAwE,MAHJC,KAAAwB,2BAAAA,IAAA,QACa,EAAA,WAAAzB,IAIVrD,SAAAA,CACH,GAAOnB,QAAAmB,UAAAnB,QAAAwE,IAAAxE,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA;AAAA0E,MAAAA;AAAA1E,SAAAA,EAAA,EAAA,MAAAqF,WAAArF,EAAAkE,EAAAA,MAAAA,QAAAlE,EAAAuE,EAAAA,MAAAA,MAAAvE,UAAAyE,MAnBTC,KAAAuB,+BAAC,WACS,WAAA,QAAM,GACV/B,MACO,WAAAK,IAUXE,cAOF,GAAUzE,QAAAqF,SAAArF,QAAAkE,MAAAlE,QAAAuE,IAAAvE,QAAAyE,IAAAzE,QAAA0E,MAAAA,KAAA1E,EAAA,EAAA,GApBV0E;AAoBU;AClEP,SAAAwB,oBAAArF,OAAA;AAAAb,QAAAA,IAAAC,kBAAA,CAAA;AAAAiE,MAAAA;AAAAlE,WAAAa,SAGL;AAAA,IAAA,GAAAqD;AAAAA,EAAkBrD,IAAAA,OAAKb,OAAAa,OAAAb,OAAAkE,QAAAA,OAAAlE,EAAA,CAAA;AAAAE,MAAAA;AAAAF,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAGiDlG,KAAAmG,IAAoB,oBAAA,GAACrG,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAAAK,MAAAA;AAAAL,SAAAA,SAAAkE,QAA3F7D,oCAACiG,MAA6B,aAAA,EAAA,oBAAA,oBAAkB,GAAKpC,MAAiB,WAAAhE,GAAyB,CAAA,GAAAF,OAAAkE,MAAAlE,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAA/FK;AAA+F;ACH5F,MAAMkG,0BAA0B;AAsBhC,SAAAC,QAAA3F,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAODC,KAAAW;AAAqD,MAAAO,WAAA8C,MAAA7D;AAAAL,WAAAE,MAJzD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAe;AAAAA,IAAA,GAAA8C;AAAAA,EAIIhE,IAAAA,IAAqDF,OAAAE,IAAAF,OAAAoB,WAAApB,OAAAkE,MAAAlE,OAAAK,OAAAe,YAAApB,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA;AAHvD6E,QAAAA,KAAAxE,OAA4BR,SAAA0G,0BAA5BlG;AAA4B+D,MAAAA;AAAApE,WAAAoB,aAMyBgD,KAAAqC,IAAAA,QAAA;AAAA,IAAArF;AAAAA,EAAmB,CAAA,GAACpB,OAAAoB,WAAApB,OAAAoE,MAAAA,KAAApE,EAAA,CAAA;AAAAqE,MAAAA;AAAArE,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KACvE/B,KAAC4B,2BAAA,IAAA,qBAAA,CAAsB,CAAA,GAAAjG,OAAAqE,MAAAA,KAAArE,EAAA,CAAA;AAAAsE,MAAAA;AAAA,SAAAtE,EAAA6E,CAAAA,MAAAA,MAAA7E,SAAAkE,QAAAlE,EAAA,CAAA,MAAAoE,MADzBE,KAAC2B,+BAAA,MAAA,EAASpB,IAAY,WAAA,WAAS,GAAKX,MAAiB,WAAAE,IACnDC,UACF,GAAA,CAAA,GAAOrE,OAAA6E,IAAA7E,OAAAkE,MAAAlE,OAAAoE,IAAApE,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAFPsE;AAEO;ACrBJ,MAAMoC,yBAAyB;AAiC/B,SAASC,OACd9F,OACmB;AACb,QAAA;AAAA,IACJ8E,QAAQ;AAAA,IACRd,IAAIQ,UAAUqB;AAAAA,IACdvF;AAAAA,IACAC;AAAAA,IACAwF;AAAAA,IACAvF;AAAAA,IACAwF,WAAW;AAAA,IACXrF,MAAMX,MAAMsE,WAAW;AAAA,IACvB1D;AAAAA,IACAC;AAAAA,IACAoF,MAAMC;AAAAA,IACNC,WAAWC;AAAAA,IACXC,UAAU;AAAA,IACVC;AAAAA,IACAC,OAAO;AAAA,IACPjC,UAAU;AAAA,IACVtB;AAAAA,IACAC;AAAAA,IACAF;AAAAA,IACAH;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAM,SAAS;AAAA,IACToD;AAAAA,IACArB;AAAAA,IACArB;AAAAA,IACAmB,eAAe;AAAA,IACfwB,aAAa;AAAA,IACbC,OAAO;AAAA,IACPxJ,OAAO;AAAA,IACPqF,QAAQ;AAAA,IACRwB;AAAAA,IACA,GAAGV;AAAAA,EAAAA,IACDrD;AAEA2G,MAAAA;AAEJ,SAAI,UAAUtD,SACZsD,OAAO,OAAOtD,KAAKsD,QAAS,WAAWtD,KAAKsD,OAAOA,MACnD,OAAOtD,KAAKsD,OAIZC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAQ;AAAA,MACJvD,GAAAA;AAAAA,MACJ,WAAWwD,IAAAA,OAAO;AAAA,QAACtG;AAAAA,QAAWC;AAAAA,QAAM+F;AAAAA,QAAMnD;AAAAA,QAAQsD;AAAAA,QAAM3C;AAAAA,MAAAA,CAAM;AAAA,MAC9D,iBAAeuC,WAAWP,WAAW,KAAK/G;AAAAA,MAC1C,iBAAewH,WAAW,KAAKxH;AAAAA,MAC/B,UAAUH,GAAQyH,WAAWP;AAAAA,MAE7B,MAAMA,WAAW/G,SAAY2H;AAAAA,MAC7B;AAAA,MAEC9H,UAAAA;AAAAA,QAAQyH,CAAAA,CAAAA,0CACN,KACC,EAAA,YAAW,UACX,IAAG,QACH,WAAWQ,IAAAA,iBAAAA,GACX,SAAQ,QACR,MAAM,GACN,gBAAe,UACf,OAAM,QAEN,UAAC1B,2BAAA,IAAA,SAAA,EAAQ,MAAMY,SAAAA,CAAS,EAC1B,CAAA;AAAA,SAGAE,iBAAiBf,QAAQiB,uBACxBQ,2BAAAA,KAAA,KAAA,EACC,YAAY9B,OACZ,IAAG,QACH,SAAQ,QACR,MAAM,GACN,KACA,MACA,MACA,gBAAgBuB,SAChB,SACA,UACA,UACA,YACA,eACA,aACA,cAECH,UAAAA;AAAAA,UACC,iBAAAU,2BAAAA,KAAC,QAAK,IAAG,QAAO,MAAK,QAAO,OAAK,IAAC,MAAMZ,UACrCe,UAAAA;AAAAA,YAAAA,MAAAA,eAAeb,aAAa,KAAKA;AAAAA,YACjCc,QAAAA,mBAAmBd,aAAa,KAAKd,2BAAA,IAAC,eAAgB,CAAA,CAAA;AAAA,UAAA,GACzD;AAAA,UAGDD,uCACE,KAAI,EAAA,IAAG,QAAO,UAAS,QACtB,yCAAC,MACC,EAAA,OAAOrB,WACP,IAAG,QACH,OACA,MAAMkC,UACN,cACA,QAAQS,YAEPtB,gBACH,EACF,CAAA;AAAA,UAGDiB,sBACEQ,2BAAAA,KAAA,MAAA,EAAK,IAAG,QAAO,MAAK,QAAO,OAAK,IAAC,MAAMZ,UACrCe,UAAAA;AAAAA,YAAAA,MAAAA,eAAeX,kBAAkB,KAAKA;AAAAA,YACtCY,QAAAA,mBAAmBZ,kBAAkB,KAAKhB,2BAAA,IAAC,oBAAqB,CAAA,CAAA;AAAA,UAAA,EACnE,CAAA;AAAA,QAAA,GAEJ;AAAA,QAGD9E,YACC8E,2BAAA,IAAC,KACC,EAAA,IAAG,QACH,MAAM,GACN,SACA,UACA,UACA,YACA,eACA,aACA,cAEC9E,SACH,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;ACvLO2G,SAAAA,cAAAC,kBAAAC,oBAAA;AAAAhI,QAAAA,IAAAC,kBAAA,CAAA;AAILgI,QAAAA,cAAcF,gBAAgB;AAAC7H,MAAAA;AAAAF,WAAA+H,oBAI3B7H,KAAAgI,CAAA,kBAAA;AACEC,UAAAA,SAAcC,OAAAC,WAAkBN,gBAAgB;AAC3CO,WAAAA,OAAAA,iBAAkB,UAAUJ,aAAa,GAAC,MAClCC,OAAKI,oBAAqB,UAAUL,aAAa;AAAA,EAAC,GAChElI,OAAA+H,kBAAA/H,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAAAK,MAAAA;AAAAL,SAAAA,SAAA+H,oBAGH1H,KAAAA,MAAM+H,OAAAC,WAAkBN,gBAAgB,EAACS,SAAQxI,OAAA+H,kBAAA/H,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAT5CyI,MAAAA,qBACLvI,IAQAG,IACA2H,kBACF;AAAC;ACbI,SAAAU,wBAAAxI,IAAA;AAAgE,SAC9D4H,cAAc,oCADiB5H,OAA+BL,SAAA8I,UAA/BzI,EACoC;AAAC;AADtE,SAAAyI,UAAA;AAAA,SAAA;AAAA;ACFA,MAAMC,SAAqB;AAAA,EAChCC,MAAM;AAAA,EACNC,GAAG;AAAA,IAACC;AAAAA,IAAgBC;AAAAA,IAAWC;AAAAA,EAAAA,GAAQ;AAC/B,UAAA,CAACC,IAAI,IAAIF,UAAUG,MAAM,GAAG,GAE5BC,gBAAgBH,MAAMI,SAASzE,OAC/B0E,iBAAiBL,MAAMI,SAAS/G,QAEhCiH,SAASR,eAAeS,OAAOC,KAAK,GACpCC,SAASX,eAAeS,OAAOG,KAAK;AAEtCP,QAAAA,iBAAiB,KAAKE,kBAAkB;AAC1C,aAAO,CAAC;AAGV,UAAMM,sBAAsB,CAAC,UAAU,KAAK,EAAEC,SAASX,IAAI,GAErD;AAAA,MAACY;AAAAA,MAASC;AAAAA,QAA+CH,sBAC3D;AAAA,MACEE,SAASE,MAAM,MAAMT,SAASH,eAAe,GAAG,CAAC;AAAA,MACjDW,SAASb,SAAS,WAAW,IAAI;AAAA,IAAA,IAEnC;AAAA,MACEY,SAASZ,SAAS,SAAS,IAAI;AAAA,MAC/Ba,SAASC,MAAM,MAAMN,SAASJ,gBAAgB,GAAG,CAAC;AAAA,IACpD;AAEG,WAAA;AAAA,MACLW,MAAM;AAAA,QAACH;AAAAA,QAASC;AAAAA,MAAAA;AAAAA,IAClB;AAAA,EAAA;AAEJ;AAEA,SAASC,MAAME,KAAaC,KAAaC,KAAa;AACpD,SAAOC,KAAKF,IAAIE,KAAKD,IAAIF,KAAKC,GAAG,GAAGC,GAAG;AACzC;ACrCA,SAASE,iBAAiB;AACpB,MAAA,OAAOC,aAAe,IAAoBA,QAAAA;AAC1C,MAAA,OAAOnC,SAAW,IAAoBA,QAAAA;AACtC,MAAA,OAAOoC,OAAS,IAAoBA,QAAAA;AACpC,MAAA,OAAOC,SAAW,IAAoBA,QAAAA;AAEpC,QAAA,IAAIC,MAAM,2CAA2C;AAC7D;AAEO,MAAMC,cAAiCL,eAAe;ACJ7CM,SAAAA,0BAIdC,MACAC,cACsB;AAChBC,QAAAA,SAAS5E,OAAOC,IAAIyE,IAAG;AAK7B,MAAI,OAAOG,WAAa;AACtB,WAAOC,MAAAA,cAA2BH,YAAY;AAIhD,QAAMI,YAAYP;AAERI,SAAAA,UAAAA,MAAM,IAAIG,UAAUH,MAAM,KAAKE,MAAAA,cAAiBH,YAAY,GAE/DI,UAAUH,MAAM;AACzB;AC/BaI,MAAAA,yBACXP,0BACE,iCACA,IACF,GCHIQ,gBAA6C;AAAA,EACjDC,SAAS;AAAA,EACT9M,SAAS;AACX;AAGO,SAAA+M,qBAAA;AACL7L,QAAAA,QAAc8L,iBAAAJ,sBAAiC;AAAC,MAK5C1L,UAAU,CAACD,SAASC,KAAK,KAAKA,MAAK4L,YAAA;AAAiBX,UAAAA,IAAAA,MACtC,2DAA2D;AAAA,SAGtEjL,SAAK2L;AAAiB;ACbxB,SAASI,cAAcjN,SAA6D;AAEzF,MAAIkN,SAASC,OAAOC,yBAAyBpN,QAAQsC,OAAO,KAAK,GAAG+K,KAChEC,UAAUJ,UAAU,oBAAoBA,UAAUA,OAAOK;AAEzDD,SAAAA,UACMtN,QAAgBwN,OAI1BN,SAASC,OAAOC,yBAAyBpN,SAAS,KAAK,GAAGqN,KAC1DC,UAAUJ,UAAU,oBAAoBA,UAAUA,OAAOK,gBAErDD,UACMtN,QAAQsC,MAAqCkL,MAI/CxN,QAAQsC,MAAqCkL,OAAQxN,QAAgBwN;AAC/E;ACpBaC,MAAAA,cACXpB,0BAAmD,sBAAsB,IAAI;ACFxE,SAAAqB,aAAApL,OAAA;AAAAb,QAAAA,IAAAC,kBAAA,CAAA,GAOL;AAAA,IAAAkB;AAAAA,IAAAoG;AAAAA,IAAA2E;AAAAA,IAAAC;AAAAA,EAAAA,IAA0DtL;AAAK,MAAAX,IAAAG;AAAAL,IAAAkM,CAAAA,MAAAA,UAAAlM,SAAAuH,QAAAvH,EAAA,CAAA,MAAAmM,2BAKlD9L,KAAA;AAAA,IAAAkH;AAAAA,IAAA2E;AAAAA,IAAAC;AAAAA,EAAAA,GAAuCnM,OAAAkM,QAAAlM,OAAAuH,MAAAvH,OAAAmM,yBAAAnM,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAAE,KAAvCG;AAAuC+D,MAAAA;AAAA,SAAApE,EAAAmB,CAAAA,MAAAA,YAAAnB,SAAAE,MAFlDkE,KAAA6B,2BAAAA,IAAA,YAAA,UAAA,EACS,OAAA/F,IAKC,SAAA,CACV,GAAuBF,OAAAmB,UAAAnB,OAAAE,IAAAF,OAAAoE,MAAAA,KAAApE,EAAA,CAAA,GAPvBoE;AAOuB;AClBpB,SAAAgI,UAAA;AACLlP,QAAAA,OAAaqO,iBAAAS,WAAsB;AAAC,MAAA,CAE/B9O;AAAIwN,UAAAA,IAAAA,MACS,kCAAkC;AAG7CxN,SAAAA;AAAI;ACPb,MAAM2N,MAAM,wBACNwB,aAAalG,OAAOC,IAAI,GAAGyE,GAAG,UAAU,GAGxCyB,aAAa3B;AAEnB2B,WAAWD,UAAU,IAAI;AAElB,MAAME,sBAA0C;AAAA,EACrDlB,SAAS;AAAA,EACTmB,iBAAiB;AAAA,EACjB,IAAIjO,UAAU;AACZ,WAAI,OAAOyM,WAAa,MACf,QAGLsB,WAAWD,UAAU,MAIzBC,WAAWD,UAAU,IAAIrB,SAASyB,cAAc,KAAK,GACrDH,WAAWD,UAAU,EAAEK,aAAa,eAAe,EAAE,GAErD1B,SAAS2B,KAAKC,YAAYN,WAAWD,UAAU,CAAC,IAEzCC,WAAWD,UAAU;AAAA,EAAA;AAEhC,GAEaQ,gBACXjC,0BAA8CC,KAAK0B,mBAAmB;AC7BjE,SAAAO,YAAA;AACLrN,QAAAA,QAAc8L,iBAAAsB,aAAwB;AAAC,MAAA,CAElCpN;AAAKiL,UAAAA,IAAAA,MACQ,oCAAoC;AAAA,MAMlD,CAAClL,SAASC,KAAK,KAAKA,MAAK4L,YAAgB;AAAAX,UAAAA,IAAAA,MAC3B,kDAAkD;AAG7DjL,SAAAA;AAAK;ACJP,SAAAsN,OAAAlM,OAAA;AAAAb,QAAAA,IAAAC,kBAAA,CAAA,GACL;AAAA,IAAAkB;AAAAA,IAAA6L,iBAAAnE;AAAAA,EAAAA,IAA0ChI,OAC1C3D,OAAakP,QACba,GAAAA,SAAeH,UACfI,GAAAA,iBACGrE,OAAOoE,OAAME,YAAaF,OAAME,SAAUtE,IAAI,IAAIoE,OAAM1O,YACzD0O,OAAME,UAAY;AAAU,MAAA,CAEzBD;AAAa,WAAA;AAAAhN,MAAAA;AAAAF,WAAA9C,KAAAgP,UAAAlM,SAAAmB,YAKhBjB,KAAC+F,2BAAAA,IAAA,cAAA,EAAkB,MAAA,eAAsB,QAAA/I,KAAIgP,iBAE7C,CAAA,GAAelM,EAAA,CAAA,IAAA9C,KAAAgP,QAAAlM,OAAAmB,UAAAnB,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAAAK,MAAAA;AAAA,SAAAL,EAAAkN,CAAAA,MAAAA,iBAAAlN,SAAAE,MAHVG,KAAA+M,SAAAA,aACLlN,IAGAgN,aACF,GAAClN,OAAAkN,eAAAlN,OAAAE,IAAAF,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GALMK;AAKN;AC/BI,SAASgN,gBAAgBC,cAAoD;AAIlF,MAAI,CAAC9N,SAAS8N,YAAY,KAAKA,aAAajC,YAAY;AAChD,UAAA,IAAIX,MAAM,qCAAqC;AAGvD,MAAI,CAAC4C;AACG,UAAA,IAAI5C,MAAM,uEAAuE;AAGzF,MAAI4C,aAAajC,YAAY;AACpBiC,WAAAA;AAGH,QAAA,IAAI5C,MAAM,6BAA6B;AAC/C;ACfa6C,MAAAA,eACX3C,0BAAoD,uBAAuB,IAAI;ACC1E,SAAA4C,WAAA;AAAA,QAAAxN,IAAAC,gBAAAA,EAAA,CAAA,GACLR,QAAc8L,iBAAAgC,YAAuB;AAAC,MAAA,CAEjC9N;AAAKiL,UAAAA,IAAAA,MACQ,mCAAmC;AAAA,MAAA;AAAArK,QAAAA;AAAA,WAAAL,SAAAP,SAI5CY,KAAAgN,gBAAgB5N,KAAK,GAACO,OAAAP,OAAAO,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAtBK;AAAAA,WAAsBH,IAAA;AACtBuN,UAAAA,MAAAA;AAAG,UACNA,eAAG/C,QAAiB,IAAAA,MACN,eAAe+C,IAAGC,OAAA,EAAU,IAAA,IAAAhD,MAE5B,eAAe+C,GAAG,EAAE;AAAA,EAAA;AAAA;AClBnC,MAAME,2BAA2B,GAC3BC,0BAA0B,GAC1BC,8BAA8B,IAC9BC,+BAA+B,GAC/BC,+BAA+B,GAC/BC,0BAA0C,CAAC,GAAG,GAAG,GAAG,CAAC,GACrDC,gCAA8D;AAAA,EACzE,KAAO,CAAC,UAAU,QAAQ,OAAO;AAAA,EACjC,aAAa,CAAC,gBAAgB,cAAc,aAAa;AAAA,EACzD,WAAW,CAAC,cAAc,YAAY,WAAW;AAAA,EACjD,QAAU,CAAC,OAAO,QAAQ,OAAO;AAAA,EACjC,gBAAgB,CAAC,aAAa,cAAc,aAAa;AAAA,EACzD,cAAc,CAAC,WAAW,YAAY,WAAW;AAAA,EACjD,MAAQ,CAAC,SAAS,OAAO,QAAQ;AAAA,EACjC,cAAc,CAAC,eAAe,aAAa,cAAc;AAAA,EACzD,YAAY,CAAC,aAAa,WAAW,YAAY;AAAA,EACjD,OAAS,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACjC,eAAe,CAAC,cAAc,aAAa,cAAc;AAAA,EACzD,aAAa,CAAC,YAAY,WAAW,YAAY;AACnD;ACVO,SAASpI,KAAKqI,SAON;AACP,QAAA;AAAA,IAACC;AAAAA,IAAOC;AAAAA,IAASjJ,UAAU;AAAA,EAAA,IAAK+I;AAE/B,SAAA;AAAA,IACLrF,MAAM;AAAA,IACN,MAAMC,GAAGuF,MAAM;AACP,YAAA;AAAA,QAAClB;AAAAA,QAAUnE;AAAAA,QAAWsF;AAAAA,QAAUrF;AAAAA,UAASoF,MACzC;AAAA,QAAChF;AAAAA,QAAUkF;AAAAA,MAAatF,IAAAA,OAExB3F,WAAW,MAAMkL,WAAAA,eAAeH,MAAM;AAAA,QAC1CI,aAAa;AAAA,QACbC,UAAUR,QAAQ1B,mBAAmB3M;AAAAA,QACrC8O,gBAAgB;AAAA,QAChBxJ;AAAAA,QACAyJ,cAAc;AAAA,MAAA,CACf;AAEGzL,UAAAA,WAAW0L,OACXC,YAAYD;AAEhB,YAAME,YAAY1F,SAASzE,OACrBoK,YAAY3F,SAAS/G;AAEvB0G,gBAAUa,SAAS,KAAK,MAC1B1G,WAAW4L,aAAazL,SAAS2L,OAAO3L,SAAS4L,QACjDJ,YAAYE,YAAY1L,SAAS6L,MAG/BnG,UAAUa,SAAS,OAAO,MAC5B1G,WAAW4L,YAAYzL,SAAS4L,OAChCJ,YAAYE,aAAa1L,SAAS6L,MAAM7L,SAAS8L,UAG/CpG,UAAUa,SAAS,QAAQ,MAC7B1G,WAAW4L,aAAazL,SAAS2L,OAAO3L,SAAS4L,QACjDJ,YAAYE,YAAY1L,SAAS8L,SAG/BpG,UAAUa,SAAS,MAAM,MAC3B1G,WAAW4L,YAAYzL,SAAS2L,MAChCH,YAAYE,aAAa1L,SAAS6L,MAAM7L,SAAS8L,UAKnDjB,MAAM;AAAA,QACJkB,gBAAgBlM,WAAWiL,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAAA,QACjDkB,iBAAiBR,YAAYV,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAAA,QACnDjB;AAAAA,QACAoC,gBAAgBhB,UAAU3J,QAAQwJ,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAAA,MAAA,CACzD;AAEKoB,YAAAA,iBAAiB,MAAMlB,SAASmB,cAActC,SAAS9D,QAAQ,GAE/DqG,UAAUF,eAAelN,QACzBqN,UAAUH,eAAe5K;AAE3BmK,aAAAA,cAAcY,WAAWX,cAAcU,UAClC;AAAA,QAACE,OAAO;AAAA,UAAC3G,OAAO;AAAA,QAAA;AAAA,MAAI,IAGtB,CAAC;AAAA,IAAA;AAAA,EAEZ;AACF;AC5DA,SAAS4G,kBAAkBC,aAAoBC,aAAoBC,QAAgB;AACjF,QAAMpL,QAAQmL,YAAYtG,IAAIqG,YAAYrG,GACpCnH,SAASyN,YAAYpG,IAAImG,YAAYnG,GAErCsG,WAAW5F,KAAK6F,KAAKtL,QAAQA,QAAQtC,SAASA,MAAM;AAEnD6N,SAAAA,sBAAsBL,aAAaC,aAAa1F,KAAKF,IAAI,GAAG6F,SAASC,QAAQ,CAAC;AACvF;AAEA,SAASE,sBAAsBL,aAAoBC,aAAoBK,UAAyB;AACvF,SAAA;AAAA,IACL3G,GAAGqG,YAAYrG,KAAKsG,YAAYtG,IAAIqG,YAAYrG,KAAK2G;AAAAA,IACrDzG,GAAGmG,YAAYnG,KAAKoG,YAAYpG,IAAImG,YAAYnG,KAAKyG;AAAAA,EACvD;AACF;AAEO,SAASC,mBAAmBC,QAAwB;AACzD,QAAMC,MAAMD,OAAOE,QAEbC,OAAc,CAAE;AAEtB,WAASC,IAAI,GAAGA,IAAIH,KAAKG,KAAK,GAAG;AAC/B,UAAMC,QAAQL,OAAOI,CAAC,GAChBE,YAAYN,OAAOI,IAAI,CAAC,GACxBG,YAAYP,OAAOI,IAAI,CAAC;AAE1BE,QAAAA,aAAaD,MAAM1M,QAAQ;AACvB6M,YAAAA,aAAajB,kBAAkBc,OAAOC,WAAWD,MAAM1M,MAAM,GAC7D8M,WAAWlB,kBAAkBc,OAAOE,WAAWF,MAAM1M,MAAM,GAC3D+M,eAAeb,sBAAsBW,YAAYH,OAAO,GAAG,GAC3DM,aAAad,sBAAsBQ,OAAOI,UAAU,GAAG;AAE7DN,WAAKS,KAAK;AAAA,QACRnT,MAAM;AAAA,QACN,GAAG+S;AAAAA,MAAAA,CACJ,GAEDL,KAAKS,KAAK;AAAA,QACRnT,MAAM;AAAA,QACNgT;AAAAA,QACAC;AAAAA,QACAC;AAAAA,MAAAA,CACD;AAAA,IACH;AACER,WAAKS,KAAK;AAAA,QACRnT,MAAM;AAAA,QACN,GAAG4S;AAAAA,MAAAA,CACJ;AAAA,EAAA;AAIEF,SAAAA;AACT;AAEO,SAASU,gBAAgBV,MAAqB;AAC5CA,SAAAA,KACJW,IAAI,CAACC,GAAGC,QACHD,EAAEtT,SAAS,UACN,GAAGuT,QAAQ,IAAI,MAAM,GAAG,IAAID,EAAE5H,CAAC,IAAI4H,EAAE1H,CAAC,KAG3C0H,EAAEtT,SAAS,UACN,KAAKsT,EAAEL,aAAavH,CAAC,IAAI4H,EAAEL,aAAarH,CAAC,IAAI0H,EAAEJ,WAAWxH,CAAC,IAAI4H,EAAEJ,WAAWtH,CAAC,IAAI0H,EAAEN,SAAStH,CAAC,IAAI4H,EAAEN,SAASpH,CAAC,KAG/G,EACR,EACA4H,KAAK,GAAG;AACb;AClFO,MAAMC,wBAAwB;AAgB9B,SAAAC,MAAA5Q,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAUDC,KAAAW;AAAiD,MAAA6Q,GAAAxN,MAAAyN,OAAAtR,IAAA+D,IAAAwN;AAAA5R,WAAAE,MAPrD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAuE,OAAAgN;AAAAA,IAAAtP,QAAAoP;AAAAA,IAAAzN,QAAAG;AAAAA,IAAAuN;AAAAA,IAAA,GAAAzN;AAAAA,EAAA,IAOIhE,IAAiDF,OAAAE,IAAAF,OAAA0R,GAAA1R,OAAAkE,MAAAlE,OAAA2R,OAAA3R,OAAAK,IAAAL,OAAAoE,IAAApE,OAAA4R,MAAAF,IAAA1R,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAA2R,QAAA3R,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAA4R,IAAA5R,EAAA,CAAA;AAN/CqF,QAAAA,UAAAhF,OAA+BR,SAAA2R,wBAA/BnR,IAGJ4D,SAAAG,OAAUvE,aAAVuE,IAKFyN,SAAeD,IAAK;AAAAvN,MAAAA;AAGlB,QAAAiM,SAAA,CAAA;AAAA,IAAA7G,GAAA;AAAA,IAAAE,GAAA;AAAA,EAAA,GAAA;AAAA,IAAAF,GAEMxF;AAAAA,IAAM0F,GAAA;AAAA,IAAA1F;AAAAA,EAAAA,GAAA;AAAA,IAAAwF,GACNoI;AAAAA,IAAMlI,GAAK+H,IAAK;AAAA,IAAAzN;AAAAA,EAAAA,GAAA;AAAA,IAAAwF,GAChBmI,IAAI3N;AAAAA,IAAM0F,GAAA;AAAA,IAAA1F;AAAAA,EAAAA,GAAA;AAAA,IAAAwF,GACVmI;AAAAA,IAACjI,GAAA;AAAA,EAAA,CAAA,GAGP8G,OAAaJ,mBAAmBC,MAAM;AAEtCjM,OAAO8M,gBAAgBV,IAAI;AAX7BqB,QAAAA,OAAazN,IAcb0N,aAAmB,GAAGD,IAAI,IAC1BE,WAAiB,GAAGF,IAAI,MAAMF,CAAC;AAActN,MAAAA;AAAAtE,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAK9B9B,KAAA2N,IAAO,OAAA,GAACjS,OAAAsE,MAAAA,KAAAtE,EAAA,CAAA;AAGuBuE,QAAAA,KAAGqN,GAAAA,CAAC;AAAIpN,MAAAA;AAAAxE,WAAAuE,MAA7CC,KAAA0N,QAAAA,iBAAA;AAAA,IAAA,CAAAC,IAAAA,KAAAC,MAAAvM,IAAA,GAAqCtB;AAAAA,EAAS,CAAA,GAACvE,OAAAuE,IAAAvE,OAAAwE,MAAAA,KAAAxE,EAAA,CAAA;AAAAyE,MAAAA;AAAAzE,IAAA2R,EAAAA,MAAAA,SAAA3R,UAAAwE,MAF7CC,KAAA;AAAA,IAAA,GACFkN;AAAAA,IAAK,GACLnN;AAAAA,EACJxE,GAAAA,QAAA2R,OAAA3R,QAAAwE,IAAAxE,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA;AAAA0E,MAAAA;AAAA1E,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAEe1B,KAAA2N,IAAU,UAAA,GAACrS,QAAA0E,MAAAA,KAAA1E,EAAA,EAAA;AAAgC,QAAAsF,KAAA,OAAOsM,CAAC,IAAIA,CAAC;AAAEpM,MAAAA;AAAAxF,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAErDZ,MAAA8M,IAAiB,iBAAA,GAACtS,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA;AAAAuS,MAAAA;AAAAvS,YAAA4R,KADrCW,MAEOtM,2BAAA,IAAA,QAAA,EAFE,IAAA,eACP,UAAAA,2BAAA,IAAA,QAAA,EAAiB,WAAAT,KAAuB,GAAC,GAASoM,OAAA,GAAWA,QAAA,GAAQ,MAAA,QAAO,CAAA,EAAA,CAC9E,GAAO5R,QAAA4R,GAAA5R,QAAAuS,OAAAA,MAAAvS,EAAA,EAAA;AAAAwS,MAAAA;AAAAxS,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KACUoM,MAAAC,IAAa,aAAA,GAACzS,QAAAwS,OAAAA,MAAAxS,EAAA,EAAA;AAAA0S,MAAAA;AAAA1S,YAAA+R,cAA/BW,6CAAiB,EAAA,WAAAF,KAAmBT,eAAiB,MAAA,qBAAsB,GAAA/R,QAAA+R,YAAA/R,QAAA0S,OAAAA,MAAA1S,EAAA,EAAA;AAAA2S,MAAAA;AAAA3S,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAC1DuM,MAAAC,IAAY,YAAA,GAAC5S,QAAA2S,OAAAA,MAAA3S,EAAA,EAAA;AAAA6S,MAAAA;AAAA7S,YAAAgS,YAA9Ba,MAA+C5M,+BAAA,QAAA,EAA9B,WAAA0M,KAAkBX,GAAO,UAAK,GAAAhS,QAAAgS,UAAAhS,QAAA6S,OAAAA,MAAA7S,EAAA,EAAA;AAAA8S,MAAAA;AAAA9S,IAAAuS,EAAAA,MAAAA,OAAAvS,EAAA,EAAA,MAAA0S,OAAA1S,EAAA6S,EAAAA,MAAAA,OAAA7S,EAAA,EAAA,MAAAsF,MAAAtF,UAAA4R,KALjDkB,MAMMrL,2BAAA,KAAA,OAAA,EANU,WAAA/C,IAAoBkN,OAAA,GAAWA,QAAA,GAAY,SAAAtM,IACzDiN,UAAAA;AAAAA,IAAAA;AAAAA,IAGAG;AAAAA,IACAG;AAAAA,EACF,EAAA,CAAA,GAAM7S,QAAAuS,KAAAvS,QAAA0S,KAAA1S,QAAA6S,KAAA7S,QAAAsF,IAAAtF,QAAA4R,GAAA5R,QAAA8S,OAAAA,MAAA9S,EAAA,EAAA;AAAA+S,MAAAA;AAAA/S,SAAAA,EAAA,EAAA,MAAAqF,WAAArF,EAAAkE,EAAAA,MAAAA,QAAAlE,EAAA8S,EAAAA,MAAAA,OAAA9S,UAAAyE,MAdRsO,MAAA9M,+BAAC,WACK/B,GAAAA,MACO,WAAAI,IACJ,OAAAG,IAKPqO,eAOF,GAAU9S,QAAAqF,SAAArF,QAAAkE,MAAAlE,QAAA8S,KAAA9S,QAAAyE,IAAAzE,QAAA+S,OAAAA,MAAA/S,EAAA,EAAA,GAfV+S;AAeU;AC3DP,MAAMC,uBAAuB;AAqB7B,SAAAC,KAAApS,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAUDC,KAAAW;AAA+C,MAAA8E,OAAAuB,SAAAhD,MAAA7D,IAAA+D,IAAA8O;AAAAlT,WAAAE,MAPnD;AAAA,IAAAyF;AAAAA,IAAAd,IAAAxE;AAAAA,IAAA8S,WAAA/O;AAAAA,IAAA8C;AAAAA,IAAAgM;AAAAA,IAAA,GAAAhP;AAAAA,EAAA,IAOIhE,IAA+CF,OAAAE,IAAAF,OAAA2F,OAAA3F,OAAAkH,SAAAlH,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,IAAApE,OAAAkT,SAAAvN,QAAA3F,EAAA,CAAA,GAAAkH,UAAAlH,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAAkT,OAAAlT,EAAA,CAAA;AALjD6E,QAAAA,KAAAxE,OAAyBR,SAAAmT,uBAAzB3S,IACA8S,YAAA/O,OAAiBvE,SAAL,QAAZuE;AAAiBC,MAAAA;AAAA,SAAArE,SAAA2F,SAAA3F,EAAA6E,CAAAA,MAAAA,MAAA7E,EAAAmT,CAAAA,MAAAA,aAAAnT,EAAA,EAAA,MAAAkH,WAAAlH,UAAAkE,QAAAlE,EAAA,EAAA,MAAAkT,QAOjB7O,KAAC4B,2BAAA,IAAA,KAAA,EACS,WAAA,QACJ/B,GAAAA,MACQyB,YAAI,OACZd,IACI,SAAA,QACOsO,0BACLD,gBACMhM,gBAAAA,QAChB,CAAA,GAAAlH,OAAA2F,OAAA3F,OAAA6E,IAAA7E,OAAAmT,WAAAnT,QAAAkH,SAAAlH,QAAAkE,MAAAlE,QAAAkT,MAAAlT,QAAAqE,MAAAA,KAAArE,EAAA,EAAA,GATFqE;AASE;AC9CC,MAAM+O,uBAAuB;AAgC7B,SAAAC,KAAAxS,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAgBDC,KAAAW;AAA+CO,MAAAA,WAAAwF,UAAA0M,SAAApP,MAAAqP,YAAAlM,UAAAsK,OAAAtR,IAAA+D,IAAAC,IAAAC,IAAAC;AAAAvE,WAAAE,MAbnD;AAAA,IAAAsT,sBAAAnT;AAAAA,IAAAoT,sBAAArP;AAAAA,IAAAS,IAAAR;AAAAA,IAAAjD;AAAAA,IAAAwF;AAAAA,IAAA0M;AAAAA,IAAArP,QAAAK;AAAAA,IAAA4H,QAAAqH;AAAAA,IAAAlM;AAAAA,IAAAsK;AAAAA,IAAApK,MAAAhD;AAAAA,IAAA,GAAAL;AAAAA,EAAAA,IAaIhE,IAA+CF,OAAAE,IAAAF,OAAAoB,WAAApB,OAAA4G,UAAA5G,OAAAsT,SAAAtT,OAAAkE,MAAAlE,OAAAuT,YAAAvT,OAAAqH,UAAArH,OAAA2R,OAAA3R,OAAAK,IAAAL,OAAAoE,IAAApE,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAuE,OAAAnD,YAAApB,EAAA,CAAA,GAAA4G,WAAA5G,EAAA,CAAA,GAAAsT,UAAAtT,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAuT,aAAAvT,EAAA,CAAA,GAAAqH,WAAArH,EAAA,CAAA,GAAA2R,QAAA3R,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAAqE,KAAArE,EAAA,EAAA,GAAAsE,KAAAtE,EAAA,EAAA,GAAAuE,KAAAvE,EAAA,EAAA;AAZ3B0T,QAAAA,YAAArT,OAAiBR,cAAjBQ,IACAsT,YAAAvP,OAAiBvE,cAAjBuE,IACtBS,KAAAR,OAAyBxE,SAAAuT,uBAAzB/O,IAIAJ,SAAAK,OAAUzE,aAAVyE,IAIMsP,WAAArP,OAAoB1E,SAAT,YAAX0E,IAIRsP,SAAetI,MAAAS,WAAAA,WAAsB,GACrCzE,OAAaqM,aAAa,YAAYC,QAAMtM,OAASqM,UACrD1H,SAAeqH,eAAU1T,SAAiBgU,QAAM3H,SAAWqH,YAS7C/O,KAAA0H,WAAW2H,QAAM3H,SAAQrM,SAAeqM;AAAMzH,MAAAA;AAAAzE,IAAAoB,EAAAA,MAAAA,aAAApB,UAAAwE,MAAAxE,EAAA,EAAA,MAAAuH,QAF7C9C,KAAAvH,IAAAA,KAAA;AAAA,IAAAkE;AAAAA,IAAA8K,QAED1H;AAAAA,IAA8C+C;AAAAA,EAAAA,CAEvD,GAACvH,QAAAoB,WAAApB,QAAAwE,IAAAxE,QAAAuH,MAAAvH,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA;AACc,QAAA0E,KAAAgP,YAAY,KAAE7T,QACfyF,KAAAsB,WAAW,KAAE/G,QACX2F,MAAAmO,YAAY,KAAE9T,QACjB0S,MAAAe,UAAU,KAAEzT,QACX2S,MAAAnL,WAAW,KAAExH;AAAY6S,MAAAA;AAAA1S,IAAA6E,EAAAA,MAAAA,MAAA7E,UAAAiE,UAAAjE,EAAA,EAAA,MAAAkE,QAAAlE,UAAA2R,SAAA3R,EAAAwF,EAAAA,MAAAA,OAAAxF,UAAAuS,OAAAvS,EAAA,EAAA,MAAAwS,OAAAxS,EAAAyE,EAAAA,MAAAA,MAAAzE,EAAA,EAAA,MAAA0E,MAAA1E,UAAAsF,MAb1CoN,MAACzM,2BAAAA,IAAA,KAAA,EACS,WAAA,QAAM,GACV/B,MACAW,IACO,WAAAJ,IAKK,kBAAAC,IACD,iBAAAY,IACE,mBAAAE,KACH,gBAAA+M,KACC,iBAAAC,KACPvO,QACD0N,OACP,GAAA3R,QAAA6E,IAAA7E,QAAAiE,QAAAjE,QAAAkE,MAAAlE,QAAA2R,OAAA3R,QAAAwF,KAAAxF,QAAAuS,KAAAvS,QAAAwS,KAAAxS,QAAAyE,IAAAzE,QAAA0E,IAAA1E,QAAAsF,IAAAtF,QAAA0S,OAAAA,MAAA1S,EAAA,EAAA;AAjBJ,MAAArB,OACE+T;AAiBD,MAEGxG,WAAW2H,QAAM3H,UAAY3E,SAASsM,QAAMtM;AACvC5I,WAAAA;AAKG,QAAAgU,MAAAzG,UAAU,SACZ2G,MAAAtL,QAAQ,WACWuL,MAAAe,QAAM1H;AAAyB4G,MAAAA;AAAA/S,MAAAA,EAAA,EAAA,MAAArB,QAAAqB,EAAA2S,EAAAA,MAAAA,OAAA3S,EAAA6S,EAAAA,MAAAA,OAAA7S,UAAA8S,OAH1DC,MAAC9M,2BAAA,IAAA,cAAA,EACS,QAAA0M,KACF,MAAAE,KACmB,yBAAAC,KAErB,UACN,MAAA,GAAe9S,QAAArB,MAAAqB,QAAA2S,KAAA3S,QAAA6S,KAAA7S,QAAA8S,KAAA9S,QAAA+S,OAAAA,MAAA/S,EAAA,EAAA,GAPjBrB,OACEA,KASEkV,QAAM1H,yBAAA;AACR2H,UAAAA,iBAAuBD,OAAM1H,yBAGH4H,MAAA7H,UAAU,SAAe8H,MAAAzM,QAAQsM,OAAMtM;AAAK0M,QAAAA;AAAAjU,WAAAA,EAAA,EAAA,MAAA8T,kBAAA9T,EAAArB,EAAAA,MAAAA,QAAAqB,EAAA+T,EAAAA,MAAAA,OAAA/T,UAAAgU,OAApEC,qCAAC,gBAAuB,EAAA,QAAAF,KAAyB,MAAAC,oBAEjD,CAAA,GAAiBhU,QAAA8T,gBAAA9T,QAAArB,MAAAqB,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA,GAFjBiU;AAAAA,EAAAA;AAMGtV,SAAAA;AAAI;ACjGN,MAAMuV,6BAA6B;AAenC,SAAAC,UAAAtT,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAYDC,KAAAW;AAA0D,MAAAM,UAAAiT,cAAAC,YAAAC,SAAApQ,MAAA7D,IAAA+D,IAAAC;AAAArE,WAAAE,MAT9D;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc;AAAAA,IAAAkT;AAAAA,IAAAC;AAAAA,IAAAtQ,UAAAI;AAAAA,IAAA2H,KAAAqI;AAAAA,IAAAzC,OAAAtN;AAAAA,IAAA,GAAAH;AAAAA,EASIhE,IAAAA,IAA0DF,OAAAE,IAAAF,OAAAmB,UAAAnB,OAAAoU,cAAApU,OAAAqU,YAAArU,OAAAsU,SAAAtU,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,IAAApE,OAAAqE,OAAAlD,WAAAnB,EAAA,CAAA,GAAAoU,eAAApU,EAAA,CAAA,GAAAqU,aAAArU,EAAA,CAAA,GAAAsU,UAAAtU,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAAqE,KAAArE,EAAA,CAAA;AAR5D,QAAA6E,KAAAxE,OAA+BR,SAAAqU,6BAA/B7T,IAIA2D,WAAAI,OAAqBvE,SAAV,aAAXuE,IAEAuN,QAAAtN,OAAoBxE,SAAA7C,eAApBqH,IAIF;AAAA,IAAAkQ;AAAAA,IAAAC;AAAAA,EAA6BhH,IAAAA,SAC7BiH,GAAAA,iBAAuBC,MAAAA,OAAA,IAA+B,GACtD3I,MAAY2I,MAAAA,OAAA,IAAkC,GAC9CC,gBAAsBD,MAAAA,OAAgBF,UAAU;AAAClQ,MAAAA;AAAAtE,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAE+B9B,KAAAA,MAAMyH,IAAG6I,SAAQ5U,OAAAsE,MAAAA,KAAAtE,EAAA,CAAA,GAAjG6U,MAAAA,oBAAkET,cAAc9P,EAAiB;AAAC,MAAAC,IAAAC;AAAAxE,IAAAwU,EAAAA,MAAAA,cAAAxU,UAAAqU,cAKxF9P,KAAAA,MAAA;AACeoQ,kBAAaC,YAAaJ,cAAcA,cAG7DH,aAAU;AAAA,MAAAS,eAAmBL,eAAcG;AAAAA,IAAAA,CAAA,GAG7CD,cAAaC,UAAWJ;AAAAA,EACvBhQ,GAAAA,KAAA,CAACgQ,YAAYH,UAAU,GAACrU,QAAAwU,YAAAxU,QAAAqU,YAAArU,QAAAuE,IAAAvE,QAAAwE,OAAAD,KAAAvE,EAAA,EAAA,GAAAwE,KAAAxE,EAAA,EAAA,IAR3B+U,MAAAA,UAAUxQ,IAQPC,EAAwB;AAACC,MAAAA;AAAAzE,IAAAwU,EAAAA,MAAAA,cAAAxU,UAAAsU,WAG1B7P,KAAAuQ,CAAA,UAAA;AAEEV,cAAUU,KAAK;AAEf,UAAAC,cAAoBlJ,IAAG6I,SACvBM,SAAAlK,SAAA8J;AAEI,KAACN,cAAeS,CAAAA,gBAAgBC,UAEhCxW,cAAcwW,MAAM,KAAK/V,wBAAwB8V,aAAaC,MAAM,MACtET,eAAcG,UAAWM;AAAAA,EAE5BlV,GAAAA,QAAAwU,YAAAxU,QAAAsU,SAAAtU,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA;AAbHmV,QAAAA,cAAoB1Q,IAqBZC,KAAAG;AAAqBS,MAAAA;AAAAtF,IAAA2R,EAAAA,MAAAA,SAAA3R,UAAAuU,UAIlBjP,KAAA;AAAA,IAAA,GAAIqM;AAAAA,IAAK4C;AAAAA,EAASvU,GAAAA,QAAA2R,OAAA3R,QAAAuU,QAAAvU,QAAAsF,MAAAA,KAAAtF,EAAA,EAAA;AAAAwF,MAAAA;AAAA,SAAAxF,UAAAmB,YAAAnB,EAAAmV,EAAAA,MAAAA,eAAAnV,EAAAgE,EAAAA,MAAAA,YAAAhE,EAAA,EAAA,MAAAkE,QAAAlE,UAAA0E,MAAA1E,EAAA,EAAA,MAAAsF,MAP3BE,qCAAC,MACS,EAAA,WAAA,YACJtB,MACA,IAAAQ,IACKyQ,sBACCnR,UACL+H,KACE,OAAAzG,aAGT,CAAA,GAAOtF,QAAAmB,UAAAnB,QAAAmV,aAAAnV,QAAAgE,UAAAhE,QAAAkE,MAAAlE,QAAA0E,IAAA1E,QAAAsF,IAAAtF,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA,GAVPwF;AAUO;ACpFX,MAAM2C,QAAQuD,OAAO0J,OAAOC,eAAW;AAevC,SAASC,eAAenN,QAAiBoN,OAA2B;AAC9DA,SAAAA,UAAU,IACL,0BAA0BpN,OAAMoN,QAAQ,CAAC,IAAI,CAAC,QAGnDA,UAAUpN,OAAMqI,SAAS,IACpB,0BAA0BrI,OAAMoN,KAAK,CAAC,QAGxC,0BAA0BpN,OAAMoN,KAAK,CAAC,uBAAuBpN,OAAMoN,QAAQ,CAAC,IAAI,CAAC;AAC1F;AAEA,SAASC,oBAAiC;AACxC,QAAMC,WAAWtN,MAAMqI;AAEnBkF,MAAAA;AAKJ,QAAMC,WAAWA,MAAM;AACrB,QAAI,OAAOvN,SAAW;AACbsN,aAAAA;AAGT,QAAI,CAACA,OAAO;AACVA,cAAQ,CAAE;AAEV,eAASH,QAAQE,UAAUF,QAAQ,IAAIA,SAAS,GAAG;AAC3CK,cAAAA,aAAaN,eAAenN,OAAOoN,KAAK;AAE9CG,cAAMxE,KAAK;AAAA,UAACqE;AAAAA,UAAOM,IAAIzN,OAAOC,WAAWuN,UAAU;AAAA,QAAA,CAAE;AAAA,MAAA;AAAA,IACvD;AAGKF,WAAAA;AAAAA,EACT;AA8BO,SAAA;AAAA,IAACI,aA5BYA,MAAM;AACb,iBAAA;AAAA,QAACP;AAAAA,QAAOM;AAAAA,MAAAA,KAAOF,SAAS,KAAK;AAClCE,YAAAA,GAAGrN,QAAgB+M,QAAAA;AAGlB,aAAA;AAAA,IACT;AAAA,IAsBqBQ,WApBF7N,CAA8B,kBAAA;AAC/C,YAAM8N,aAA6B,CAAE;AAE1B,iBAAA;AAAA,QAACH;AAAAA,MAAAA,KAAOF,SAAc,KAAA,IAAI;AACnC,cAAMM,eAAeA,MAAM;AACrBJ,aAAGrN,WAASN,cAAc;AAAA,QAChC;AAEGI,WAAAA,iBAAiB,UAAU2N,YAAY,GAE1CD,WAAW9E,KAAK,MAAM2E,GAAGtN,oBAAoB,UAAU0N,YAAY,CAAC;AAAA,MAAA;AAGtE,aAAO,MAAM;AACX,mBAAWC,aAAaF;AACZ,oBAAA;AAAA,MAEd;AAAA,IAAA;AAAA,EAG4B;AAChC;AASA,SAAShO,oBAAgC;AAChC,SAAA;AACT;AAMO,SAAAmO,gBAAA;AAAAnW,QAAAA,IAAAC,kBAAA,CAAA;AAAA,MAAAC,IAAAG;AAAAL,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KACuB/F,KAAAmV,kBAAAA,GAAmBxV,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAAE,KAAnBG;AAA5B,QAAA+V,QAAclW;AAAsC,SAE7CuI,MAAAA,qBAAqB2N,MAAKL,WAAYK,MAAKN,aAAA9N,iBAA+B;AAAC;ACzF7E,SAAAqO,cAAAxV,OAAA;AAAAb,QAAAA,IAAAC,kBAAA,EAAA,GACL;AAAA,IAAAkB;AAAAA,IAAAmV,SAAApW;AAAAA,EAAAA,IAA6CW,OAAnB0V,cAAArW,OAAeL,aAAfK,IAG1BsW,qBAA2BjL,MAAAA,WAAAgC,YAAuB;AAAClN,MAAAA;AAAAL,WAAAwW,sBACpCnW,KAAAmW,sBAAsBnJ,gBAAgBmJ,kBAAkB,GAACxW,OAAAwW,oBAAAxW,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAxE,QAAA6T,SAAexT,IACfoW,sBAA4B5C,QAAM6C,eAIlCC,SAHoB9C,QAAM8C,SAAY,KAGT,GAG7BL,UAAgBvW,kBAAkBwW,WAAW,GAG7CK,gBAAsBlL,OAAA0J,OAAckB,OAAO,EAAC9F,SAAW,GACvDqG,aAAmBxM,KAAAF,IAASgM,iBAAiBS,aAAa,GAC1DrC,SAAeV,SAASA,OAAMU,UAAW+B,QAAQO,UAAU,KAAM,KAAKP,QAAQO,UAAU,KAAO;AAAAzS,MAAAA;AAAApE,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAGnChC,KAAA,CAAA,GAAEpE,OAAAoE,MAAAA,KAAApE,EAAA,CAAA;AAA9D,QAAA,CAAA8W,EAAAA,cAAA,IAA2BvW,eAAiC6D,EAAE,GAG9D,CAAAyB,OAAAkR,OAAA,IAAwBxW,MAAAA,UAAU,GAElCiU,aAAmB3O,UAAU;AAAAxB,MAAAA;AAAArE,IAAAyW,CAAAA,MAAAA,uBAAAzW,SAAA8W,kBAG3BzS,KAAA2S,CAAA,eAAA;AAEEC,UAAAA,gBAAsBR,sBAAsBO,UAAU;AAElDA,WAAAA,eAAUnX,SACZiX,eAAcI,CAAA,UAAA;AACZ,YAAAC,UAAgBD,MAAMF,UAAU,KAAM,GACtCI,YAAA;AAAA,QAAA,GAAsBF;AAAAA,QAAK,CAAGF,UAAU,GAAGG,UAAO;AAAA,MAAI;AAEtDJ,aAAAA,QAAQrL,OAAA2L,KAAYD,SAAS,EAAC5G,MAAO,GAE9B4G;AAAAA,IAAAA,CACR,IAGDL,QAAOpO,OAAa,GAAC,MAAA;AAIjBqO,qBAAUnX,SACZiX,eAAcQ,CAAA,YAAA;AACZ,cAAAC,cAAA;AAAA,UAAA,GAAsBL;AAAAA,QAAK;AAEvBE,eAAAA,YAAUJ,UAAU,MAAO,KAAA,OACtBI,YAAUJ,UAAU,GAE3BD,QAAQrL,OAAA2L,KAAYD,WAAS,EAAC5G,MAAO,KAErC4G,YAAUJ,UAAU,IAApBI,YAAUJ,UAAU,IAAC,GAGhBI;AAAAA,MACR,CAAA,IAGDL,QAAOS,QAAa,GAGtBP,gBAAa;AAAA,IAAA;AAAA,EAEhBjX,GAAAA,OAAAyW,qBAAAzW,OAAA8W,gBAAA9W,OAAAqE,MAAAA,KAAArE,EAAA,CAAA;AAzCH,QAAA0W,gBAAsBrS;AA2CrB,MAAAC,IAAAC;AAAAvE,IAAA2W,CAAAA,MAAAA,SAAA3W,SAAAyW,uBAGSnS,KAAAA,MAAMmS,sBAAsBE,KAAK,GAAGpS,KAAA,CAACoS,OAAOF,mBAAmB,GAACzW,OAAA2W,OAAA3W,OAAAyW,qBAAAzW,OAAAsE,IAAAtE,OAAAuE,OAAAD,KAAAtE,EAAA,CAAA,GAAAuE,KAAAvE,EAAA,CAAA,IAA1E+U,MAAAA,UAAUzQ,IAAoCC,EAA4B;AAAC,MAAAC,IAAAC;AAAAzE,IAAAwU,EAAAA,MAAAA,cAAAxU,EAAA,EAAA,MAAA2W,SAAA3W,EAAA0W,EAAAA,MAAAA,iBAAA1W,EAAA,EAAA,MAAA6F,SAAA7F,UAAAuU,UAGlE9P,KAAA;AAAA,IAAA4G,SAAA;AAAA,IAAAmJ;AAAAA,IAAAmC;AAAAA,IAAAD;AAAAA,IAAA7Q,MAAAA;AAAAA,IAAA0O;AAAAA,EAONvU,GAAAA,QAAAwU,YAAAxU,QAAA2W,OAAA3W,QAAA0W,eAAA1W,QAAA6F,OAAA7F,QAAAuU,QAAAvU,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA,GAAAwE,KAPMC;AADT,QAAAhF,QAAiC+E;AAUhCE,MAAAA;AAAA,SAAA1E,EAAAmB,EAAAA,MAAAA,YAAAnB,UAAAP,SAEMiF,KAAAuB,2BAAA,IAAA,aAAA,UAAA,EAA8BxG,OAAQ0B,SAAS,CAAA,GAAwBnB,QAAAmB,UAAAnB,QAAAP,OAAAO,QAAA0E,MAAAA,KAAA1E,EAAA,EAAA,GAAvE0E;AAAuE;AAxFzE,SAAA8S,SAAAC,KAAA;AAAA,SAgEkBC,MAAK;AAAA;AAhEvB,SAAA/O,QAAA+O,GAAA;AAAA,SA4CgBA,IAAK;AAAA;ACpDrB,MAAMC,wBAAwB;AAgB9B,SAAAC,MAAA/W,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAQDC,KAAAW;AAAiDM,MAAAA,UAAA+C,MAAA7D,IAAA+D;AAAApE,WAAAE,MALrD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc;AAAAA,IAAAmV,SAAAlS;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAKIhE,IAAiDF,OAAAE,IAAAF,OAAAmB,UAAAnB,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,OAAAjD,WAAAnB,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA;AAJnD6E,QAAAA,KAAAxE,OAA0BR,SAAA8X,wBAA1BtX,IAEAiW,UAAAlS,OAAWvE,aAAXuE;AAAWC,MAAAA;AAAArE,IAAA6E,CAAAA,MAAAA,MAAA7E,SAAAmB,YAAAnB,EAAA,CAAA,MAAAkE,QAMTG,oCAAC,WAAcH,EAAAA,GAAAA,MAAUW,IACtB1D,SAAAA,CACH,GAAYnB,OAAA6E,IAAA7E,OAAAmB,UAAAnB,OAAAkE,MAAAlE,OAAAqE,MAAAA,KAAArE,EAAA,CAAA;AAAAsE,MAAAA;AAAA,SAAAtE,EAAAqE,CAAAA,MAAAA,MAAArE,UAAAsW,WAHdhS,KAAC2B,2BAAA,IAAA,eAAuBqQ,EAAAA,SACtBjS,UAGF,GAAA,CAAA,GAAgBrE,OAAAqE,IAAArE,QAAAsW,SAAAtW,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAJhBsE;AAIgB;ACIb,SAAAuT,aAAAhX,OAAA;AAAAb,QAAAA,IAAAC,kBAAA,EAAA;AAAA6X,MAAAA,SAAA1F,OAAA2F,UAAAC,QAAAC,QAAA9W,UAAA+W,aAAA/U,UAAA2G,SAAAC,SAAAzG,UAAA6B,SAAA6D,WAAA/E,QAAAsL,gBAAArL,MAAAC,QAAAgU,UAAAxG,OAAAzR,IAAAkY,OAAAC;AAAArY,WAAAa,SACL;AAAA,IAAAyX,oBAAAJ;AAAAA,IAAAJ;AAAAA,IAAA1F;AAAAA,IAAA2F;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA9W;AAAAA,IAAAgC;AAAAA,IAAAgC;AAAAA,IAAA6D;AAAAA,IAAAc;AAAAA,IAAAC;AAAAA,IAAAzG;AAAAA,IAAAW;AAAAA,IAAAsL;AAAAA,IAAApL;AAAAA,IAAAgU;AAAAA,IAAAxG;AAAAA,IAAApK,MAAArH;AAAAA,IAAAuJ,GAAA2O;AAAAA,IAAAzO,GAAA0O;AAAAA,IAAA,GAAAnU;AAAAA,EAAAA,IAuBIrD,OAAKb,OAAAa,OAAAb,OAAA8X,SAAA9X,OAAAoS,OAAApS,OAAA+X,UAAA/X,OAAAgY,QAAAhY,OAAAiY,QAAAjY,OAAAmB,UAAAnB,OAAAkY,aAAAlY,OAAAmD,UAAAnD,OAAA8J,SAAA9J,QAAA+J,SAAA/J,QAAAsD,UAAAtD,QAAAmF,SAAAnF,QAAAgJ,WAAAhJ,QAAAiE,QAAAjE,QAAAuP,gBAAAvP,QAAAkE,MAAAlE,QAAAmE,QAAAnE,QAAAmY,UAAAnY,QAAA2R,OAAA3R,QAAAE,IAAAF,QAAAoY,OAAApY,QAAAqY,UAAAP,UAAA9X,EAAA,CAAA,GAAAoS,QAAApS,EAAA,CAAA,GAAA+X,WAAA/X,EAAA,CAAA,GAAAgY,SAAAhY,EAAA,CAAA,GAAAiY,SAAAjY,EAAA,CAAA,GAAAmB,WAAAnB,EAAA,CAAA,GAAAkY,cAAAlY,EAAA,CAAA,GAAAmD,WAAAnD,EAAA,CAAA,GAAA8J,UAAA9J,EAAA,CAAA,GAAA+J,UAAA/J,EAAA,EAAA,GAAAsD,WAAAtD,EAAA,EAAA,GAAAmF,UAAAnF,EAAA,EAAA,GAAAgJ,YAAAhJ,EAAA,EAAA,GAAAiE,SAAAjE,EAAA,EAAA,GAAAuP,iBAAAvP,EAAA,EAAA,GAAAkE,OAAAlE,EAAA,EAAA,GAAAmE,SAAAnE,EAAA,EAAA,GAAAmY,WAAAnY,EAAA,EAAA,GAAA2R,QAAA3R,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAoY,QAAApY,EAAA,EAAA,GAAAqY,QAAArY,EAAA,EAAA;AAJPuH,QAAAA,OAAArH,OAAgBL,SAAT,YAAPK;AAAgBG,MAAAA;AAAAA,OAQV6X,eAAWlK;AADnB,QAAAI,UAAgC/N,IAMhCoJ,KAAW2O,SAAU,KAAIhK,QAAU,CAAA,GACnCzE,KAAW0O,SAAU,KAAIjK,QAAU,CAAA;AAAAhK,MAAAA;AASnBC,QAAAA,KAAAyT,UAAU,cAAWjY;AAAYyE,MAAAA;AAAAtE,IAAA8J,EAAAA,MAAAA,WAAA9J,EAAA+J,EAAAA,MAAAA,WAAA/J,EAAAuP,EAAAA,MAAAA,kBAAAvP,UAAA2R,SAAA3R,EAAA,EAAA,MAAAqE,MAAArE,EAAA,EAAA,MAAAyJ,KAAAzJ,EAAA,EAAA,MAAA2J,KANxCrF,KAAA;AAAA,IAAA2K,MACCxF;AAAAA,IAACK;AAAAA,IAAAC;AAAAA,IAAAoF,KAGFxF;AAAAA,IAAC/E,OACC2K;AAAAA,IAAclS,YACTgH;AAAAA,IAAiC,GAC1CsN;AAAAA,EAAAA,GACJ3R,QAAA8J,SAAA9J,QAAA+J,SAAA/J,QAAAuP,gBAAAvP,QAAA2R,OAAA3R,QAAAqE,IAAArE,QAAAyJ,GAAAzJ,QAAA2J,GAAA3J,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAAAoE,KARME;AADT,QAAAiU,YAAiCnU;AAWhCG,MAAAA;AAISC,QAAAA,KAAAwT,kBAAkBA,SAAMnY,QACzB4E,KAAAwT,kBAAkBA,SAAMpY;AAAY6E,MAAAA;AAAA1E,IAAAwE,EAAAA,MAAAA,MAAAxE,UAAAyE,MAFpCC,KAAA;AAAA,IAAAuK,MACCzK;AAAAA,IAAoC2K,KACrC1K;AAAAA,IAAoCyK,OAAArP;AAAAA,IAAAuP,QAAAvP;AAAAA,EAAAA,GAG1CG,QAAAwE,IAAAxE,QAAAyE,IAAAzE,QAAA0E,MAAAA,KAAA1E,EAAA,EAAA,GAAAuE,KALMG;AADT,QAAA8T,aAAkCjU;AAQjCe,MAAAA;AAAAtF,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAKcd,KAAAmT,IAAY,YAAA,GAACzY,QAAAsF,MAAAA,KAAAtF,EAAA,EAAA;AAAAwF,MAAAA;AAAAxF,YAAA8X,WAgBftS,MAAAsS,UAAO,CAAI,UAAU,SAAS,IAAAjY,QAAaG,QAAA8X,SAAA9X,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA;AAAAuS,MAAAA;AAAAvS,YAAA8X,WAC3CvF,MAAAuF,UAAO,CAAI,WAAW,SAAS,IAAAjY,QAAaG,QAAA8X,SAAA9X,QAAAuS,OAAAA,MAAAvS,EAAA,EAAA;AAAAwS,MAAAA;AAAAxS,YAAA8X,WAC/CtF,MAAAsF,UAAO,CAAI,UAAU,UAAU,IAAAjY,QAAaG,QAAA8X,SAAA9X,QAAAwS,OAAAA,MAAAxS,EAAA,EAAA;AAAA0S,MAAAA;AAAA1S,IAAAmB,EAAAA,MAAAA,YAAAnB,UAAAmF,WAShDuN,MAACzM,2BAAA,IAAA,MAAA,EAAe,WAAA,UAAe,MAAA,GAAYd,kBAE3C,CAAA,GAAOnF,QAAAmB,UAAAnB,QAAAmF,SAAAnF,QAAA0S,OAAAA,MAAA1S,EAAA,EAAA;AAAA2S,MAAAA;AAAA3S,IAAAmD,EAAAA,MAAAA,YAAAnD,UAAAsD,YAAAtD,EAAA,EAAA,MAAA0S,OATTC,MAAC1M,2BAAAA,IAAA,MAAA,EACS,WAAA,oBACE,WAAA,UACJ,MAAC,GACG9C,UACAG,UAEVoP,UAAAA,IAGF,CAAA,GAAO1S,QAAAmD,UAAAnD,QAAAsD,UAAAtD,QAAA0S,KAAA1S,QAAA2S,OAAAA,MAAA3S,EAAA,EAAA;AAAA6S,MAAAA;AAAA7S,IAAAoS,EAAAA,MAAAA,SAAApS,UAAA+X,YAAA/X,EAAA,EAAA,MAAAwY,cAEN3F,MAAAT,SACEnM,+BAAA,OAAA,EACM8R,KAAO,UACLS,OAAS,YACT3K,OAAAA,6BACCC,QAA2BA,8BAC3BC,QAAAA,8BAEX,GAAA/N,QAAAoS,OAAApS,QAAA+X,UAAA/X,QAAAwY,YAAAxY,QAAA6S,OAAAA,MAAA7S,EAAA,EAAA;AAAA8S,MAAAA;AAAA,SAAA9S,UAAAgJ,aAAAhJ,EAAAiE,EAAAA,MAAAA,UAAAjE,EAAA,EAAA,MAAAkE,QAAAlE,UAAAuY,aAAAvY,EAAAmE,EAAAA,MAAAA,UAAAnE,EAAAmY,EAAAA,MAAAA,YAAAnY,EAAA,EAAA,MAAAwF,OAAAxF,UAAAuS,OAAAvS,EAAAwS,EAAAA,MAAAA,OAAAxS,EAAA,EAAA,MAAA2S,OAAA3S,UAAA6S,OAAA7S,EAAA,EAAA,MAAAuH,QAzCHuL,sCAAC,OACY,EAAA,WAAAxN,IACH,WAAA,cACJpB,MACA,IAAAwU,oBAAAC,KACepR,qBAAG,MACNyB,kBAAQ,WACV,eAAA,UACN,SAAA,QACEmP,UAAAA,UACFlU,QACAE,QACD,QAAA,UACAoU,OAAAA,WACDhR,MACI,UAAAtK,qBAAAC,MACE,YAAAD,qBAAAQ,YACH,SAAA+H,KACA,SAAA+M,KACH,MAAAC,KAENG,UAAAA;AAAAA,IAAAA;AAAAA,IAYCE;AAAAA,EASH,EAAA,CAAA,GAAQ7S,QAAAgJ,WAAAhJ,QAAAiE,QAAAjE,QAAAkE,MAAAlE,QAAAuY,WAAAvY,QAAAmE,QAAAnE,QAAAmY,UAAAnY,QAAAwF,KAAAxF,QAAAuS,KAAAvS,QAAAwS,KAAAxS,QAAA2S,KAAA3S,QAAA6S,KAAA7S,QAAAuH,MAAAvH,QAAA8S,OAAAA,MAAA9S,EAAA,EAAA,GA1CR8S;AA0CQ;AChGL,MAAM8F,0BAA0B;AAkFvC,SAAAC,kBAAA;AAAA7Y,QAAAA,IAAAC,kBAAA,CAAA,GACE;AAAA,IAAAsU;AAAAA,MAAiB/G,SAAS;AAACtN,MAAAA;AAAA,SAAAF,SAAAuU,UAGzBrU,KAAA+F,+BAAA,SACS,OAAA;AAAA,IAAAjC,UACK;AAAA,IAAOzB,OAAA;AAAA,IAAAqC,OAEV;AAAA,IAAOtC,QACN;AAAA,IAAOiS;AAAAA,EAGjB,EAAA,CAAA,GAAAvU,OAAAuU,QAAAvU,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GARFE;AAQE;AASC,SAAS4Y,QACdjY,OACmB;AACbkY,QAAAA,yBAAyBzN,sBAEzB;AAAA,IACJgN,oBAAoBlK,UAAUJ;AAAAA,IAC9B8J,SAASkB,WAAW;AAAA,IACpB5G,OAAO6G,YAAY;AAAA,IACfpU,KAAK+T;AAAAA,IACTzX,UAAU+X;AAAAA,IACV9X;AAAAA,IACA+X,gBAAgB;AAAA,IAChBC;AAAAA,IACAxS;AAAAA,IACAyS,qBAAqBxY,MAAMwY,sBACzBpL,8BAA4BpN,MAAMmI,aAAa,QAAQ;AAAA,IACzDsQ;AAAAA,IACAC,mBAAmBR,uBAAuBxa;AAAAA,IAC1Cib;AAAAA;AAAAA,IAEAnF;AAAAA,IACAoF;AAAAA,IACAnW,WAAW;AAAA,IACX6B;AAAAA,IACA6D,WAAW0Q,gBAAgB;AAAA,IAC3BC,oBAAoB;AAAA,IACpB1M;AAAAA,IACA2M,kBAAkB;AAAA,IAClB3V,SAAS;AAAA,IACT8H,KAAKqI;AAAAA,IACLyF,oBAAoBd,uBAAuBxa;AAAAA,IAC3Cub;AAAAA,IACA5N;AAAAA,IACA/H,SAAS;AAAA,IACToD,OAAO;AAAA,IACP3C,OAAOmV,YAAY;AAAA,IACnBzD,SAASC,cAAcrY,UAAUE;AAAAA,IACjC4b;AAAAA,IACA,GAAG9V;AAAAA,EAAAA,IACDrD,OAEE3D,OAAOkP,WAGP0L,UADuBpP,4BACU,KAAQsQ,UACzC1C,UAAUvW,kBAAkBwW,WAAW,GACvCxK,MAAM2I,MAA8B,OAAA,IAAI,GACxCqD,WAAWrD,aAA8B,IAAI,GAC7C9F,eAA6B;AAE+BwF,QAAAA,oBAAAA,cAAc,MAAMrI,IAAI6I,OAAO;AAGjG,QAAMqF,oBAAoBvF,MAAAA,OAAe7U,MAAS,GAE5Cqa,aAAaC,cAAQ,MAAM;AAC/B,UAAMC,MAAoB,CAAE;AAG5B,YAAIjB,iBAAiBS,qBACfD,sBAAsB,kBACxBS,IAAIlJ,KACFmJ,yBAAc;AAAA,MACZC,mBAAmB,CAACZ,aAAa,EAAEa,OAAOlB,kBAAkB;AAAA,IAC7D,CAAA,CACH,IAEAe,IAAIlJ,KACFsJ,gBAAK;AAAA,MACH9L,UAAU6K,oBAAoB1Z;AAAAA,MAC9BwZ;AAAAA,MACAlU,SAASyI;AAAAA,MACTgB;AAAAA,IACD,CAAA,CACH,IAKJwL,IAAIlJ,KAAKuJ,WAAAA,OAAO;AAAA,MAACC,UAAU/M;AAAAA,IAAAA,CAAyB,CAAC,IAGjDwL,iBAAiBG,wBACnBc,IAAIlJ,KACFrL,KAAK;AAAA,MACHsI,MAAM;AAAA,QAACkB;AAAAA,QAAgBC;AAAAA,QAAiBnC;AAAAA,QAAUoC;AAAAA,MAAAA,GAAiB;AAG/CqF,0BAAAA,UAAUrF,gBAExB+J,wBACFnM,SAAS9D,SAASsI,MAAM/M,QAAQ,GAAG2K,cAAc,OAG/C4J,kBACFhM,SAAS9D,SAASsI,MAAMxO,WAAW,GAAGkM,cAAc,MACpDlC,SAAS9D,SAASsI,MAAM7C,YAAY,GAAGQ,eAAe;AAAA,MAE1D;AAAA,MACA9C,iBAAiB+M,oBAAoB1Z;AAAAA,MAErCuO;AAAAA,MAEAjJ,SAASyI;AAAAA,IACV,CAAA,CACH,GAIEgM,mBACFQ,IAAIlJ,KACF1H,WAAAA,MAAM;AAAA,MACJkF,UAAU6K,oBAAoB1Z;AAAAA,MAC9B+O;AAAAA,MACAzJ,SAASyI;AAAAA,IACV,CAAA,CACH,GAIEqL,aACFmB,IAAIlJ,KACFkB,WAAAA,MAAM;AAAA,MACJ7T,SAASwZ;AAAAA,MACT5S,SAASyI;AAAAA,IAAAA,CACV,CACH,GAKEkK,WACFsC,IAAIlJ,KAAKtI,MAAM,GAGjBwR,IAAIlJ,KACFyJ,gBAAK;AAAA,MACHjM,UAAUmL,qBAAqBha;AAAAA,MAC/BsF,SAASyI;AAAAA,MACTuK,UAAU;AAAA,IACX,CAAA,CACH,GAEOiC;AAAAA,EACN,GAAA,CACDtC,SACAmB,WACAE,eACAE,oBACAE,kBACAG,eACAC,mBACAvL,SACAkL,qBACAM,iBACAC,iBAAiB,CAClB,GAEK;AAAA,IAACpQ;AAAAA,IAAGE;AAAAA,IAAGZ;AAAAA,IAAgBC;AAAAA,IAAW4R;AAAAA,IAAMzC;AAAAA,IAAU0C;AAAAA,MAAUC,uBAAY;AAAA,IAC5EZ;AAAAA,IACAlR,WAAW0Q;AAAAA,IACXqB,sBAAsBC,WAAAA;AAAAA,IACtB7N,UAAU2M,mBACN;AAAA,MACEvL,WAAWuL;AAAAA,IAAAA,IAEbja;AAAAA,EACL,CAAA,GAEKob,kBAAkBlS,eAAe4R,MAAMM,iBAEvCjD,SAASjP,eAAeqJ,OAAO3I,GAC/BwO,SAASlP,eAAeqJ,OAAOzI,GAE/BG,UAAUf,eAAe,mBAAmB,GAAGe,SAC/CC,UAAUhB,eAAe,mBAAmB,GAAGgB,SAE/CmR,WAAWC,MAAAA,YAAaC,CAAmC,YAAA;AAC/DrD,aAASnD,UAAUwG;AAAAA,KAClB,CAAE,CAAA,GAECC,cAAcF,kBACjBxc,CAAgC,SAAA;AAC/BoN,QAAI6I,UAAUjW,MACdic,KAAKS,YAAY1c,IAAI;AAAA,EAAA,GAEvB,CAACic,IAAI,CACP,GAEMU,eAAeH,kBAClBxc,CAA6B,WAAA;AAG5B,QAFAic,KAAKU,aAAa3c,MAAI,GAElB,CAACua,UAAW;AAEVqC,UAAAA,WAAW/P,cAAc0N,SAAS;AAEpC,WAAOqC,YAAa,aACtBA,SAAS5c,MAAI,IACJ4c,aACTA,SAAS3G,UAAUjW;AAAAA,EAGvB,GAAA,CAACua,WAAW0B,IAAI,CAClB,GAEMY,QAAQrB,MAAAA,QAAQ,MAEhBL,mBAAyBZ,YAExBA,YAEEuC,MAAAA,aAAavC,WAAW;AAAA,IAACnN,KAAKuP;AAAAA,EAAa,CAAA,IAF3B,MAGtB,CAACpC,WAAWY,kBAAkBwB,YAAY,CAAC;AAY9C,MAVAvG,gBAAU,MAAM;AACViF,kBACE,OAAOA,aAAc,aACvBA,UAAUa,MAAM,IACPb,cACTA,UAAUpF,UAAUiG;AAAAA,EAGvB,GAAA,CAACA,QAAQb,SAAS,CAAC,GAElBpT;AACF,WAAOsS,aAAejT,2BAAAA,IAAAyV,WAAA,UAAA,EAAA;AAGxB,QAAM/c,SAID6a,2BAAAA,KAAAA,WAAAA,UAAAA,EAAAA,UAAAA;AAAAA,IAAAA,wCAAU,iBAAkB,EAAA;AAAA,IAE5BvT,2BAAA,IAAA,cAAA,EACK/B,GAAAA,MACJ,oBAAoBkK,SACpB,SACA,OAAO6K,WACP,UAAUiC,UACV,QACA,QACA,IACA,WAAWS,YAAW;AAAA,MAACva;AAAAA,IAAAA,CAAU,GACjC,QAAQ6Z,iBACR,UAAUlB,WACV,UACA,SACA,WACA,QACA,KAAKsB,aACL,QACA,QACA,SACA,SACA,UACA,GACA,GACA,SAECjC,UACH,QAAA,CAAA;AAAA,EACF,EAAA,CAAA,GAGIjY,WACJsY,SACCxM,SACChH,2BAAA,IAAC,UAAO,iBAAiB,OAAOgH,UAAW,WAAWA,SAASpN,QAC7D,yCAAC,cAAa,EAAA,MAAM0H,SAAS,YAAYrK,KAAKqK,OAAOA,MAAM,QAAQ2E,UAAU,SAC1EvN,UACH,OAAA,CAAA,EACF,CAAA,IAEAA;AAGJ,SAGKmZ,2BAAAA,KAAAA,qBAAAA,EAAAA,UAAAA;AAAAA,IAAU,UAAA7R,2BAAAA,IAAC2V,aAAAA,iBAAiBza,EAAAA,SAAAA,CAAS,IAAqBA;AAAAA,IAG1Dqa;AAAAA,EAAAA,GACH;AAEJ;AClbO,MAAMK,6BAA6B;AAsBnC,SAAAC,WAAAjb,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAUDC,KAAAW;AAA2D,MAAAO,WAAA6C,QAAAC,MAAAmD,UAAAhH,IAAAkH;AAAAvH,WAAAE,MAP/D;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAe;AAAAA,IAAA6C;AAAAA,IAAAoD;AAAAA,IAAAE;AAAAA,IAAA,GAAArD;AAAAA,EAAA,IAOIhE,IAA2DF,OAAAE,IAAAF,OAAAoB,WAAApB,OAAAiE,QAAAjE,OAAAkE,MAAAlE,OAAAqH,UAAArH,OAAAK,IAAAL,OAAAuH,SAAAnG,YAAApB,EAAA,CAAA,GAAAiE,SAAAjE,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAqH,WAAArH,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAuH,OAAAvH,EAAA,CAAA;AAN7D6E,QAAAA,KAAAxE,OAA+BR,SAAAgc,6BAA/Bxb;AAA+B+D,MAAAA;AAAApE,IAAAoB,CAAAA,MAAAA,aAAApB,SAAAiE,UAAAjE,EAAA,CAAA,MAAAuH,QAYlBnD,KAAA2X,IAAAA,YAAA;AAAA,IAAA3a;AAAAA,IAAA6C;AAAAA,IAAAsD;AAAAA,EAAAA,CAAqC,GAACvH,OAAAoB,WAAApB,OAAAiE,QAAAjE,OAAAuH,MAAAvH,QAAAoE,MAAAA,KAAApE,EAAA,EAAA;AAClCqE,QAAAA,KAAAgD,WAAW,KAAExH;AAAYyE,MAAAA;AAAAtE,SAAAA,EAAA,EAAA,MAAA6E,MAAA7E,EAAAkE,EAAAA,MAAAA,QAAAlE,EAAAoE,EAAAA,MAAAA,MAAApE,UAAAqE,MAJ1CC,KAAA2B,+BAAC,OACK/B,GAAAA,MACAW,IACO,WAAAT,IACI,iBAAAC,IACf,GAAArE,QAAA6E,IAAA7E,QAAAkE,MAAAlE,QAAAoE,IAAApE,QAAAqE,IAAArE,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GALFsE;AAKE;ACzCC,MAAM0X,wBAAwB;AAgC9B,SAAAC,MAAApb,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAQDC,KAAAW;AAAiDO,MAAAA,WAAAI,KAAA0C,MAAA7D;AAAAL,WAAAE,MALrD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAe;AAAAA,IAAAI;AAAAA,IAAA,GAAA0C;AAAAA,EAAAA,IAKIhE,IAAiDF,OAAAE,IAAAF,OAAAoB,WAAApB,OAAAwB,KAAAxB,OAAAkE,MAAAlE,OAAAK,OAAAe,YAAApB,EAAA,CAAA,GAAAwB,MAAAxB,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA;AAJnD6E,QAAAA,KAAAxE,OAA0BR,SAAAmc,wBAA1B3b;AAA0B+D,MAAAA;AAAApE,WAAAoB,aAYbgD,KAAA8X,IAAAA,MAAA;AAAA,IAAA9a;AAAAA,EAAiB,CAAA,GAACpB,OAAAoB,WAAApB,OAAAoE,MAAAA,KAAApE,EAAA,CAAA;AAAAqE,MAAAA;AAAArE,SAAAA,EAAA,CAAA,MAAA6E,MAAA7E,EAAAwB,CAAAA,MAAAA,OAAAxB,EAAAkE,CAAAA,MAAAA,QAAAlE,UAAAoE,MAL/BC,KAAC4B,2BAAA,IAAA,KAAA,EACS,WAAA,SAAO,GACX/B,MACAW,IACS,cAAA,OACF,WAAAT,IACH,SAAA,QACH5C,IACL,CAAA,GAAAxB,OAAA6E,IAAA7E,OAAAwB,KAAAxB,OAAAkE,MAAAlE,QAAAoE,IAAApE,QAAAqE,MAAAA,KAAArE,EAAA,EAAA,GARFqE;AAQE;ACpDC8X,SAAAA,kBAAApQ,KAAAqQ,gBAAA;AAAApc,QAAAA,IAAAC,kBAAA,CAAA;AAAAC,MAAAA;AAAAF,WAAAoc,kBAAApc,EAAA+L,CAAAA,MAAAA,IAAA6I,WAIK1U,KAAAA,MAAA;AACL0U,QAAAA,SAAAyH,kBAA4BD,kBAAkB,EAAE;AAAA,EAAA,GACpDpc,OAAAoc,gBAAApc,EAAA,CAAA,IAAA+L,IAAA6I,SAAA5U,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAAAK,MAAAA;AAAAL,IAAAoc,CAAAA,MAAAA,kBAAApc,SAAA+L,OAAE1L,KAAA,CAAC+b,gBAAgBrQ,GAAG,GAAC/L,OAAAoc,gBAAApc,OAAA+L,KAAA/L,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAFxB+U,MAAAA,UAAU7U,IAEPG,EAAqB;AAAC;ACuBpB,MAAMic,6BAA6B;AA4CnC,SAAAC,UAAA1b,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GA0BDC,KAAAW;AAA0D,MAAAkG,eAAAE,oBAAAuV,6BAAApb,WAAAqb,aAAAL,gBAAAhI,cAAAsI,SAAAC,QAAAC,UAAA1Y,MAAA2Y,QAAAxc,IAAA+D,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC,IAAAE;AAAA5E,MAAAA,SAAAE,IAAA;AAvB9D,UAAA;AAAA,MAAAsc,6BAAAlX;AAAAA,MAAAT,IAAAW;AAAAA,MAAAV,QAAAyN;AAAAA,MAAAnR,WAAAoR;AAAAA,MAAAiK,aAAA/J;AAAAA,MAAA9L,UAAA+L;AAAAA,MAAA9L,UAAAgM;AAAAA,MAAArR,KAAAsR;AAAAA,MAAAhM,MAAAiM;AAAAA,MAAA/L,WAAA+M;AAAAA,MAAA2I,SAAA1I;AAAAA,MAAA7O,SAAA8O;AAAAA,MAAA0I,QAAAG;AAAAA,MAAA7Y,QAAA8Y;AAAAA,MAAAH,UAAAI;AAAAA,MAAAjR,KAAAkR;AAAAA,MAAAJ,QAAAK;AAAAA,MAAAd,gBAAAe;AAAAA,MAAApf,MAAAqf;AAAAA,MAAArX,QAAAsX;AAAAA,MAAAzY,OAAA0Y;AAAAA,MAAA,GAAAC;AAAAA,IAAAA,IAuBIrd;AAvBJsc,kCAAAlX,KAAAjF,KAAAmF,MAAApB,KAAAmO,MAAAnR,YAAAoR,MAAAiK,cAAA/J,MAAArO,KAAAsO,MAAArO,KAAAuO,MAAAtO,KAAAuO,MAAA/L,gBAAAgM,MAAA9L,qBAAA8M,MAAA2I,UAAA1I,MAAAxP,KAAAyP,MAAA0I,SAAAG,MAAArY,KAAAsY,MAAAH,WAAAI,MAAA5I,eAAA6I,MAAAJ,SAAAK,MAAAd,iBAAAe,MAAAzY,KAAA0Y,MAAAxY,QAAA0Y,MAAApZ,OAAAqZ,MAuB8Dvd,OAAAE,IAAAF,OAAA+G,eAAA/G,OAAAiH,oBAAAjH,OAAAwc,6BAAAxc,OAAAoB,WAAApB,OAAAyc,aAAAzc,OAAAoc,gBAAApc,OAAAoU,cAAApU,OAAA0c,SAAA1c,OAAA2c,QAAA3c,QAAA4c,UAAA5c,QAAAkE,MAAAlE,QAAA6c,QAAA7c,QAAAK,IAAAL,QAAAoE,IAAApE,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAuE,IAAAvE,QAAAwE,IAAAxE,QAAAyE,IAAAzE,QAAA0E,IAAA1E,QAAA4E;AAAAA,EAAA;AAAAmC,oBAAA/G,EAAA,CAAA,GAAAiH,qBAAAjH,EAAA,CAAA,GAAAwc,8BAAAxc,EAAA,CAAA,GAAAoB,YAAApB,EAAA,CAAA,GAAAyc,cAAAzc,EAAA,CAAA,GAAAoc,iBAAApc,EAAA,CAAA,GAAAoU,eAAApU,EAAA,CAAA,GAAA0c,UAAA1c,EAAA,CAAA,GAAA2c,SAAA3c,EAAA,CAAA,GAAA4c,WAAA5c,EAAA,EAAA,GAAAkE,OAAAlE,EAAA,EAAA,GAAA6c,SAAA7c,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAAoE,KAAApE,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA,GAAAsE,KAAAtE,EAAA,EAAA,GAAAuE,KAAAvE,EAAA,EAAA,GAAAwE,KAAAxE,EAAA,EAAA,GAAAyE,KAAAzE,EAAA,EAAA,GAAA0E,KAAA1E,EAAA,EAAA,GAAA4E,QAAA5E,EAAA,EAAA;AArBxDqF,QAAAA,UAAAhF,OAAoCR,SAAAyc,6BAApCjc,IACJyE,SAAAV,OAAavE,cAAbuE,IAGAwC,WAAAvC,OAAgBxE,cAAhBwE,IACAwC,WAAAvC,OAAYzE,aAAZyE,IACA9C,MAAA+C,OAAO1E,aAAP0E,IAIAY,UAAAX,OAAW3E,aAAX2E,IAEAP,SAAAQ,OAAU5E,aAAV4E,IAKA1G,OAAA2G,OAAa7E,SAAN,SAAP6E,IAMFqH,MAAY2I,MAAAA,OAAA,IAAoC,GAEhD8I,oBAA0Bzd,kBAAkBoF,OAAO,GAEnDsY,kBAAwB/d,CAAQ+c,CAAAA;AAAYnX,MAAAA;AAAAtF,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAI1Cd,KAAAA,MAAMyG,IAAG6I,SAAQ5U,QAAAsF,MAAAA,KAAAtF,EAAA,EAAA,GAFnB6U,MAAAA,oBACET,cACA9O,EACF,GAEA6W,kBAAkBpQ,KAAKqQ,cAAc;AAGrC,QAAAsB,uBAAA/U;AAGMnD,MAAAA;AAAAxF,YAAA0c,WAGJlX,MAAAmY,CAAA,YAAA;AACOC,YAAAA,eAAAA,GACL5I,QAAK6I,gBAAiB,GAElBnB,WAASA,WAGb3Q,IAAG6I,SAAAkJ,MAAA;AAAA,EAAA,GACJ9d,QAAA0c,SAAA1c,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA;AATH,QAAA+d,mBAAyBvY;AAWxB,MAAA+M,KAAAC;AAAAxS,YAAAwd,qBAGQhL,MAAA9G,OAAAsS,YACLtS,OAAAuS,QAAeT,iBAAiB,EAACpM,IAAAoG,QAMhC,CACH,GAACxX,QAAAwd,mBAAAxd,QAAAwS,OAAAA,MAAAxS,EAAA,EAAA,GARDuS,MAAOC;AADT,QAAA0L,wBAA8B3L;AAUP,MAAAG,KAAAC;AAAA3S,YAAAwd,qBAGd7K,MAAAjH,OAAAsS,YACLtS,OAAAuS,QAAeT,iBAAiB,EAACpM,IAAA+M,MAMhC,CACH,GAACne,QAAAwd,mBAAAxd,QAAA2S,OAAAA,MAAA3S,EAAA,EAAA,GARD0S,MAAOC;AADT,QAAAyL,qBAA2B1L;AAUJG,MAAAA;AAGdrT,QAAAA,SAASid,WAAW,IAAIA,cAAWzf;AAD5C,QAAAqhB,mBAAoDxL;AAGnDC,MAAAA;AAAA9S,IAAA8E,EAAAA,MAAAA,UAAA9E,EAAAoB,EAAAA,MAAAA,aAAApB,EAAA6G,EAAAA,MAAAA,YAAA7G,UAAAwB,OAAAxB,EAAA,EAAA,MAAAmF,WAAAnF,EAAA,EAAA,MAAAiE,UAAAjE,EAAA,EAAA,MAAA4E,SAKckO,MAAAwL,IAAAA,UAAA;AAAA,IAAAld;AAAAA,IAAA0D;AAAAA,IAAA+B;AAAAA,IAAA1B;AAAAA,IAAAlB;AAAAA,IAAAzC;AAAAA,IAAAoD;AAAAA,EAAAA,CAQV,GAAC5E,QAAA8E,QAAA9E,QAAAoB,WAAApB,QAAA6G,UAAA7G,QAAAwB,KAAAxB,QAAAmF,SAAAnF,QAAAiE,QAAAjE,QAAA4E,OAAA5E,QAAA8S,OAAAA,MAAA9S,EAAA,EAAA;AACc+S,QAAAA,MAAAhM,gBAAgB,KAAElH,QACjBkU,MAAA9M,qBAAqB,KAAEpH,QAC1BmU,MAAAoI,iBAAiB,KAAEvc,QACpBoU,MAAA0I,SAAS,KAAE9c,QACRid,OAAClW,YAAYgW,WAAW,KAAE/c,QAC7Bkd,MAAAF,SAAS,KAAEhd;AAAYmd,MAAAA;AAAAhd,YAAA2c,UAInCK,MAAAL,UACE1W,2BAAA,IAAA,KAAA,EAAe,WAAAsY,IAAAA,gBAA0B,GAAA,QAAA,UACxC,UAAAtY,2BAAA,IAAA,QAAO0W,EAAAA,UAAAA,OAAO,CAAA,EAChB,CAAA,GACD3c,QAAA2c,QAAA3c,QAAAgd,OAAAA,MAAAhd,EAAA,EAAA;AAAAid,MAAAA;AAAAjd,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAEe6W,MAAAuB,IAAiB,iBAAA,GAACxe,QAAAid,OAAAA,MAAAjd,EAAA,EAAA;AAAAkd,MAAAA;AAAAld,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAGnB8W,MAAAuB,IAAc,cAAA,GAACze,QAAAkd,OAAAA,MAAAld,EAAA,EAAA;AACNmd,QAAAA,MAAAX,8BAA8B,KAAE3c;AAAYud,MAAAA;AAAApd,YAAAqF,WAAArF,EAAA4G,EAAAA,MAAAA,YAAA5G,EAAA4c,EAAAA,MAAAA,YAAA5c,EAAA,EAAA,MAAAkE,QAAAlE,UAAAmd,OAAAnd,EAAA,EAAA,MAAAjC,QAHlEqf,MAACnX,2BAAA,IAAA,SAAA,EAAO,GACF/B,MACO,WAAAgZ,KACS,sBAAAC,KACVvW,UACAgW,UACL7Q,KACChO,KACN,CAAA,GAAAiC,QAAAqF,SAAArF,QAAA4G,UAAA5G,QAAA4c,UAAA5c,QAAAkE,MAAAlE,QAAAmd,KAAAnd,QAAAjC,MAAAiC,QAAAod,OAAAA,MAAApd,EAAA,EAAA;AAAAsd,MAAAA;AAAAtd,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAEckX,MAAAoB,IAAmB,mBAAA,GAAC1e,QAAAsd,OAAAA,MAAAtd,EAAA,EAAA;AAAAud,MAAAA;AAAAvd,IAAA+G,EAAAA,MAAAA,iBAAA/G,UAAA6G,YAAA7G,EAAA,EAAA,MAAAmF,WACjCoY,MAAAxW,iBACEd,2BAAAA,IAAA,KAAA,EAAad,SAAkB,UAAA,YAAqB,UAAC,GAAa,WAAC,GAClE,UAAAsC,2BAAA,KAAC,MAAWZ,EAAAA,MAAO,UAChBe,UAAAA;AAAAA,IAAAA,MAAAA,eAAeb,aAAa,KAAKA;AAAAA,IACjCc,QAAAA,mBAAmBd,aAAa,KAAKd,2BAAA,IAAC,eAAa,CAAA,CAAA;AAAA,EAAA,GACtD,EAAA,CACF,GACDjG,QAAA+G,eAAA/G,QAAA6G,UAAA7G,QAAAmF,SAAAnF,QAAAud,OAAAA,MAAAvd,EAAA,EAAA;AAAA2e,MAAAA;AAAA3e,IAAA,EAAA,MAAAiH,sBAAAjH,EAAA6G,EAAAA,MAAAA,YAAA7G,EAAAmF,EAAAA,MAAAA,WAAAnF,UAAAyd,mBAEAkB,MAAA,CAAClB,mBAAmBxW,sBAClBhB,2BAAA,IAAA,KAAA,EAAad,SAAkB,UAAA,YAAqB,UAAA,GAAe,YAAA,GAClE,UAACsC,gCAAA,MAAA,EAAWZ,MAAAA,UACTe,UAAAA;AAAAA,IAAAA,MAAAA,eAAeX,kBAAkB,KAAKA;AAAAA,IACtCY,QAAAA,mBAAmBZ,kBAAkB,KAAKhB,2BAAA,IAAC,oBAAkB,CAAA,CAAA;AAAA,EAChE,EAAA,CAAA,EACF,CAAA,GACDjG,QAAAiH,oBAAAjH,QAAA6G,UAAA7G,QAAAmF,SAAAnF,QAAAyd,iBAAAzd,QAAA2e,OAAAA,MAAA3e,EAAA,EAAA;AAAA4e,MAAAA;AAAA5e,IAAAud,EAAAA,MAAAA,OAAAvd,UAAA2e,OAjBHC,MAACnX,2BAAAA,KAAA,KAAA,EAAe,WAAA6V,KAA+B,UAAA,YAC5CC,UAAAA;AAAAA,IAAAA;AAAAA,IASAoB;AAAAA,EAAAA,EAQH,CAAA,GAAM3e,QAAAud,KAAAvd,QAAA2e,KAAA3e,QAAA4e,OAAAA,MAAA5e,EAAA,EAAA;AAAA6e,MAAAA;AAAA7e,IAAA,EAAA,MAAAyc,eAAAzc,EAAAke,EAAAA,MAAAA,yBAAAle,UAAAoe,sBAAApe,EAAA,EAAA,MAAAqe,oBAAAre,EAAA4G,EAAAA,MAAAA,YAAA5G,EAAA6G,EAAAA,MAAAA,YAAA7G,EAAA,EAAA,MAAA+d,oBAAA/d,EAAAiE,EAAAA,MAAAA,UAAAjE,UAAA4c,YAELiC,MAACjY,CAAAA,YAAagW,CAAAA,YAAYH,eACzBxW,2BAAA,IAAC,KACW,EAAA,UAAC,GACC,YAAC,GACJiY,SAAoB,uBACpB,UAAA,YACF,OAAA;AAAA,IAAA3J,QAAA;AAAA,EAAA,GAEP,UAAAtO,2BAAAA,IAAC,QACY,EAAA,cAAA,SACH,WAAA,gBACA,SAAA,SACEY,UACJiY,MAAAA,MAAAA,WACD,MAAA,SACIV,SAAAA,oBACDna,QACJoa,GAAAA,kBACKN,SAAe,kBACXL,aAAAA,qBAAoB,CAAA,EAErC,CAAA,GACD1d,QAAAyc,aAAAzc,QAAAke,uBAAAle,QAAAoe,oBAAApe,QAAAqe,kBAAAre,QAAA4G,UAAA5G,QAAA6G,UAAA7G,QAAA+d,kBAAA/d,QAAAiE,QAAAjE,QAAA4c,UAAA5c,QAAA6e,OAAAA,MAAA7e,EAAA,EAAA;AAAA+e,MAAAA;AAAA/e,IAAAod,EAAAA,MAAAA,OAAApd,UAAA4e,OAAA5e,EAAA,EAAA,MAAA6e,OArDHE,sCAAC,KAAe,EAAA,WAAA9B,KAA0B,MAAA,GAAY,UAAA,YACpDG,UAAAA;AAAAA,IAAAA;AAAAA,IAUAwB;AAAAA,IAoBCC;AAAAA,EAAAA,GAuBH,GAAM7e,QAAAod,KAAApd,QAAA4e,KAAA5e,QAAA6e,KAAA7e,QAAA+e,OAAAA,MAAA/e,EAAA,EAAA;AAAAgf,MAAAA;AAAAhf,YAAA6c,UAELmC,MAAAnC,UACE5W,2BAAA,IAAA,KAAA,EAAe,WAAAgZ,IAAAA,gBAA0B,GAAA,QAAA,UACxC,UAAAhZ,2BAAA,IAAA,QAAO4W,EAAAA,UAAAA,OAAO,CAAA,EAChB,CAAA,GACD7c,QAAA6c,QAAA7c,QAAAgf,OAAAA,MAAAhf,EAAA,EAAA;AAAAkf,MAAAA;AAAA,SAAAlf,EAAA8S,EAAAA,MAAAA,OAAA9S,UAAA+S,OAAA/S,EAAA,EAAA,MAAA+T,OAAA/T,UAAAgU,OAAAhU,EAAAiU,EAAAA,MAAAA,OAAAjU,UAAA8c,OAAA9c,EAAA,EAAA,MAAA+c,OAAA/c,EAAAgd,EAAAA,MAAAA,OAAAhd,EAAA,EAAA,MAAA+e,OAAA/e,UAAAgf,OAtFHE,MAACzX,2BAAAA,KAAA,KAAA,EACY,YAAA,UACA,WAAAqL,KASK,kBAAAC,KACC,mBAAAgB,KACH,gBAAAC,KACD,eAAAC,KACG,kBAAA6I,KACH,eAAAC,KACL,WAAA,aACA,SAAA,QAEPC,UAAAA;AAAAA,IAAAA;AAAAA,IAMD+B;AAAAA,IAwDCC;AAAAA,EAAAA,GAKH,GAAMhf,QAAA8S,KAAA9S,QAAA+S,KAAA/S,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAiU,KAAAjU,QAAA8c,KAAA9c,QAAA+c,KAAA/c,QAAAgd,KAAAhd,QAAA+e,KAAA/e,QAAAgf,KAAAhf,QAAAkf,OAAAA,MAAAlf,EAAA,EAAA,GAvFNkf;AAuFM;AAjLH,SAAAf,OAAAje,IAAA;AA0EsC,QAAA,CAAAif,OAAAC,OAAA,IAAAlf;AACjCT,SAAAA,YAAW,IAAA,CAAUoL,OAAG,CAAA,IACxBpL,YAAW,IAAA,CAAUoL,OAAG,CAAA,IACxBpL,YAAW,IAAA,CAAUoL,OAAG,CAAA,IAEpBA,CAAAA,OAAK,OAAOpL,WAAU,WAAWA,UAAK,IAAQ,CAAA;AAAA;AA/EvD,SAAA+X,SAAAtX,IAAA;AA8DsC,QAAA,CAAA2K,MAAApL,KAAA,IAAAS;AACjCT,SAAAA,UAAW,IAAA,CAAUoL,MAAG,CAAA,IACxBpL,UAAW,IAAA,CAAUoL,MAAG,CAAA,IACxBpL,UAAW,IAAA,CAAUoL,MAAG,CAAA,IAEpBA,CAAAA,MAAK,OAAOpL,SAAU,WAAWA,QAAK,IAAQ,CAAA;AAAA;AAnEvD,SAAAkJ,QAAAqM,OAAA;AA2CE4I,QAAAA,eAAAA,GACL5I,MAAK6I,gBAAiB;AAAC;AC9GpBwB,SAAAA,qBAAAC,UAAApf,IAAAsM,iBAAA;AAAA,QAAAxM,IAAAC,gBAAA,EAAA,CAAA,GAELsf,cAAArf,OAAgEL,SAAA8I,UAAhEzI;AAAgEG,MAAAA;AAAAL,IAAAwM,CAAAA,MAAAA,mBAAAxM,SAAAuf,eAAAvf,EAAA,CAAA,MAAAsf,YAOjCjf,KAAAmf,CAAA,QAAA;AAAA,QAAA,CACxBF;AAAQ;AAIb,UAAApK,SAAesK,IAAGtK;AAAO,QAEnBA,EAAAA,kBAAMtW;AAAgB;AAI5B,UAAA6gB,0BAAgCjT,kBAAe;AAAI,QAE/CiT,2BAA4BA,CAAAA,wBAAuBrgB,SAAU8V,MAAM;AAAC;AAIxE/H,UAAAA,WAAiBoS,YAAY,EAACG,KAAM;AAAC,eAEhCC,MAAYxS;AAAQ,UAClBwS,OAEDzK,WAAWyK,MAAMA,GAAEvgB,SAAU8V,MAAM;AAAC;AAK1CoK,aAASE,GAAG;AAAA,EAAA,GACbxf,OAAAwM,iBAAAxM,OAAAuf,aAAAvf,OAAAsf,UAAAtf,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AA5BD,QAAA4f,UAAgBC,eAAAA,eAAexf,EA4B9B,GAEDyf,cAAoBpgB,CAAQ4f,CAAAA;AAASlb,MAAAA;AAAApE,IAAA8f,CAAAA,MAAAA,eAAA9f,SAAA4f,WAE3Bxb,KAAAA,MAAA;AAAA,QAAA,CACH0b;AAAW;AAEhBC,UAAAA,cAAAC,CAAyCJ,UAAAA,QAAQJ,KAAG;AAEpDxU,WAAAA,SAAA1C,iBAA0B,aAAayX,WAAW,GAAC,MAAA;AAGjDxX,eAAAA,oBAA6B,aAAawX,WAAW;AAAA,IAAC;AAAA,EAEzD/f,GAAAA,OAAA8f,aAAA9f,OAAA4f,SAAA5f,OAAAoE,MAAAA,KAAApE,EAAA,CAAA;AAAAqE,MAAAA;AAAArE,WAAA8f,eAAEzb,MAACyb,WAAW,GAAC9f,OAAA8f,aAAA9f,OAAAqE,MAAAA,KAAArE,EAAA,CAAA,GAVhB+U,MAAAA,UAAU3Q,IAUPC,EAAa,GAEhB4D,MAAAA,cAAcqX,WAAW,iBAAiB,eAAe;AAAC;AArDrD,SAAA3W,UAAA;AAAA5L,SAAAA;AAAA;ACNA,SAAAkjB,iBAAAC,WAAA;AAAAlgB,QAAAA,IAAAC,kBAAA,CAAA;AAAAC,MAAAA;AAAAF,WAAAkgB,aACgChgB,KAAA8U,CAAAA,UAA0BkL,UAAUlL,KAAK,GAAChV,OAAAkgB,WAAAlgB,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAA/EmgB,QAAAA,gBAAsBN,8BAAe3f,EAA0C;AAACG,MAAAA;AAAAL,WAAAmgB,iBAEtE9f,KAAAA,MAAA;AACR+f,UAAAA,UAAAzC,CAA0CwC,YAAAA,cAAcnL,OAAK;AAE7D1M,WAAAA,OAAAA,iBAAwB,WAAW8X,OAAO,GAAC,MAE9BhY,OAAAG,oBAA2B,WAAW6X,OAAO;AAAA,EAAC,GAC5DpgB,OAAAmgB,eAAAngB,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAAoE,MAAAA;AAAApE,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAAEhC,KAAA,IAAEpE,OAAAoE,MAAAA,KAAApE,EAAA,CAAA,GANL+U,MAAAA,UAAU1U,IAMP+D,EAAE;AAAC;ACPD,MAAMic,sBAAsB;AAmB5B,SAAAC,IAAAzf,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAYDC,KAAAW;AAA6C,MAAAM,UAAAC,WAAA8C,MAAA7D,IAAA+D,IAAAC,IAAAC,IAAAC;AAAAvE,WAAAE,MATjD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc;AAAAA,IAAAC;AAAAA,IAAA2D,SAAAX;AAAAA,IAAAyC,UAAAxC;AAAAA,IAAAc,SAAAb;AAAAA,IAAAL,QAAAM;AAAAA,IAAA,GAAAL;AAAAA,EASIhE,IAAAA,IAA6CF,OAAAE,IAAAF,OAAAmB,UAAAnB,OAAAoB,WAAApB,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,IAAApE,OAAAqE,IAAArE,OAAAsE,IAAAtE,OAAAuE,OAAApD,WAAAnB,EAAA,CAAA,GAAAoB,YAAApB,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAAqE,KAAArE,EAAA,CAAA,GAAAsE,KAAAtE,EAAA,CAAA,GAAAuE,KAAAvE,EAAA,CAAA;AAR/C6E,QAAAA,KAAAxE,OAAwBR,SAAAwgB,sBAAxBhgB,IAGA0E,UAAAX,OAAwBvE,SAAd,iBAAVuE,IACAyC,WAAAxC,OAAYxE,aAAZwE,IACAc,UAAAb,OAAWzE,aAAXyE,IACAL,SAAAM,OAAU1E,aAAV0E,IAQMC,KAAAK;AAAoBJ,MAAAA;AAAAzE,IAAAoB,CAAAA,MAAAA,aAAApB,UAAAiE,UACbQ,KAAA8b,QAAA;AAAA,IAAAnf;AAAAA,IAAA6C;AAAAA,EAAAA,CAAuB,GAACjE,OAAAoB,WAAApB,QAAAiE,QAAAjE,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA;AAAA0E,MAAAA;AAAA1E,IAAAmB,EAAAA,MAAAA,YAAAnB,UAAA6G,YAKnCnC,oCAAC,MAAQ,EAAA,IAAA,QAAO,OAAA,IAAYmC,MAAAA,UAAiB,QAAA,UACnC,UACV,GAAO7G,QAAAmB,UAAAnB,QAAA6G,UAAA7G,QAAA0E,MAAAA,KAAA1E,EAAA,EAAA;AAAAsF,MAAAA;AAAA,SAAAtF,UAAA+E,WAAA/E,EAAAmF,EAAAA,MAAAA,WAAAnF,EAAAkE,EAAAA,MAAAA,QAAAlE,EAAA,EAAA,MAAAwE,MAAAxE,UAAAyE,MAAAzE,EAAA,EAAA,MAAA0E,MAXTY,oCAAC,KACS,EAAA,WAAA,UACJpB,MACA,IAAAM,IACO,WAAAC,IACFM,SACT,WACSI,SAETT,UAAAA,GAAAA,CAGF,GAAM1E,QAAA+E,SAAA/E,QAAAmF,SAAAnF,QAAAkE,MAAAlE,QAAAwE,IAAAxE,QAAAyE,IAAAzE,QAAA0E,IAAA1E,QAAAsF,MAAAA,KAAAtF,EAAA,EAAA,GAZNsF;AAYM;AC9CH,MAAMkb,0BAA0B;AAuBhC,SAAAC,QAAA5f,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAaDC,KAAAW;AAAqD,MAAAgG,UAAApF,MAAAC,MAAA2V,MAAAlS,SAAAlB,QAAAC,MAAA7D,IAAA+D;AAAApE,WAAAE,MAVzD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAwG;AAAAA,IAAArF,KAAA4C;AAAAA,IAAA3C;AAAAA,IAAAC;AAAAA,IAAA2V;AAAAA,IAAAlS;AAAAA,IAAAlB;AAAAA,IAAA,GAAAC;AAAAA,EAAAA,IAUIhE,IAAqDF,OAAAE,IAAAF,OAAA6G,UAAA7G,OAAAyB,MAAAzB,OAAA0B,MAAA1B,OAAAqX,MAAArX,OAAAmF,SAAAnF,OAAAiE,QAAAjE,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,OAAAyC,WAAA7G,EAAA,CAAA,GAAAyB,OAAAzB,EAAA,CAAA,GAAA0B,OAAA1B,EAAA,CAAA,GAAAqX,OAAArX,EAAA,CAAA,GAAAmF,UAAAnF,EAAA,CAAA,GAAAiE,SAAAjE,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA;AATvD6E,QAAAA,KAAAxE,OAA4BR,SAAA2gB,0BAA5BngB,IAEAmB,MAAA4C,OAAOvE,aAAPuE;AASE,MAAA,CAACiT,QAAQA,KAAI7G,WAAa;AAAA;AAAAnM,MAAAA;AAAA,MAAArE,EAAA,EAAA,MAAA6G,YAAA7G,EAAAqX,EAAAA,MAAAA,QAAArX,EAAAmF,EAAAA,MAAAA,WAAAnF,UAAAiE,QAAA;AAAAK,QAAAA;AAAAtE,MAAA6G,EAAAA,MAAAA,YAAA7G,UAAAmF,WAAAnF,EAAA,EAAA,MAAAiE,UAMhBK,MAAAA,CAAAuG,MAAA6F,MACRzK,2BAAA,IAAC,KAAcY,EAAAA,UAA2B1B,SAAiBlB,QACxD4G,kBAD2B,CAE9B,GACD7K,QAAA6G,UAAA7G,QAAAmF,SAAAnF,QAAAiE,QAAAjE,QAAAsE,OAAAA,MAAAtE,EAAA,EAAA,GAJAqE,KAAAgT,KAAIjG,IAAK9M,GAIT,GAACtE,QAAA6G,UAAA7G,QAAAqX,MAAArX,QAAAmF,SAAAnF,QAAAiE,QAAAjE,QAAAqE;AAAAA,EAAA;AAAAA,SAAArE,EAAA,EAAA;AAAAsE,MAAAA;AAAA,SAAAtE,UAAA6E,MAAA7E,EAAAwB,EAAAA,MAAAA,OAAAxB,EAAAyB,EAAAA,MAAAA,QAAAzB,EAAA,EAAA,MAAA0B,QAAA1B,UAAAkE,QAAAlE,EAAA,EAAA,MAAAqE,MALJC,KAAC2B,+BAAA,KAAA,EAAQpB,IAAY,WAAA,WAAcX,GAAAA,MAAc,SAAA,QAAY1C,KAAWC,MAAYC,MACjF2C,UAKH,GAAA,CAAA,GAAMrE,QAAA6E,IAAA7E,QAAAwB,KAAAxB,QAAAyB,MAAAzB,QAAA0B,MAAA1B,QAAAkE,MAAAlE,QAAAqE,IAAArE,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GANNsE;AAMM;ACxCGoc,MAAAA,cACX9V,0BAAmD,sBAAsB,IAAI;ACb/E,SAAS+V,aAAapiB,SAAsB;AAC1C,SACGC,oBAAoBD,OAAO,KAAKA,QAAQqiB,aAAa,eAAe,MAAM,UAC1EniB,oBAAoBF,OAAO,KAAK,CAACA,QAAQqI;AAE9C;AAKO,SAASia,sBAAsB1T,UAAwC;AACrEA,SAAAA,SAAS2T,OAAOH,YAAY;AACrC;AAKgBI,SAAAA,YAAY9L,aAA0B0K,IAA2B;AAC/E,QAAM7N,OAAiB,CAAE;AAEzB,MAAIkP,IAAIrB;AAER,SAAOqB,MAAM/L,eAAa;AACxB,UAAMgM,gBAAgBD,EAAEC;AAEpB,QAAA,CAACA,cAAsBnP,QAAAA;AAG3B,UAAMyD,QADWhW,MAAM2hB,KAAKD,cAAcE,UAAU,EAC7BC,QAAQJ,CAAC;AAIhC,QAFAlP,KAAKuP,QAAQ9L,KAAK,GAEd0L,kBAAkBhM;AACbnD,aAAAA;AAGLmP,QAAAA;AAAAA,EAAAA;AAGCnP,SAAAA;AACT;AAEA,MAAMwP,aAAuB,CAAE;AAKfC,SAAAA,cAActM,aAAiC9H,UAA+B;AAC5F,MAAI,CAAC8H,YAAa;AAEZ7D,QAAAA,0BAAUoQ,QAA+B;AAE/C,aAAW7B,MAAMxS;AACfiE,QAAIqQ,IAAI9B,IAAIoB,YAAY9L,aAAa0K,EAAE,CAAC;AAGpC+B,QAAAA,QAAQA,CAACC,GAAgBC,MAAmB;AAChD,UAAMC,KAAKzQ,IAAIxF,IAAI+V,CAAC,KAAKL,YACnBQ,KAAK1Q,IAAIxF,IAAIgW,CAAC,KAAKN,YAEnB/Q,MAAMlG,KAAKD,IAAIyX,GAAGrR,QAAQsR,GAAGtR,MAAM;AAGzC,aAASE,IAAI,GAAGA,IAAIH,KAAKG,KAAK,GAAG;AACzBqR,YAAAA,SAASF,GAAGnR,CAAC,KAAK,IAClBsR,SAASF,GAAGpR,CAAC,KAAK;AAExB,UAAIqR,WAAWC;AACb,eAAOD,SAASC;AAAAA,IAAAA;AAIb,WAAA;AAAA,EACT;AAEA7U,WAAS8U,KAAKP,KAAK;AACrB;AClDO,SAASQ,kBAAkBrhB,OAKf;AACX,QAAA;AAAA,IAACqf;AAAAA,IAAWiC;AAAAA,IAAeC;AAAAA,IAAaC;AAAAA,EAAAA,IAAkBxhB,OAC1DyhB,cAAc5N,MAAAA,OAAsB,CAAA,CAAE,GACtC,CAAC6N,aAAaC,eAAe,IAAIjiB,MAAS,SAAA,EAAE,GAC5CkiB,iBAAiB/N,MAAAA,OAAO6N,WAAW,GACnCzN,gBAAgBqF,MAAAA,QAAQ,MAAMmI,YAAY1N,QAAQ2N,WAAW,KAAK,MAAM,CAACA,WAAW,CAAC,GACrFG,UAAUhjB,CAAQ2iB,CAAAA,eAAezN,SAEjC+N,iBAAiBxH,MAAAA,YAAayH,CAA4B,oBAAA;AAC9CA,oBAAAA,eAAe,GAC/BH,eAAe7N,UAAUgO;AAAAA,EAAAA,GACxB,CAAA,CAAE,GAECC,QAAQ1H,MACZ,YAAA,CAAC5c,SAA6B8I,aAAqC;AAC7D,QAAA,CAAC9I,QAAS,QAAO;;AAOrB,QALI+jB,YAAY1N,QAAQwM,QAAQ7iB,OAAO,MAAM,OAC3C+jB,YAAY1N,QAAQ1D,KAAK3S,OAAO,GAChCgjB,cAAcc,eAAezN,SAAS0N,YAAY1N,OAAO,IAGvDvN,UAAU;AACZ,YAAMyb,gBAAgBR,YAAY1N,QAAQwM,QAAQ7iB,OAAO;AAEzDokB,qBAAeG,aAAa;AAAA,IAAA;AAG9B,WAAO,MAAM;AACX,YAAMxR,MAAMgR,YAAY1N,QAAQwM,QAAQ7iB,OAAO;AAE3C+S,YAAM,MACRgR,YAAY1N,QAAQmO,OAAOzR,KAAK,CAAC;AAAA,IAErC;AAAA,EAAA,GAEF,CAAC+Q,gBAAgBM,cAAc,CACjC,GAEMxC,gBAAgBhF,MAAAA,YACnBnG,CAAyC,UAAA;AAEpCA,QAAAA,MAAMnK,QAAQ,OAAO;AACnBsX,uBACFA,cAAcrE,MAAM;AAGtB;AAAA,IAAA;AAIE9I,QAAAA,MAAMnK,QAAQ,QAAQ;AAClB+S,YAAAA,eAAAA,GACN5I,MAAM6I,gBAAgB;AAGtB,YAAM8B,KADoBkB,sBAAsByB,YAAY1N,OAAO,EACtC,CAAC;AAE9B,UAAI,CAAC+K,GAAI;AAET,YAAMqD,eAAeV,YAAY1N,QAAQwM,QAAQzB,EAAE;AAEnDgD,qBAAeK,YAAY;AAE3B;AAAA,IAAA;AAIEhO,QAAAA,MAAMnK,QAAQ,OAAO;AACjB+S,YAAAA,eAAAA,GACN5I,MAAM6I,gBAAgB;AAEhBoF,YAAAA,sBAAoBpC,sBAAsByB,YAAY1N,OAAO,GAC7D+K,OAAKsD,oBAAkBA,oBAAkBzS,SAAS,CAAC;AAEzD,UAAI,CAACmP,KAAI;AAET,YAAMqD,iBAAeV,YAAY1N,QAAQwM,QAAQzB,IAAE;AAEnDgD,qBAAeK,cAAY;AAE3B;AAAA,IAAA;AAGEhO,QAAAA,MAAMnK,QAAQ,WAAW;AACrB+S,YAAAA,eAAAA,GACN5I,MAAM6I,gBAAgB;AAEtB,YAAMoF,sBAAoBpC,sBAAsByB,YAAY1N,OAAO,GAC7DsO,eAAeD,oBAAkBzS;AAEvC,UAAI0S,iBAAiB,EAAG;AAExB,YAAMC,iBAAiBb,YAAY1N,QAAQ6N,eAAe7N,OAAO;AAE7DwO,UAAAA,eAAeH,oBAAkB7B,QAAQ+B,cAAc;AAE3CC,sBAAAA,eAAe,IAAIF,gBAAgBA;AAE7CvD,YAAAA,OAAKsD,oBAAkBG,YAAY,GACnCJ,iBAAeV,YAAY1N,QAAQwM,QAAQzB,IAAE;AAEnDgD,qBAAeK,cAAY;AAE3B;AAAA,IAAA;AAGEhO,QAAAA,MAAMnK,QAAQ,aAAa;AACvB+S,YAAAA,eAAAA,GACN5I,MAAM6I,gBAAgB;AAEtB,YAAMoF,sBAAoBpC,sBAAsByB,YAAY1N,OAAO,GAC7DsO,iBAAeD,oBAAkBzS;AAEvC,UAAI0S,mBAAiB,EAAG;AAExB,YAAMC,mBAAiBb,YAAY1N,QAAQ6N,eAAe7N,OAAO;AAE7DwO,UAAAA,iBAAeH,oBAAkB7B,QAAQ+B,gBAAc;AAE3DC,wBAAgBA,iBAAe,KAAKF;AAE9BvD,YAAAA,OAAKsD,oBAAkBG,cAAY,GACnCJ,iBAAeV,YAAY1N,QAAQwM,QAAQzB,IAAE;AAEnDgD,qBAAeK,cAAY;AAE3B;AAAA,IAAA;AAGE9C,iBACFA,UAAUlL,KAAK;AAAA,EAAA,GAGnB,CAACkL,WAAWiC,eAAeQ,cAAc,CAC3C,GAEMU,uBAAuBlI,MAAAA,YAC1BnG,CAAmC,YAAA;AAClC,UAAMzW,YAAUyW,QAAMsO,eAChBN,iBAAeV,YAAY1N,QAAQwM,QAAQ7iB,SAAO;AAExDokB,mBAAeK,cAAY;AAAA,KAE7B,CAACL,cAAc,CACjB,GAEMY,uBAAuBpI,kBAAY,MAAM;AAM7CwH,mBAAe,EAAE,GACjBN,eAAezN,SAASkJ,MAAM;AAAA,EAAA,GAC7B,CAACuE,gBAAgBM,cAAc,CAAC;AAGnC5N,SAAAA,MAAAA,UAAU,MAAM;AACd,QAAI,CAAC2N,QAAS;AAERc,UAAAA,QAAQC,sBAAsB,MAAM;AACxC,UAAIlB,gBAAgB,IAAI;AACtB,YAAIH,gBAAgB,SAAS;AAE3B,gBAAMzC,OADoBkB,sBAAsByB,YAAY1N,OAAO,EACtC,CAAC;AAE9B,cAAI+K,MAAI;AACN,kBAAMqD,iBAAeV,YAAY1N,QAAQwM,QAAQzB,IAAE;AAEnDgD,2BAAeK,cAAY;AAAA,UAAA;AAAA,QAC7B;AAGF,YAAIZ,gBAAgB,QAAQ;AACpBa,gBAAAA,sBAAoBpC,sBAAsByB,YAAY1N,OAAO,GAC7D+K,OAAKsD,oBAAkBA,oBAAkBzS,SAAS,CAAC;AAEzD,cAAImP,MAAI;AACN,kBAAMqD,iBAAeV,YAAY1N,QAAQwM,QAAQzB,IAAE;AAEnDgD,2BAAeK,cAAY;AAAA,UAAA;AAAA,QAC7B;AAGF;AAAA,MAAA;AAKFzkB,OAFgB+jB,YAAY1N,QAAQ2N,WAAW,KAAK,OAE3CzE,MAAM;AAAA,IAAA,CAChB;AAEM,WAAA,MAAM4F,qBAAqBF,KAAK;AAAA,KACtC,CAACjB,aAAaG,SAASC,gBAAgBP,WAAW,CAAC,GAE/C;AAAA,IACLtN;AAAAA,IACAyN;AAAAA,IACAc;AAAAA,IACAE;AAAAA,IACApD;AAAAA,IACA0C;AAAAA,EACF;AACF;AClOO,MAAMc,uBAAuB;AA0B7B,SAAAC,KAAA/iB,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAmBDC,KAAAW;AAA+C,MAAAgjB,cAAA1iB,UAAAC,WAAAgT,cAAA0P,gBAAAC,UAAAC,aAAAC,cAAA/D,WAAAiC,eAAA+B,iBAAAhgB,MAAA7D,IAAA+D,IAAAC;AAAArE,WAAAE,MAhBnD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc;AAAAA,IAAAC;AAAAA,IAAAI,KAAA4C;AAAAA,IAAA0f;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA/D;AAAAA,IAAAiC;AAAAA,IAAAhd,SAAAd;AAAAA,IAAA0H,KAAAqI;AAAAA,IAAA8P;AAAAA,IAAA9B,aAAAyB;AAAAA,IAAA,GAAA3f;AAAAA,EAgBIhE,IAAAA,IAA+CF,OAAAE,IAAAF,OAAA6jB,cAAA7jB,OAAAmB,UAAAnB,OAAAoB,WAAApB,OAAAoU,cAAApU,OAAA8jB,gBAAA9jB,OAAA+jB,UAAA/jB,OAAAgkB,aAAAhkB,OAAAikB,cAAAjkB,OAAAkgB,WAAAlgB,QAAAmiB,eAAAniB,QAAAkkB,iBAAAlkB,QAAAkE,MAAAlE,QAAAK,IAAAL,QAAAoE,IAAApE,QAAAqE,OAAAwf,eAAA7jB,EAAA,CAAA,GAAAmB,WAAAnB,EAAA,CAAA,GAAAoB,YAAApB,EAAA,CAAA,GAAAoU,eAAApU,EAAA,CAAA,GAAA8jB,iBAAA9jB,EAAA,CAAA,GAAA+jB,WAAA/jB,EAAA,CAAA,GAAAgkB,cAAAhkB,EAAA,CAAA,GAAAikB,eAAAjkB,EAAA,CAAA,GAAAkgB,YAAAlgB,EAAA,CAAA,GAAAmiB,gBAAAniB,EAAA,EAAA,GAAAkkB,kBAAAlkB,EAAA,EAAA,GAAAkE,OAAAlE,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAAoE,KAAApE,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA;AAfjD6E,QAAAA,KAAAxE,OAAyBR,SAAA8jB,uBAAzBtjB,IAGAmB,MAAA4C,OAAOvE,aAAPuE,IAOAe,UAAAd,OAAWxE,aAAXwE,IAOF+d,cAAoByB,gBAAoB,MAExC9X,MAAY2I,aAAA,IAAkC;AAACpQ,MAAAA;AAAAtE,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAEiC9B,KAAAA,MAAMyH,IAAG6I,SAAQ5U,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAAjG6U,MAAAA,oBAAkET,cAAc9P,EAAiB;AAEjG,QAAA;AAAA,IAAAkQ;AAAAA,MAAqBhH,SAAS;AAACjJ,MAAAA;AAAAvE,IAAAkgB,EAAAA,MAAAA,aAAAlgB,UAAAmiB,iBAAAniB,EAAA,EAAA,MAAAoiB,eAST7d,KAAA;AAAA,IAAA2b;AAAAA,IAAAiC;AAAAA,IAAAC;AAAAA,IAAAC,gBAIJtW;AAAAA,EAAAA,GACjB/L,QAAAkgB,WAAAlgB,QAAAmiB,eAAAniB,QAAAoiB,aAAApiB,QAAAuE,MAAAA,KAAAvE,EAAA,EAAA;AAZD,QAAA;AAAA,IAAA8U;AAAAA,IAAAyN;AAAAA,IAAAc;AAAAA,IAAAE;AAAAA,IAAApD;AAAAA,IAAA0C;AAAAA,MAOIX,kBAAkB3d,EAKrB,GAED4f,uBAA6BzP,MAAAA,OAAA,IAAgC;AAAClQ,MAAAA;AAAAxE,YAAAkkB,mBAE5D1f,KAAAmb,CAAA,OAAA;AAEMwE,yBAAoBvP,YAKtBuP,qBAAoBvP,WACpBuP,qBAAoBvP,UAAA,OAGtB7I,IAAG6I,UAAW+K,IAGV5T,IAAG6I,WAAYsP,oBACjBC,qBAAoBvP,UAAWsP,gBAAgBnY,IAAG6I,OAAQ;AAAA,EAAC,GAE9D5U,QAAAkkB,iBAAAlkB,QAAAwE,MAAAA,KAAAxE,EAAA,EAAA;AAlBH,QAAAokB,kBAAwB5f;AAoBvB,MAAAC,IAAAC;AAAA1E,IAAAuiB,EAAAA,MAAAA,eAAAviB,UAAAikB,gBAGSxf,KAAAA,MAAA;AACJwf,oBAAcA,aAAa1B,WAAW;AAAA,EACzC7d,GAAAA,KAAA,CAAC6d,aAAa0B,YAAY,GAACjkB,QAAAuiB,aAAAviB,QAAAikB,cAAAjkB,QAAAyE,IAAAzE,QAAA0E,OAAAD,KAAAzE,EAAA,EAAA,GAAA0E,KAAA1E,EAAA,EAAA,IAF9B+U,MAAAA,UAAUtQ,IAEPC,EAA2B;AAACY,MAAAA;AAAAtF,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAGoBd,KAAAA,MAAOyG,CAAAA,IAAG6I,OAAA,GAAS5U,QAAAsF,MAAAA,KAAAtF,EAAA,EAAA,GAAtEqf,qBAAqB7K,cAAcsP,gBAAgBxe,EAAmB;AAACE,MAAAA;AAAAxF,IAAAwU,EAAAA,MAAAA,cAAAxU,UAAA+jB,YAKnEve,MAAAwP,CAAA,UAAA;AACOR,kBAEDQ,MAAKnK,QAAS,aAChBmK,MAAK6I,gBAAiB,GAClBkG,YAAUA;EAAS,GAE1B/jB,QAAAwU,YAAAxU,QAAA+jB,UAAA/jB,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA,GATLigB,iBACEza,GAWF;AAAC,MAAA+M,KAAAC;AAAAxS,IAAA,EAAA,MAAA8U,iBAAA9U,EAAAuiB,EAAAA,MAAAA,eAAAviB,UAAAqjB,wBAAArjB,EAAA,EAAA,MAAAujB,wBAAAvjB,EAAA6iB,EAAAA,MAAAA,SAAA7iB,EAAA8jB,EAAAA,MAAAA,kBAAA9jB,EAAA,EAAA,MAAA+jB,YAAA/jB,EAAAgkB,EAAAA,MAAAA,eAAAhkB,UAAAkkB,mBAGQ1R,MAAA;AAAA,IAAAnH,SAAA;AAAA,IAAAyJ;AAAAA,IAAAyN;AAAAA,IAAAM;AAAAA,IAAAiB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAK,kBAQahB;AAAAA,IAAoBiB,kBACpBf;AAAAA,IAAoBW;AAAAA,IAAAK,cAIxBlB;AAAAA,IAAoBmB,cACpBjB;AAAAA,EAAAA,GACfvjB,QAAA8U,eAAA9U,QAAAuiB,aAAAviB,QAAAqjB,sBAAArjB,QAAAujB,sBAAAvjB,QAAA6iB,OAAA7iB,QAAA8jB,gBAAA9jB,QAAA+jB,UAAA/jB,QAAAgkB,aAAAhkB,QAAAkkB,iBAAAlkB,QAAAwS,OAAAA,MAAAxS,EAAA,EAAA,GAAAuS,MAfMC;AADT,QAAA/S,QAAgC8S;AA4B/BG,MAAAA;AAAA1S,YAAAoB,aAQgBsR,MAAA+R,IAAAA,KAAA;AAAA,IAAArjB;AAAAA,EAAgB,CAAA,GAACpB,QAAAoB,WAAApB,QAAA0S,OAAAA,MAAA1S,EAAA,EAAA;AAAA2S,MAAAA;AAAA3S,IAAAmB,EAAAA,MAAAA,YAAAnB,UAAAwB,OAS5BmR,MAAC1M,2BAAAA,IAAA,OAAWzE,EAAAA,KAAa,SAAE,CAAA,GAAQxB,QAAAmB,UAAAnB,QAAAwB,KAAAxB,QAAA2S,OAAAA,MAAA3S,EAAA,EAAA;AAAA6S,MAAAA;AAAA7S,IAAA6E,EAAAA,MAAAA,MAAA7E,EAAAmgB,EAAAA,MAAAA,iBAAAngB,EAAAokB,EAAAA,MAAAA,mBAAApkB,UAAAmF,WAAAnF,EAAA,EAAA,MAAAkE,QAAAlE,EAAA,EAAA,MAAA0S,OAAA1S,EAAA,EAAA,MAAA2S,OAbrCE,MAAC5M,+BAAA,KAAA,EACS,WAAA,QAAM,GACV/B,MACAW,IACO,WAAA6N,KACAyN,WAAY,eACd,UAAA,QACD,SAAA,QACChb,SACJif,KAAAA,iBACA,MAAA,QACK,UAAC,IAEXzR,eACF,GAAM3S,QAAA6E,IAAA7E,QAAAmgB,eAAAngB,QAAAokB,iBAAApkB,QAAAmF,SAAAnF,QAAAkE,MAAAlE,QAAA0S,KAAA1S,QAAA2S,KAAA3S,QAAA6S,OAAAA,MAAA7S,EAAA,EAAA;AAAA8S,MAAAA;AAAA,SAAA9S,EAAA6S,EAAAA,MAAAA,OAAA7S,UAAAP,SAfRqT,MAAA7M,2BAAAA,IAAA,YAAA,UAAA,EAA6BxG,OAC3BoT,UAAAA,IAAAA,CAeF,GAAuB7S,QAAA6S,KAAA7S,QAAAP,OAAAO,QAAA8S,OAAAA,MAAA9S,EAAA,EAAA,GAhBvB8S;AAgBuB;AC3KpB,MAAM4R,+BAA+B;AAgBrC,SAAAC,YAAA9jB,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAODC,KAAAW;AAA8D,MAAAO,WAAA8C,MAAA7D;AAAAL,WAAAE,MAJlE;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAe;AAAAA,IAAA,GAAA8C;AAAAA,EAIIhE,IAAAA,IAA8DF,OAAAE,IAAAF,OAAAoB,WAAApB,OAAAkE,MAAAlE,OAAAK,OAAAe,YAAApB,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA;AAH5DqF,QAAAA,UAAAhF,OAAsCR,SAAA6kB,+BAAtCrkB;AAAsC+D,MAAAA;AAAApE,WAAAoB,aAKPgD,KAAAwgB,IAAAA,YAAA;AAAA,IAAAxjB;AAAAA,EAAuB,CAAA,GAACpB,OAAAoB,WAAApB,OAAAoE,MAAAA,KAAApE,EAAA,CAAA;AAAAqE,MAAAA;AAAA,SAAArE,EAAAqF,CAAAA,MAAAA,WAAArF,SAAAkE,QAAAlE,EAAA,CAAA,MAAAoE,MAAtDC,oCAAC,SAAO,EAAA,GAAKH,MAAiB,WAAAE,GAAAA,CAA4B,GAAApE,OAAAqF,SAAArF,OAAAkE,MAAAlE,OAAAoE,IAAApE,OAAAqE,MAAAA,KAAArE,EAAA,CAAA,GAA1DqE;AAA0D;ACzB5D,SAAAwgB,UAAA;AACLplB,QAAAA,QAAc8L,iBAAAmV,WAAsB;AAAC,MAAA,CAEhCjhB;AAAKiL,UAAAA,IAAAA,MACQ,kCAAkC;AAAA,MAMhD,CAAClL,SAASC,KAAK,KAAKA,MAAK4L,YAAgB;AAAAX,UAAAA,IAAAA,MAC3B,gDAAgD;AAG3DjL,SAAAA;AAAK;ACMP,MAAMqlB,6BAA6B;AAmCnC,SAAAC,UAAAlkB,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAiBDC,KAAAW;AAA0DkG,MAAAA,eAAA5F,UAAA6jB,WAAAC,SAAA7mB,SAAA8F,MAAA7D,IAAA+D,IAAAC,IAAAC,IAAAC,IAAAC,IAAAwB;AAAAhG,WAAAE,MAd9D;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc;AAAAA,IAAA0F,UAAAzC;AAAAA,IAAA5C,KAAA6C;AAAAA,IAAAyC,MAAAC;AAAAA,IAAA0d,MAAAO;AAAAA,IAAAC;AAAAA,IAAA9f,SAAAb;AAAAA,IAAAlG;AAAAA,IAAA6F,QAAAM;AAAAA,IAAAyB;AAAAA,IAAAuB,MAAA/C;AAAAA,IAAA,GAAAN;AAAAA,EAAA,IAcIhE,IAA0DF,OAAAE,IAAAF,OAAA+G,eAAA/G,OAAAmB,UAAAnB,OAAAglB,WAAAhlB,OAAAilB,SAAAjlB,OAAA5B,SAAA4B,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,IAAApE,OAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAuE,IAAAvE,QAAAwE,IAAAxE,QAAAgG,SAAAe,gBAAA/G,EAAA,CAAA,GAAAmB,WAAAnB,EAAA,CAAA,GAAAglB,YAAAhlB,EAAA,CAAA,GAAAilB,UAAAjlB,EAAA,CAAA,GAAA5B,UAAA4B,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAAqE,KAAArE,EAAA,CAAA,GAAAsE,KAAAtE,EAAA,EAAA,GAAAuE,KAAAvE,EAAA,EAAA,GAAAwE,KAAAxE,EAAA,EAAA,GAAAgG,OAAAhG,EAAA,EAAA;AAb5D,QAAA6E,KAAAxE,OAA+BR,SAAAilB,6BAA/BzkB,IAEAwG,WAAAzC,OAAYvE,aAAZuE,IACA5C,MAAA6C,OAAOxE,aAAPwE,IAIAc,UAAAb,OAAWzE,aAAXyE,IAEAL,SAAAM,OAAU1E,aAAV0E,IAEAgD,OAAA/C,OAAgB3E,SAAT,YAAP2E,IAIF;AAAA,IAAAsQ;AAAAA,IAAA+N;AAAAA,IAAAiB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAK;AAAAA,IAAAH;AAAAA,EAQIW,IAAAA,QAAAA,GAEJ,CAAA5P,aAAAiQ,cAAA,IAAsC3kB,MAAAA,aAAwD,GAC9F,CAAAkZ,MAAA0L,OAAA,IAAwB5kB,MAAAA,WAAc,GACtC,CAAA6hB,aAAAgD,cAAA,IAAsC7kB,MAAAA,aAAsC,GAC5E8kB,SAAe3lB,CAAAA,CAAQoV,iBAAkBA,kBAAkBG,aAC3D,CAAAqQ,YAAAC,aAAA,IAAoChlB,MAAAA,WAAc;AAACkE,MAAAA;AAAAzE,YAAAqkB,oBAGjD5f,KAAAuQ,CAAA,UAAA;AACEuQ,oBAAmB,GACnBlB,mBAAmBrP,KAAK,GACxBmQ,UAAY;AAAA,EAAC,GACdnlB,QAAAqkB,kBAAArkB,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA;AALH,QAAAwlB,mBAAyB/gB;AAOxBC,MAAAA;AAAA1E,YAAAiV,eAGCvQ,KAAAiZ,CAAA,YAAA;AACM3I,YAAKnK,QAAS,gBAChBmK,QAAK6I,mBAELsH,UAAa,GAEb1B,sBAAA,MAAA;AACExO,mBAAW6I,MAAA;AAAA,IAAA,CACZ;AAAA,EAAC,GAEL9d,QAAAiV,aAAAjV,QAAA0E,MAAAA,KAAA1E,EAAA,EAAA;AAXH,QAAAylB,oBAA0B/gB;AAazBY,MAAAA;AAAAtF,YAAAilB,WAGC3f,KAAAogB,CAAA,YAAA;AACET,cAAUjQ,OAAK,GAEfoQ,eAAe,OAAO,GACtBD,UAAY;AAAA,EAAC,GACdnlB,QAAAilB,SAAAjlB,QAAAsF,MAAAA,KAAAtF,EAAA,EAAA;AANH,QAAA2lB,cAAoBrgB;AAQnBE,MAAAA;AAAAxF,YAAAgkB,eAEwCxe,MAAAA,MAAA;cAC1B,GACbwe,cAAW;AAAA,EAAA,GACZhkB,QAAAgkB,aAAAhkB,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA;AAHD,QAAA4lB,uBAA6BpgB;AAGZ+M,MAAAA;AAAAvS,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAEwBmM,MAAAA,MAAMgT,gBAAkB,GAACvlB,QAAAuS,OAAAA,MAAAvS,EAAA,EAAA;AAAlE,QAAA6lB,uBAA6BtT;AAA0C,MAAAC,KAAAE;AAAA1S,IAAA6iB,EAAAA,MAAAA,SAAA7iB,UAAAiV,eAG7DzC,MAAAA,MAAMqQ,MAAM5N,WAAW,GAAGvC,MAAA,CAACmQ,OAAO5N,WAAW,GAACjV,QAAA6iB,OAAA7iB,QAAAiV,aAAAjV,QAAAwS,KAAAxS,QAAA0S,QAAAF,MAAAxS,EAAA,EAAA,GAAA0S,MAAA1S,EAAA,EAAA,IAAxD+U,MAAAA,UAAUvC,KAA0BE,GAAoB;AAAC,MAAAC,KAAAE;AAAA7S,YAAAqlB,UAG/C1S,MAAAA,MAAA;AACH0S,cAAQF,UAAa;AAAA,EAAC,GAC1BtS,OAACwS,MAAM,GAACrlB,QAAAqlB,QAAArlB,QAAA2S,KAAA3S,QAAA6S,QAAAF,MAAA3S,EAAA,EAAA,GAAA6S,MAAA7S,EAAA,EAAA,IAFX+U,gBAAUpC,KAEPE,GAAQ;AAAC,MAAAC,KAAAC;AAAA/S,YAAAyZ,QAGF3G,MAAAA,MAAA;AACH2G,YAAM8L,gBAAmB;AAAA,EAAC,GAC9BxS,OAAC0G,IAAI,GAACzZ,QAAAyZ,MAAAzZ,QAAA8S,KAAA9S,QAAA+S,QAAAD,MAAA9S,EAAA,EAAA,GAAA+S,MAAA/S,EAAA,EAAA,IAFT+U,gBAAUjC,KAEPC,GAAM;AAAC,MAAAgB,KAAAC;AAAAhU,YAAAoiB,eAGArO,MAAAA,MAAA;AAAA,QAAA,CACHqO;AAAW;AAGhB,UAAAoB,QAAcC,4BAA4B2B,eAAc,IAAK,CAAC;AAEjD1B,WAAAA,MAAAA,qBAAqBF,KAAK;AAAA,EAAC,GACvCxP,OAACoO,WAAW,GAACpiB,QAAAoiB,aAAApiB,QAAA+T,KAAA/T,QAAAgU,QAAAD,MAAA/T,EAAA,EAAA,GAAAgU,MAAAhU,EAAA,EAAA,IAPhB+U,gBAAUhB,KAOPC,GAAa;AAACC,MAAAA;AAAAjU,IAAA,EAAA,MAAAmB,YAAAnB,EAAA,EAAA,MAAA4lB,wBAAA5lB,EAAA,EAAA,MAAAylB,qBAAAzlB,EAAAglB,EAAAA,MAAAA,aAAAhlB,EAAA8jB,EAAAA,MAAAA,kBAAA9jB,EAAA+jB,EAAAA,MAAAA,YAAA/jB,EAAAkkB,EAAAA,MAAAA,mBAAAlkB,UAAAoiB,eAGfnO,MAAAhO,2BAAA,IAAC,QACK+e,GAAAA,WACYlB,gBACNC,UACG6B,aAAmB,sBACrBH,8BACGI,cAAAA,sBACG3B,iBACJ9B,sBAGf,CAAA,GAAOpiB,QAAAmB,UAAAnB,QAAA4lB,sBAAA5lB,QAAAylB,mBAAAzlB,QAAAglB,WAAAhlB,QAAA8jB,gBAAA9jB,QAAA+jB,UAAA/jB,QAAAkkB,iBAAAlkB,QAAAoiB,aAAApiB,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAZT,QAAA8lB,YACE7R;AAYD6I,MAAAA;AAAA9c,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAEiC0W,MAAAiJ,CAAA,YAAA;AAChC,UAAA7Q,SAAeF,QAAKsO;AAAc,QAE9BtY,SAAA8J,kBAA2BI,UAI3BF,QAAKnK,QAAS,cAAY;AAC5Bua,qBAAe,OAAO,GACtBD,UAAY,GACZI,gBAAkB;AAAC;AAAA,IAAA;AAAA,EAAA,GAItBvlB,QAAA8c,OAAAA,MAAA9c,EAAA,EAAA;AAdDmgB,QAAAA,gBAAsBrD,KAuBFC,MAAAlY,OAAO,WAAWygB,aAAUzlB,QAYpCmd,MAAAnY,OAAO,WAAW,WAAQhF;AAAYod,MAAAA;AAAAjd,IAAA+G,EAAAA,MAAAA,iBAAA/G,UAAA6G,YAGzCoW,MAAAlW,iBACEU,2BAAA,KAAA,MAAA,EAAWZ,MAAO,UAChBe,UAAAA;AAAAA,IAAAA,MAAAA,eAAeb,aAAa,KAAKA;AAAAA,IACjCc,QAAAA,mBAAmBd,aAAa,KAAKd,2BAAA,IAAC,eAAa,CAAA,CAAA;AAAA,EAAA,EACtD,CAAA,GACDjG,QAAA+G,eAAA/G,QAAA6G,UAAA7G,QAAAid,OAAAA,MAAAjd,EAAA,EAAA;AAAAkd,MAAAA;AAAAld,IAAA6G,EAAAA,MAAAA,YAAA7G,UAAAgG,QAEDkX,MAACjX,2BAAA,IAAA,OAAU,MAAA,GACT,yCAAC,MAAWY,EAAAA,gBAAuB,cAAA,YAAkB,QAAA,UAC/C,eACN,CAAA,EACF,CAAA,GAAM7G,QAAA6G,UAAA7G,QAAAgG,MAAAhG,QAAAkd,OAAAA,MAAAld,EAAA,EAAA;AAAAmd,MAAAA;AAAAnd,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAGJ+W,MAAClX,2BAAA,IAAA+f,MAAA,kBAAA,CAAmB,CAAA,GAAAhmB,QAAAmd,OAAAA,MAAAnd,EAAA,EAAA;AAAAod,MAAAA;AAAApd,YAAA6G,YADtBuW,MAACnX,+BAAA,MAAA,EAAWY,MAAAA,UACVsW,UAAAA,KACF,GAAOnd,QAAA6G,UAAA7G,QAAAod,OAAAA,MAAApd,EAAA,EAAA;AAAAsd,MAAAA;AAAAtd,IAAAwB,EAAAA,MAAAA,OAAAxB,EAAA,EAAA,MAAAmF,WAAAnF,EAAAid,EAAAA,MAAAA,OAAAjd,EAAA,EAAA,MAAAkd,OAAAld,UAAAod,OAhBTE,MAAA7V,2BAAA,KAAC,MAAUjG,EAAAA,KAAc2D,SACtB8X,UAAAA;AAAAA,IAAAA;AAAAA,IAODC;AAAAA,IAMAE;AAAAA,EAGF,EAAA,CAAA,GAAOpd,QAAAwB,KAAAxB,QAAAmF,SAAAnF,QAAAid,KAAAjd,QAAAkd,KAAAld,QAAAod,KAAApd,QAAAsd,OAAAA,MAAAtd,EAAA,EAAA;AAAAud,MAAAA;AAAAvd,IAAA6E,EAAAA,MAAAA,MAAA7E,UAAA2lB,eAAA3lB,EAAA,EAAA,MAAAwlB,oBAAAxlB,UAAAiE,UAAAjE,EAAAkE,EAAAA,MAAAA,QAAAlE,UAAA+c,OAAA/c,EAAA,EAAA,MAAAgd,OAAAhd,EAAAsd,EAAAA,MAAAA,OAAAtd,EAAA,EAAA,MAAAuH,QAAAvH,UAAAslB,cApCT/H,MAACtX,2BAAA,IAAA,cAES,WAAA,aAAW,GAEf/B,MACU,gBAAA6Y,KACVlY,IAGK8gB,sBACExF,0BACGqF,gCACNvhB,QACHihB,KAAa,gBACRI,UAAS,YACT,UAAC,IACL/d,MACA,MAAAyV,KAENM,UAAAA,IAkBF,CAAA,GAAatd,QAAA6E,IAAA7E,QAAA2lB,aAAA3lB,QAAAwlB,kBAAAxlB,QAAAiE,QAAAjE,QAAAkE,MAAAlE,QAAA+c,KAAA/c,QAAAgd,KAAAhd,QAAAsd,KAAAtd,QAAAuH,MAAAvH,QAAAslB,YAAAtlB,QAAAud,OAAAA,MAAAvd,EAAA,EAAA;AAAA2e,MAAAA;AAAA3e,SAAAA,EAAA,EAAA,MAAA8lB,aAAA9lB,EAAAyZ,EAAAA,MAAAA,QAAAzZ,EAAA5B,EAAAA,MAAAA,WAAA4B,UAAAud,OAtCfoB,MAAA1Y,2BAAAA,IAAC,WAAO,GAAK7H,SAAkB0nB,SAAAA,WAAmB,WAAA,sBAA2BrM,MAC3E8D,UAsCF,IAAA,CAAA,GAAUvd,QAAA8lB,WAAA9lB,QAAAyZ,MAAAzZ,QAAA5B,SAAA4B,QAAAud,KAAAvd,QAAA2e,OAAAA,MAAA3e,EAAA,EAAA,GAvCV2e;AAuCU;ACxMP,MAAMsH,4BAA4B;AA2BlC,SAAAC,SAAArlB,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GA6BDC,KAAAW;AAAwDkG,MAAAA,eAAAE,oBAAA9F,UAAAyF,UAAAwN,cAAA3S,MAAAC,MAAAykB,SAAAlB,SAAAxhB,eAAAC,aAAAC,cAAAC,YAAAC,UAAAC,UAAAwP,SAAApP,MAAAkiB,cAAA/lB,IAAA+D,IAAAC,IAAAC,IAAAC,IAAAC,IAAAwB;AAAAhG,WAAAE,MA1B5D;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc;AAAAA,IAAAyF;AAAAA,IAAAC,UAAAzC;AAAAA,IAAA5C,KAAA6C;AAAAA,IAAA5C;AAAAA,IAAAC;AAAAA,IAAAykB;AAAAA,IAAArf,MAAAC;AAAAA,IAAAC,WAAAC;AAAAA,IAAAge;AAAAA,IAAA9f,SAAAb;AAAAA,IAAAT;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAA4P;AAAAA,IAAArP,QAAAM;AAAAA,IAAAwH,KAAAqI;AAAAA,IAAA/M,UAAA+e;AAAAA,IAAApgB;AAAAA,IAAAuB,MAAA/C;AAAAA,IAAA,GAAAN;AAAAA,EAAAA,IA0BIhE,IAAwDF,OAAAE,IAAAF,OAAA+G,eAAA/G,OAAAiH,oBAAAjH,OAAAmB,UAAAnB,OAAA4G,UAAA5G,OAAAoU,cAAApU,OAAAyB,MAAAzB,OAAA0B,MAAA1B,OAAAmmB,SAAAnmB,OAAAilB,SAAAjlB,QAAAyD,eAAAzD,QAAA0D,aAAA1D,QAAA2D,cAAA3D,QAAA4D,YAAA5D,QAAA6D,UAAA7D,QAAA8D,UAAA9D,QAAAsT,SAAAtT,QAAAkE,MAAAlE,QAAAomB,cAAApmB,QAAAK,IAAAL,QAAAoE,IAAApE,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAuE,IAAAvE,QAAAwE,IAAAxE,QAAAgG,SAAAe,gBAAA/G,EAAA,CAAA,GAAAiH,qBAAAjH,EAAA,CAAA,GAAAmB,WAAAnB,EAAA,CAAA,GAAA4G,WAAA5G,EAAA,CAAA,GAAAoU,eAAApU,EAAA,CAAA,GAAAyB,OAAAzB,EAAA,CAAA,GAAA0B,OAAA1B,EAAA,CAAA,GAAAmmB,UAAAnmB,EAAA,CAAA,GAAAilB,UAAAjlB,EAAA,CAAA,GAAAyD,gBAAAzD,EAAA,EAAA,GAAA0D,cAAA1D,EAAA,EAAA,GAAA2D,eAAA3D,EAAA,EAAA,GAAA4D,aAAA5D,EAAA,EAAA,GAAA6D,WAAA7D,EAAA,EAAA,GAAA8D,WAAA9D,EAAA,EAAA,GAAAsT,UAAAtT,EAAA,EAAA,GAAAkE,OAAAlE,EAAA,EAAA,GAAAomB,eAAApmB,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAAoE,KAAApE,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA,GAAAsE,KAAAtE,EAAA,EAAA,GAAAuE,KAAAvE,EAAA,EAAA,GAAAwE,KAAAxE,EAAA,EAAA,GAAAgG,OAAAhG,EAAA,EAAA;AAzB1D,QAAA6E,KAAAxE,OAA8BR,SAAAomB,4BAA9B5lB,IAGAwG,WAAAzC,OAAYvE,aAAZuE,IACA5C,MAAA6C,OAAOxE,aAAPwE,IAOAc,UAAAb,OAAWzE,aAAXyE,IAQAL,SAAAM,OAAU1E,aAAV0E,IAIAgD,OAAA/C,OAAgB3E,SAAT,YAAP2E,IAIFigB,OAAaI,WACb;AAAA,IAAA/P;AAAAA,IAAA+N;AAAAA,IAAAmB;AAAAA,IAAAK;AAAAA,IAAAC;AAAAA,EAAAA,IAAgFG,MAChF,CAAAxP,aAAAiQ,cAAA,IAAsC3kB,MAAAA,aAAuC,GAC7E8kB,SAAe3lB,EAAQoV,iBAAkBA,kBAAkBG,aAC3DlJ,MAAY2I,aAAA,IAAqC;AAACjQ,MAAAA;AAAAzE,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAIhD3B,KAAAA,MAAMsH,IAAG6I,SAAQ5U,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA,GAFnB6U,MAAAA,oBACET,cACA3P,EACF;AAAC,MAAAC,IAAAY;AAAAtF,IAAA6iB,EAAAA,MAAAA,SAAA7iB,UAAAiV,eAAAjV,EAAA,EAAA,MAAAomB,gBAES1hB,KAAAA,MAAMme,MAAM5N,aAAamR,YAAY,GAAG9gB,KAACud,CAAAA,OAAO5N,aAAamR,YAAY,GAACpmB,QAAA6iB,OAAA7iB,QAAAiV,aAAAjV,QAAAomB,cAAApmB,QAAA0E,IAAA1E,QAAAsF,OAAAZ,KAAA1E,EAAA,EAAA,GAAAsF,KAAAtF,EAAA,EAAA,IAApF+U,gBAAUrQ,IAAwCY,EAAkC;AAACE,MAAAA;AAAAxF,IAAA4G,EAAAA,MAAAA,YAAA5G,UAAAilB,WAAAjlB,EAAA,EAAA,MAAAgkB,eAGnFxe,MAAAwP,CAAA,UAAA;AACMpO,iBACAqe,WAASA,QAAQjQ,KAAK,GACtBgP,eAAaA;EAAY,GAC9BhkB,QAAA4G,UAAA5G,QAAAilB,SAAAjlB,QAAAgkB,aAAAhkB,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA;AALH,QAAA2lB,cAAoBngB;AAOnB,MAAA+M,KAAAC;AAAAxS,IAAAmF,EAAAA,MAAAA,WAAAnF,EAAAyD,EAAAA,MAAAA,iBAAAzD,EAAA0D,EAAAA,MAAAA,eAAA1D,UAAA2D,gBAAA3D,EAAA,EAAA,MAAA4D,cAAA5D,EAAA,EAAA,MAAA6D,YAAA7D,EAAA,EAAA,MAAA8D,YAGQ0O,MAAA;AAAA,IAAArN;AAAAA,IAAAtB;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,IAAAD;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,EAAAA,GAQN1D,QAAAmF,SAAAnF,QAAAyD,eAAAzD,QAAA0D,aAAA1D,QAAA2D,cAAA3D,QAAA4D,YAAA5D,QAAA6D,UAAA7D,QAAA8D,UAAA9D,QAAAwS,OAAAA,MAAAxS,EAAA,EAAA,GAAAuS,MARMC;AADT,QAAA6T,eAAqB9T;AAWpBG,MAAAA;AAAA1S,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAE0BsM,MAAAiN,CAAA,OAAA;AACtB/K,QAAAA,UAAW+K,IACduF,eAAevF,EAAE;AAAA,EAAA,GAClB3f,QAAA0S,OAAAA,MAAA1S,EAAA,EAAA;AAHD,QAAAsmB,SAAe5T,KAUGC,MAAAW,UAAU,KAAEzT,QACXgT,MAAAwS,SAAS,KAAExlB,QACXiT,MAAAlM,WAAW,KAAE/G,QAUtBkT,MAAAlO,OAAO,WAAW,WAAQhF;AAAYkU,MAAAA;AAAA/T,IAAA,EAAA,MAAA+G,iBAAA/G,EAAAiH,EAAAA,MAAAA,sBAAAjH,UAAA6G,YAAA7G,EAAA,EAAA,MAAAwB,OAAAxB,EAAAyB,EAAAA,MAAAA,QAAAzB,EAAA0B,EAAAA,MAAAA,QAAA1B,EAAA,EAAA,MAAAmmB,WAAAnmB,EAAAqmB,EAAAA,MAAAA,gBAAArmB,UAAAgG,QAE3C+N,OAAChN,iBAAiBf,QAAQiB,uBACzBQ,gCAAC,MAAQ,EAAA,IAAA,QAAYjG,KAAWC,MAAYC,MAAY,OAAA,UAAa2kB,GAAAA,cAClEtf,UAAAA;AAAAA,IAAAA,iBACEU,2BAAAA,KAAA,MAAA,EAAK,OAAA,IAAYZ,MAAO,UACtBe,UAAAA;AAAAA,MAAAA,MAAAA,eAAeb,aAAa,KAAKA;AAAAA,MACjCc,QAAAA,mBAAmBd,aAAa,KAAKd,2BAAA,IAAC,eAAe,CAAA,CAAA;AAAA,IAAA,GACxD;AAAA,IAGDD,QACCC,2BAAAA,IAAC,KAAU,EAAA,MAAC,GACV,UAACA,2BAAA,IAAA,MAAA,EAAWY,MAAAA,UAAuB,cAAA,YAAkB,QAAA,UAClDb,eACH,CAAA,GACF;AAAA,IAGDmgB,WAAWlgB,2BAAA,IAAC,SAAckgB,EAAAA,MAAM,SAAU,OAAA;AAAA,MAAAnjB,WAAA;AAAA,MAAAH,cAAA;AAAA,IAAA,GAAoC;AAAA,IAE9EoE,sBACEQ,2BAAAA,KAAA,MAAA,EAAK,OAAA,IAAYZ,MAAO,UACtBe,UAAAA;AAAAA,MAAAA,MAAAA,eAAeX,kBAAkB,KAAKA;AAAAA,MACtCY,QAAAA,mBAAmBZ,kBAAkB,KAAKhB,2BAAA,IAAC,oBAAkB,CAAA,CAAA;AAAA,IAAA,EAChE,CAAA;AAAA,EAAA,GAEJ,GACDjG,QAAA+G,eAAA/G,QAAAiH,oBAAAjH,QAAA6G,UAAA7G,QAAAwB,KAAAxB,QAAAyB,MAAAzB,QAAA0B,MAAA1B,QAAAmmB,SAAAnmB,QAAAqmB,cAAArmB,QAAAgG,MAAAhG,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAAgU,MAAAA;AAAAhU,IAAAmB,EAAAA,MAAAA,YAAAnB,UAAAqmB,gBAEArS,MAAA7S,YACC8E,2BAAA,IAAC,KAAO,EAAA,IAAA,QAAM,GAAKogB,cAChBllB,SACH,CAAA,GACDnB,QAAAmB,UAAAnB,QAAAqmB,cAAArmB,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAAiU,MAAAA;AAAA,SAAAjU,EAAA6E,EAAAA,MAAAA,MAAA7E,UAAA4G,YAAA5G,EAAA,EAAA,MAAA2lB,eAAA3lB,EAAAqkB,EAAAA,MAAAA,oBAAArkB,EAAAskB,EAAAA,MAAAA,oBAAAtkB,EAAAiE,EAAAA,MAAAA,UAAAjE,EAAAkE,EAAAA,MAAAA,QAAAlE,EAAA,EAAA,MAAA2S,OAAA3S,EAAA,EAAA,MAAA6S,OAAA7S,EAAA8S,EAAAA,MAAAA,OAAA9S,UAAA+S,OAAA/S,EAAA,EAAA,MAAA+T,OAAA/T,EAAA,EAAA,MAAAgU,OAAAhU,EAAA,EAAA,MAAAuH,QAlDH0M,MAACxM,2BAAA,KAAA,YAAA,EACS,WAAA,eACJvD,MACAW,IACU,gBAAA8N,KACC,iBAAAE,KACA,iBAAAC,KACP7O,QACE2C,UACD+e,SAAAA,aACKtB,cAAAA,kBACAC,cAAe,kBACxBgC,aACA,MAAA,YACK,cACJ/e,MACA,MAAAwL,KAELgB,UAAAA;AAAAA,IAAAA;AAAAA,IA4BAC;AAAAA,EAAAA,EAAAA,CAKH,GAAahU,QAAA6E,IAAA7E,QAAA4G,UAAA5G,QAAA2lB,aAAA3lB,QAAAqkB,kBAAArkB,QAAAskB,kBAAAtkB,QAAAiE,QAAAjE,QAAAkE,MAAAlE,QAAA2S,KAAA3S,QAAA6S,KAAA7S,QAAA8S,KAAA9S,QAAA+S,KAAA/S,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAuH,MAAAvH,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA,GAnDbiU;AAmDa;ACpKV,MAAMsS,sBAAsB;AAyB5B,SAAAC,IAAA3lB,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GAgBDC,KAAAW;AAA6C4lB,MAAAA,SAAArS,cAAAtN,MAAA4f,IAAAC,OAAA1B,SAAA3Q,SAAApQ,MAAAmD,UAAAhH,IAAA+D,IAAAC;AAAArE,WAAAE,MAbjD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAyG;AAAAA,IAAA4f;AAAAA,IAAAD;AAAAA,IAAA5f,UAAAzC;AAAAA,IAAAuiB;AAAAA,IAAA1B;AAAAA,IAAA3Q;AAAAA,IAAAnP,SAAAd;AAAAA,IAAA0H,KAAAqI;AAAAA,IAAA/M;AAAAA,IAAA,GAAAnD;AAAAA,EAAAA,IAaIhE,IAA6CF,OAAAE,IAAAF,OAAAymB,SAAAzmB,OAAAoU,cAAApU,OAAA8G,MAAA9G,OAAA0mB,IAAA1mB,OAAA2mB,OAAA3mB,OAAAilB,SAAAjlB,OAAAsU,SAAAtU,OAAAkE,MAAAlE,OAAAqH,UAAArH,QAAAK,IAAAL,QAAAoE,IAAApE,QAAAqE,OAAAoiB,UAAAzmB,EAAA,CAAA,GAAAoU,eAAApU,EAAA,CAAA,GAAA8G,OAAA9G,EAAA,CAAA,GAAA0mB,KAAA1mB,EAAA,CAAA,GAAA2mB,QAAA3mB,EAAA,CAAA,GAAAilB,UAAAjlB,EAAA,CAAA,GAAAsU,UAAAtU,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAqH,WAAArH,EAAA,CAAA,GAAAK,KAAAL,EAAA,EAAA,GAAAoE,KAAApE,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA;AAZ/C6E,QAAAA,KAAAxE,OAAwBR,SAAA0mB,sBAAxBlmB,IAIAwG,WAAAzC,OAAYvE,aAAZuE,IAIAe,UAAAd,OAAWxE,aAAXwE,IAMF0H,MAAY2I,aAAA,IAAqC,GACjDkS,aAAmBlS,MAAAA,OAAA,EAAY;AAACpQ,MAAAA;AAAAtE,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAI9B9B,KAAAA,MAAMyH,IAAG6I,SAAQ5U,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAFnB6U,MAAAA,oBACET,cACA9P,EACF;AAACC,MAAAA;AAAAvE,IAAA,EAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAE8B7B,KAAAA,MAAA;AAC7BqiB,eAAUhS,UAAA;AAAA,EAAA,GACX5U,QAAAuE,MAAAA,KAAAvE,EAAA,EAAA;AAFD,QAAA6mB,aAAmBtiB;AAEbC,MAAAA;AAAAxE,YAAAsU,WAGJ9P,KAAAwQ,CAAA,UAAA;AACE4R,eAAUhS,UAAA,IACNN,WAASA,QAAQU,KAAK;AAAA,EAAC,GAC5BhV,QAAAsU,SAAAtU,QAAAwE,MAAAA,KAAAxE,EAAA,EAAA;AAJH,QAAAmV,cAAoB3Q;AAMnB,MAAAC,IAAAC;AAAA1E,YAAAymB,WAEShiB,KAAAA,MAAA;AACJgiB,eAAO,CAAKG,WAAUhS,YACpB7I,IAAG6I,WAAU7I,IAAG6I,QAAAkJ,MACpB8I,GAAAA,WAAUhS,UAAA;AAAA,EAAA,GAEXlQ,MAAC+hB,OAAO,GAACzmB,QAAAymB,SAAAzmB,QAAAyE,IAAAzE,QAAA0E,OAAAD,KAAAzE,EAAA,EAAA,GAAA0E,KAAA1E,EAAA,EAAA,IALZ+U,gBAAUtQ,IAKPC,EAAS;AAMO,QAAAY,KAAA+B,WAAW,SAAS,SAazB7B,MAAA6B,WAAiB,IAAA;AAAAkL,MAAAA;AAAA,SAAAvS,UAAA6E,MAAA7E,EAAA6G,EAAAA,MAAAA,YAAA7G,EAAA,EAAA,MAAAmV,eAAAnV,UAAA8G,QAAA9G,EAAA0mB,EAAAA,MAAAA,MAAA1mB,EAAA2mB,EAAAA,MAAAA,SAAA3mB,EAAA,EAAA,MAAAilB,WAAAjlB,UAAAmF,WAAAnF,EAAAkE,EAAAA,MAAAA,QAAAlE,EAAA,EAAA,MAAAqH,YAAArH,UAAAwF,OAAAxF,EAAA,EAAA,MAAAsF,MAhB7BiN,MAACtM,2BAAA,IAAA,QAAA,EACS,WAAA,UACJ/B,MACW,iBAAAoB,IACXT,IACMgC,UACJC,MACF4f,IACC,MAAA,SACIzB,SACD4B,QAAS,YACR1R,sBACAhQ,SACJ4G,KACA,MAAA,OACK1E,UACA,UAAA7B,KACJmhB,MAAI,OACL,MAAA,SACL,CAAA,GAAA3mB,QAAA6E,IAAA7E,QAAA6G,UAAA7G,QAAAmV,aAAAnV,QAAA8G,MAAA9G,QAAA0mB,IAAA1mB,QAAA2mB,OAAA3mB,QAAAilB,SAAAjlB,QAAAmF,SAAAnF,QAAAkE,MAAAlE,QAAAqH,UAAArH,QAAAwF,KAAAxF,QAAAsF,IAAAtF,QAAAuS,OAAAA,MAAAvS,EAAA,EAAA,GAnBFuS;AAmBE;AC5FC,MAAMuU,2BAA2B;AAoBjC,SAAAC,QAAAlmB,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,EAAA,GASDC,KAAAW;AAAsDmmB,MAAAA,cAAA9iB,MAAA7D,IAAA+D,IAAAC;AAAArE,WAAAE,MAN1D;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc,UAAA6lB;AAAAA,IAAAxlB,KAAA4C;AAAAA,IAAA8O,MAAA7O;AAAAA,IAAA,GAAAH;AAAAA,EAAAA,IAMIhE,IAAsDF,OAAAE,IAAAF,OAAAgnB,cAAAhnB,OAAAkE,MAAAlE,OAAAK,IAAAL,OAAAoE,IAAApE,OAAAqE,OAAA2iB,eAAAhnB,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAAoE,KAAApE,EAAA,CAAA,GAAAqE,KAAArE,EAAA,CAAA;AALxD6E,QAAAA,KAAAxE,OAA6BR,SAAAinB,2BAA7BzmB,IAEAmB,MAAA4C,OAAOvE,aAAPuE,IACA8O,OAAA7O,OAAexE,SAAR,WAAPwE,IAIF,CAAA+e,cAAA6D,eAAA,IAAwC1mB,iBAAW;AAAC+D,MAAAA;AAAA,MAAAtE,EAAAgnB,CAAAA,MAAAA,gBAAAhnB,SAAAojB,cAAA;AAEpD,UAAAjiB,WAAiB+lB,MAAAA,SAAAC,QAAiBH,YAAY,EAAClG,OAAAsG,eAAuB;AAAC7iB,QAAAA;AAAAvE,aAAAojB,gBAE7C7e,MAAAA,CAAAiX,OAAA6L,eACxB5L,MAAAA,aAAaD,OAAK;AAAA,MAAAiL,SACPrD,iBAAiBiE;AAAAA,MAAUxc,KAC/Bwc;AAAAA,MAAU/S,SAAAA,MACA2S,gBAAgBI,UAAU;AAAA,IAC1C,CAAA,GAACrnB,OAAAojB,cAAApjB,QAAAuE,OAAAA,MAAAvE,EAAA,EAAA,GALSsE,KAAAnD,SAAQiQ,IAAK7M,GAM1B,GAACvE,OAAAgnB,cAAAhnB,OAAAojB,cAAApjB,OAAAsE;AAAAA,EAAA;AAAAA,SAAAtE,EAAA,CAAA;AANDsnB,QAAAA,OAAahjB,IAQbijB,UAAgBD,KAAI9W;AAAOjM,MAAAA;AAAAvE,YAAAunB,WAGzBhjB,KAAAyQ,CAAA,UAAA;AACMA,UAAKnK,QAAS,eAChBoc,gBAAeO,CAAAA,eAAiBA,YAAYD,UAAO,KAAQA,OAAO,GAGhEvS,MAAKnK,QAAS,gBAChBoc,gBAAeQ,CAAiBD,iBAAAA,cAAa,KAAID,OAAO;AAAA,EAAC,GAE5DvnB,QAAAunB,SAAAvnB,QAAAuE,MAAAA,KAAAvE,EAAA,EAAA;AATH,QAAAmgB,gBAAsB5b;AAWrBC,MAAAA;AAAA,SAAAxE,UAAA6E,MAAA7E,EAAAwB,EAAAA,MAAAA,OAAAxB,EAAAmgB,EAAAA,MAAAA,iBAAAngB,EAAA,EAAA,MAAAkE,QAAAlE,UAAAsnB,QAAAtnB,EAAA,EAAA,MAAAkT,QAGC1O,KAACyB,2BAAAA,IAAA,MAAA,EACS,WAAA,WACJ/B,GAAAA,MACAW,IACCrD,KACM2e,WAAY,eAClB,MAAA,WACCjN,qBAGR,CAAA,GAAOlT,QAAA6E,IAAA7E,QAAAwB,KAAAxB,QAAAmgB,eAAAngB,QAAAkE,MAAAlE,QAAAsnB,MAAAtnB,QAAAkT,MAAAlT,QAAAwE,MAAAA,KAAAxE,EAAA,EAAA,GAVPwE;AAUO;AAIX,SAAS4iB,gBAAgBzoB,MAAgE;AACvF,SAAOe,CAAQf,CAAAA;AACjB;ACrFO,MAAM+oB,uBAAuB;AAgB7B,SAAAC,KAAA9mB,OAAA;AAAA,QAAAb,IAAAC,gBAAAA,EAAA,CAAA,GAODC,KAAAW;AAA+C,MAAAM,UAAA+C,MAAA7D;AAAAL,WAAAE,MAJnD;AAAA,IAAA2E,IAAAxE;AAAAA,IAAAc;AAAAA,IAAA,GAAA+C;AAAAA,EAIIhE,IAAAA,IAA+CF,OAAAE,IAAAF,OAAAmB,UAAAnB,OAAAkE,MAAAlE,OAAAK,OAAAc,WAAAnB,EAAA,CAAA,GAAAkE,OAAAlE,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA;AAHjD6E,QAAAA,KAAAxE,OAAyBR,SAAA6nB,uBAAzBrnB;AAAyB+D,MAAAA;AAAA,SAAApE,EAAA6E,CAAAA,MAAAA,MAAA7E,SAAAmB,YAAAnB,EAAA,CAAA,MAAAkE,QAMzBE,KAAC6B,2BAAA,IAAA,KAAA,EAAY,WAAA,QAAM,GAAK/B,MAAUW,IAAY,SAAA,QACpC,SACV,CAAA,GAAM7E,OAAA6E,IAAA7E,OAAAmB,UAAAnB,OAAAkE,MAAAlE,OAAAoE,MAAAA,KAAApE,EAAA,CAAA,GAFNoE;AAEM;ACnBH,SAAAwjB,eAAA1nB,IAAA;AAAuD,SACrD4H,cAAc,gCADQ5H,OAA+BL,SAAA8I,UAA/BzI,EACyC;AAAC;AADlE,SAAAyI,UAAA;AAAA,SAAA;AAAA;ACRA,SAAAkf,gBAAAC,cAAA;AAAA,QAAA9nB,IAAAC,gBAAAA,EAAA,CAAA,GAGL,CAAAiX,OAAA6Q,QAAA,IAA0BxnB,MAAAA,SAASunB,YAAY,GAC/CE,gBAAsBtT,MAAAA,OAAA7U,MAA4C;AAACK,MAAAA;AAAAF,IAAA,CAAA,MAAAmG,OAAAC,IAAA,2BAAA,KAEjClG,KAAAA,CAAAkX,WAAA6Q,UAAA;AAChC,UAAAC,SAAAA,MAAA;AACEH,eAAS3Q,SAAS;AAAA,IAAC;AAIjB4Q,QAAAA,cAAapT,YACfuT,aAAaH,cAAapT,OAAQ,GAClCoT,cAAapT,UAAA/U,SAAA,CAGVooB;AAAK,aAASC,OAAO;AACbtT,kBAAAA,UAAWwT,WAAWF,QAAQD,KAAK;AAAA,EAAA,GACjDjoB,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAbD,QAAAqoB,gBAAsBnoB;AAahBG,MAAAA;AAAAL,SAAAA,SAAAkX,SAEC7W,KAAA,CAAC6W,OAAOmR,aAAa,GAACroB,OAAAkX,OAAAlX,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAtBK;AAAsB;ACxBlBioB,MAAAA,8BAA8B,IAC9BC,+BAA+B,GAC/BC,+BAA+B,GAE/BC,2BAA2B,GAC3BC,0BAA0B,GAE1Bza,8BAA8D;AAAA,EACzE,KAAO,CAAC,WAAW,aAAa,UAAU,QAAQ,OAAO;AAAA,EACzD,aAAa,CAAC,OAAO,WAAW,gBAAgB,cAAc,aAAa;AAAA,EAC3E,WAAW,CAAC,OAAO,aAAa,cAAc,YAAY,WAAW;AAAA,EACrE,QAAU,CAAC,cAAc,gBAAgB,OAAO,QAAQ,OAAO;AAAA,EAC/D,gBAAgB,CAAC,UAAU,cAAc,aAAa,cAAc,aAAa;AAAA,EACjF,cAAc,CAAC,UAAU,gBAAgB,WAAW,YAAY,WAAW;AAAA,EAC3E,MAAQ,CAAC,YAAY,cAAc,SAAS,OAAO,QAAQ;AAAA,EAC3D,cAAc,CAAC,QAAQ,YAAY,eAAe,aAAa,cAAc;AAAA,EAC7E,YAAY,CAAC,QAAQ,cAAc,aAAa,WAAW,YAAY;AAAA,EACvE,OAAS,CAAC,aAAa,eAAe,QAAQ,OAAO,QAAQ;AAAA,EAC7D,eAAe,CAAC,SAAS,aAAa,cAAc,aAAa,cAAc;AAAA,EAC/E,aAAa,CAAC,SAAS,eAAe,YAAY,WAAW,YAAY;AAC3E,GCda0a,2BACX/d,0BACE,mCACA,IACF;ACJK,SAAAge,uBAAA;AAC6C,SAApCrd,MAAAA,WAAAod,wBAAmC;AAErC;ACqBP,SAAAE,aAAAhoB,OAAA;AAAAb,QAAAA,IAAAC,kBAAA,EAAA;AAAA,MAAA6X,SAAA1F,OAAA2F,UAAAC,QAAAC,QAAA9W,UAAA2I,SAAAC,SAAA5E,SAAA6D,WAAA/E,QAAAC,MAAAgI,QAAA/H,QAAAwN,OAAAzR;AAAAF,WAAAa,SACL;AAAA,IAAAiX;AAAAA,IAAA1F;AAAAA,IAAA2F;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA9W;AAAAA,IAAA2I;AAAAA,IAAAC;AAAAA,IAAA5E;AAAAA,IAAA6D;AAAAA,IAAA/E;AAAAA,IAAAiI;AAAAA,IAAA/H;AAAAA,IAAAwN;AAAAA,IAAApK,MAAArH;AAAAA,IAAA,GAAAgE;AAAAA,EAiBIrD,IAAAA,OAAKb,OAAAa,OAAAb,OAAA8X,SAAA9X,OAAAoS,OAAApS,OAAA+X,UAAA/X,OAAAgY,QAAAhY,OAAAiY,QAAAjY,OAAAmB,UAAAnB,OAAA8J,SAAA9J,OAAA+J,SAAA/J,OAAAmF,SAAAnF,QAAAgJ,WAAAhJ,QAAAiE,QAAAjE,QAAAkE,MAAAlE,QAAAkM,QAAAlM,QAAAmE,QAAAnE,QAAA2R,OAAA3R,QAAAE,OAAA4X,UAAA9X,EAAA,CAAA,GAAAoS,QAAApS,EAAA,CAAA,GAAA+X,WAAA/X,EAAA,CAAA,GAAAgY,SAAAhY,EAAA,CAAA,GAAAiY,SAAAjY,EAAA,CAAA,GAAAmB,WAAAnB,EAAA,CAAA,GAAA8J,UAAA9J,EAAA,CAAA,GAAA+J,UAAA/J,EAAA,CAAA,GAAAmF,UAAAnF,EAAA,CAAA,GAAAgJ,YAAAhJ,EAAA,EAAA,GAAAiE,SAAAjE,EAAA,EAAA,GAAAkE,OAAAlE,EAAA,EAAA,GAAAkM,SAAAlM,EAAA,EAAA,GAAAmE,SAAAnE,EAAA,EAAA,GAAA2R,QAAA3R,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA;AAFPuH,QAAAA,OAAArH,OAAgBL,SAAT,YAAPK;AAAgBG,MAAAA;AAQF+D,QAAAA,KAAA0T,UAAU,cAAWjY;AAAYwE,MAAAA;AAAArE,IAAA,EAAA,MAAA8J,WAAA9J,EAAA+J,EAAAA,MAAAA,WAAA/J,EAAA2R,EAAAA,MAAAA,SAAA3R,UAAAoE,MAHxCC,KAAA;AAAA,IAAAyF;AAAAA,IAAAC;AAAAA,IAAA1M,YAGO+G;AAAAA,IAAiC,GAC1CuN;AAAAA,EAAK,GACT3R,QAAA8J,SAAA9J,QAAA+J,SAAA/J,QAAA2R,OAAA3R,QAAAoE,IAAApE,QAAAqE,MAAAA,KAAArE,EAAA,EAAA,GAAAK,KALMgE;AADT,QAAAkU,YAA+BlY;AAQ9BiE,MAAAA;AAISC,QAAAA,KAAAyT,kBAAkBA,SAAMnY,QACzB2E,KAAAyT,kBAAkBA,SAAMpY;AAAY4E,MAAAA;AAAAzE,IAAAuE,EAAAA,MAAAA,MAAAvE,UAAAwE,MAFpCC,KAAA;AAAA,IAAAwK,MACC1K;AAAAA,IAAoC4K,KACrC3K;AAAAA,IAAoC0K,OAAArP;AAAAA,IAAAuP,QAAAvP;AAAAA,EAAAA,GAG1CG,QAAAuE,IAAAvE,QAAAwE,IAAAxE,QAAAyE,MAAAA,KAAAzE,EAAA,EAAA,GAAAsE,KALMG;AADT,QAAA+T,aAAkClU,IAgBhBI,KAAAoT,UAAU,KAAEjY;AAAYyF,MAAAA;AAAAtF,YAAA8X,WAS7BxS,KAAAwS,UAAO,CAAI,UAAU,SAAS,IAAAjY,QAAaG,QAAA8X,SAAA9X,QAAAsF,MAAAA,KAAAtF,EAAA,EAAA;AAAAwF,MAAAA;AAAAxF,YAAA8X,WAC3CtS,MAAAsS,UAAO,CAAI,WAAW,SAAS,IAAAjY,QAAaG,QAAA8X,SAAA9X,QAAAwF,OAAAA,MAAAxF,EAAA,EAAA;AAAAuS,MAAAA;AAAAvS,YAAA8X,WAC/CvF,MAAAuF,UAAO,CAAI,UAAU,UAAU,IAAAjY,QAAaG,QAAA8X,SAAA9X,QAAAuS,OAAAA,MAAAvS,EAAA,EAAA;AAAAwS,MAAAA;AAAAxS,IAAAoS,EAAAA,MAAAA,SAAApS,UAAA+X,YAAA/X,EAAA,EAAA,MAAAwY,cAKjDhG,MAAAJ,SACEnM,+BAAA,OAAA,EACM8R,KAAO,UACLS,OAAS,YACT8P,OAAAA,6BACCC,QAA2BA,8BAC3BC,QAAAA,8BAEX,GAAAxoB,QAAAoS,OAAApS,QAAA+X,UAAA/X,QAAAwY,YAAAxY,QAAAwS,OAAAA,MAAAxS,EAAA,EAAA;AAAA0S,MAAAA;AAAA,SAAA1S,EAAAmB,EAAAA,MAAAA,YAAAnB,UAAAmF,WAAAnF,EAAA,EAAA,MAAAgJ,aAAAhJ,EAAAiE,EAAAA,MAAAA,UAAAjE,EAAAkE,EAAAA,MAAAA,QAAAlE,EAAAuY,EAAAA,MAAAA,aAAAvY,EAAAkM,EAAAA,MAAAA,UAAAlM,EAAA,EAAA,MAAAmE,UAAAnE,EAAA,EAAA,MAAAwF,OAAAxF,EAAAuS,EAAAA,MAAAA,OAAAvS,UAAAwS,OAAAxS,EAAA,EAAA,MAAA0E,MAAA1E,EAAA,EAAA,MAAAsF,MAAAtF,EAAA,EAAA,MAAAuH,QA5BHmL,MAAAjL,gCAAC,SACS,WAAA,kBAAgB,GACpBvD,MACA,IAAAwU,aAAAA,OAAAC,KACU,gBAAAjU,IACEsE,kBAAAA,WACP7D,SACDlB,QACAiI,QACA/H,QACDoU,OAAQ,WACL,UAAAtb,qBAAAC,MACE,YAAAD,qBAAAQ,YACH,SAAA6H,IACA,SAAAE,KACH,MAAA+M,KACAhL,MAEE,UAAA;AAAA,IAAA;AAAA,IAEPiL;AAAAA,EAAAA,EAAAA,CASH,GAAQxS,QAAAmB,UAAAnB,QAAAmF,SAAAnF,QAAAgJ,WAAAhJ,QAAAiE,QAAAjE,QAAAkE,MAAAlE,QAAAuY,WAAAvY,QAAAkM,QAAAlM,QAAAmE,QAAAnE,QAAAwF,KAAAxF,QAAAuS,KAAAvS,QAAAwS,KAAAxS,QAAA0E,IAAA1E,QAAAsF,IAAAtF,QAAAuH,MAAAvH,QAAA0S,OAAAA,MAAA1S,EAAA,EAAA,GA7BR0S;AA6BQ;AClDL,MAAMoW,0BAA0B;AAmDhC,SAASC,QACdloB,OACmB;AACbkY,QAAAA,yBAAyBzN,sBAEzB;AAAA,IACJwM,SAASkB,WAAW;AAAA,IACpB5G,OAAO6G,YAAY;AAAA,IACnBpU,KAAKikB;AAAAA,IACLtc,kBAAkBuM,wBAAwBxa;AAAAA,IAC1C4C,UAAU+X;AAAAA,IACV9X;AAAAA,IACAgY;AAAAA,IACA6O;AAAAA,IACArhB;AAAAA,IACAyS,qBAAqBxY,MAAMwY,sBACzBpL,4BAA4BpN,MAAMmI,aAAa,QAAQ;AAAA,IACzD7D,UAAU;AAAA,IACV6D,WAAW0Q,gBAAgB;AAAA,IAC3BzM,QAAQ+b;AAAAA,IACR/kB,SAAS;AAAA,IACT8H,KAAKqI;AAAAA,IACLlI;AAAAA,IACA/H,SAAS;AAAA,IACTmS,UAAUpY,UAAUG;AAAAA,IACpBkJ,OAAO;AAAA,IACP,GAAGrD;AAAAA,EACDrD,IAAAA,OAEE3D,OAAOkP,WAEP0L,UADuBpP,wBAAAA,IACU,KAAQsQ,UACzCjN,MAAM2I,MAA8B,OAAA,IAAI,GACxC,CAACoF,kBAAkBmP,mBAAmB,IAAI1oB,MAA6B,SAAA,IAAI,GAC3EwX,WAAWrD,MAAAA,OAA8B,IAAI,GAC7C9F,eAA6B,YAC7B,CAACsa,iBAAiBC,kBAAkB,IAAI5oB,MAAAA,SAAS,CAAC;AAEU6T,QAAAA,oBAAAA,cAAc,MAAMrI,IAAI6I,OAAO;AAEjG,QAAM3H,SAASH,UAAU,GACnBI,gBACJ,OAAO8b,cAAe,WAAW/b,OAAOE,WAAW6b,UAAU,KAAK,OAAO/b,OAAO1O,SAE5E2b,aAAaC,MAAAA,QAAQ,MAAM;AAC/B,UAAMC,MAAoB,CAAE;AAG5BA,WAAAA,IAAIlJ,KACFsJ,gBAAK;AAAA,MACH9L,UAAUlC,mBAAmB3M;AAAAA,MAC7BwZ;AAAAA,MACAlU,SAASujB;AAAAA,MACT9Z;AAAAA,IACD,CAAA,CACH,GAGAwL,IAAIlJ,KAAKuJ,kBAAO;AAAA,MAACC,UAAU+N;AAAAA,IAAyB,CAAA,CAAC,GAGrDrO,IAAIlJ,KACF1H,iBAAM;AAAA,MACJkF,UAAUlC,mBAAmB3M;AAAAA,MAC7B+O;AAAAA,MACAzJ,SAASujB;AAAAA,IACV,CAAA,CACH,GAGIzP,aACFmB,IAAIlJ,KAAKkB,WAAAA,MAAM;AAAA,MAAC7T,SAASwZ;AAAAA,MAAU5S,SAASujB;AAAAA,IAAAA,CAAwB,CAAC,GAKnE5Q,WACFsC,IAAIlJ,KAAKtI,MAAM,GAGVwR;AAAAA,KACN,CAACtC,SAASmB,WAAWzM,iBAAiB6M,kBAAkB,CAAC,GAEtD;AAAA,IAAC+P;AAAAA,IAAgBpgB;AAAAA,IAAWD;AAAAA,IAAgB6R;AAAAA,IAAMC;AAAAA,MAAUC,uBAAY;AAAA,IAC5EZ;AAAAA,IACAlR,WAAW0Q;AAAAA,IACXqB,sBAAsBC,WAAAA;AAAAA,IACtB7N,UAAU;AAAA,MAACoB,WAAWuL;AAAAA,IAAgB;AAAA,IACtCuP,WAAW;AAAA,EACZ,CAAA,GAEKrR,SAASjP,eAAeqJ,OAAO3I,GAC/BwO,SAASlP,eAAeqJ,OAAOzI,GAE/BG,UAAUf,eAAe,mBAAmB,GAAGe,SAC/CC,UAAUhB,eAAe,mBAAmB,GAAGgB,SAE/Cuf,YAAYC,MAAAA,SACZ,CAACC,QAAQC,SAAS,IAAI5B,gBAAgB,EAAK,GAC3C6B,oBAAoBd,wBACpB;AAAA,IAACe;AAAAA,IAAkBC;AAAAA,EAAAA,IAAoBF,qBAAqB,IAC5DG,cAAcL,UAAUE,mBAAmBI,kBAAkBR,WAE7DS,gBAAgBL,sBAAsB,MACtCM,gBAAgB,OAAO/B,SAAU,WAAWA,QAAQA,OAAOxO,QAAQ,GACnEwQ,iBAAiB,OAAOhC,SAAU,WAAWA,QAAQA,OAAOiC,SAAS,GAErEC,YAAYJ,gBAAgBL,kBAAkBS,YAAYH,eAC1DI,aAAaL,gBAAgBL,kBAAkBU,aAAaH,gBAE5DI,qBAAqBlP,MACzB,YAAA,CAAC1B,MAAe6Q,cAAwB;AAClCP,QAAAA;AAEF,UAAItQ,MAAM;AACF8Q,cAAAA,mBAAmBD,YAAY,IAAIH;AAEzCR,2BAAmBlQ,MAAM8Q,gBAAgB,GACzCX,mBAAmBN,WAAWiB,gBAAgB;AAAA,MAAA,OACzC;AAECC,cAAAA,uBACJJ,aAAaK,MAA8BL,aAAaK;AAE1Dd,2BAAmBlQ,MAAM+Q,oBAAoB,GAC7CZ,mBAAmB,MAAMU,YAAY,IAAIF,UAAU;AAAA,MAAA;AAAA;AAMrDX,gBAAUhQ,MAHc6Q,YAAY,IAAI7Q,OAAO0Q,YAAYC,UAG5B;AAAA,EAGnC,GAAA,CACEL,eACAI,WACAR,kBACAC,kBACAN,WACAc,YACAX,SAAS,CAEb,GAEM5C,aAAa1L,kBAChB6F,CAA+B,MAAA;AAC9BqJ,uBAAmB,EAAK,GACxBnR,WAAWrY,OAAO6pB,SAAS1J,CAAC;AAAA,EAAA,GAE9B,CAAC9H,WAAWrY,OAAOwpB,kBAAkB,CACvC,GACM1E,cAAcxK,MAAAA,YACjB6F,CAAoC,QAAA;AACnCqJ,uBAAmB,IAAO,EAAI,GAC9BnR,WAAWrY,MAAMokB,UAAUjE,GAAC;AAAA,EAAA,GAE9B,CAAC9H,WAAWrY,OAAOwpB,kBAAkB,CACvC,GACMM,oBAAoBxP,MAAAA,YACvB6F,CAAoC,QAAA;AACnCqJ,uBAAmB,IAAO,EAAI,GAC9BnR,WAAWrY,MAAM+pB,gBAAgB5J,GAAC;AAAA,EAAA,GAEpC,CAAC9H,WAAWrY,OAAOwpB,kBAAkB,CACvC,GACMlV,cAAcgG,MAAAA,YACjB6F,CAA+B,QAAA;AAC9BqJ,uBAAmB,EAAI,GACvBnR,WAAWrY,OAAOyT,UAAU0M,GAAC;AAAA,EAAA,GAE/B,CAAC9H,WAAWrY,OAAOwpB,kBAAkB,CACvC,GACM7E,mBAAmBrK,MAAAA,YACtB6F,CAAoC,QAAA;AACnCqJ,uBAAmB,EAAI,GACvBnR,WAAWrY,OAAO0jB,eAAevD,GAAC;AAAA,EAAA,GAEpC,CAAC9H,WAAWrY,OAAOwpB,kBAAkB,CACvC,GACMQ,mBAAmB1P,MAAAA,YACtB6F,CAAoC,QAAA;AACnCqJ,uBAAmB,EAAK,GACxBnR,WAAWrY,OAAO2jB,eAAexD,GAAC;AAAA,EAEpC,GAAA,CAAC9H,WAAWrY,OAAOwpB,kBAAkB,CACvC;AAGqB,uBAAA;AAAA,IAACA;AAAAA,IAAoBvQ;AAAAA,IAAkB+P;AAAAA,IAAaE;AAAAA,EAAAA,CAAc,GAGvFhV,MAAAA,UAAU,MAAM;AACVnO,gBAAYijB,eAAaQ,mBAAmB,EAAK;AAAA,EAAA,GACpD,CAACzjB,UAAUyjB,oBAAoBR,WAAW,CAAC,GAG9C9U,gBAAU,MAAM;AACV,KAACqE,WAAWyQ,eAAaQ,mBAAmB,EAAK;AAAA,EAAA,GACpD,CAACjR,SAASiR,oBAAoBR,WAAW,CAAC,GAE7C9U,gBAAU,MAAM;AAEd,QAAI,CAAC8U,YAAa;AAElB,aAASiB,oBAAoB9V,OAAsB;AAC7CA,YAAMnK,QAAQ,YAChBwf,mBAAmB,IAAO,EAAI;AAAA,IAAA;AAIlCjiB,WAAAA,OAAOE,iBAAiB,WAAWwiB,mBAAmB,GAE/C,MAAM;AACJviB,aAAAA,oBAAoB,WAAWuiB,mBAAmB;AAAA,IAC3D;AAAA,KACC,CAACT,oBAAoBR,WAAW,CAAC,GAGpCkB,sBAAgB,MAAM;AAIpB,UAAMC,kBAAkB,CACtB,GAAIxe,kBAAkB,CAACA,gBAAgBye,WAAW,IAAI,CACtD/d,GAAAA,eAAe+d,eAAejgB,SAAS2B,KAAKse,WAAW;AAGzD9B,uBAAmB9e,KAAKF,IAAI,GAAG6gB,eAAe,IAAItC,0BAA0B,CAAC;AAAA,EAAA,GAC5E,CAAClc,iBAAiBU,aAAa,CAAC;AAE7BgO,QAAAA,WAAWC,kBACdC,CAAmC,YAAA;AACzBxG,aAAAA,UAAUwG,SACnBP,OAAO;AAAA,EAAA,GAET,CAACA,MAAM,CACT,GAEMQ,cAAcF,kBACjBxc,CAAgC,SAAA;AAC/BoN,QAAI6I,UAAUjW,MACdic,KAAKS,YAAY1c,IAAI;AAAA,EAAA,GAEvB,CAACic,IAAI,CACP,GAEMY,QAAQrB,MAAQ,QAAA,MACfjB,YAEEuC,MAAAA,aAAavC,WAAW;AAAA,IAC7BwR,QAAQ7D;AAAAA,IACRvS,SAASa;AAAAA,IACToP,cAAciB;AAAAA,IACdhB,cAAcqG;AAAAA,IACd5F,SAASU;AAAAA,IACTiF,eAAeD;AAAAA,IACf5e,KAAKkd;AAAAA,EAAAA,CACN,IAVsB,MAWtB,CACD/P,WACA2N,YACAlB,aACAgF,mBACAxV,aACAqQ,kBACAqF,gBAAgB,CACjB;AAQD,MAJAhW,MAAAA,oBAAoBqE,YAAY1N,cAAc0N,SAAS,IAAI,MAAM,MAAMY,kBAAkB,CACvFA,gBAAgB,CACjB,GAEG,CAAC0B,cAAgBvV,2BAAA,IAAAyV,WAAA,UAAA,EAAA;AAErB,MAAI9U,SAAiB4U,QAAAA;AAErB,QAAM7c,SACHsH,2BAAAA,IAAA,cAAA,EACC,WAAQ,WACR,GAAI/B,MACJ,SACA,OAAO+U,WACP,UAAUiC,UACV,QACA,QACA,IACA,WAAW7c,YAAQ;AAAA,IAAC+C;AAAAA,EAAU,CAAA,GAC9B,SACA,SACA,SACA,WACA,QACA,KAAKia,aACL,QACA,QACA,OAAO;AAAA,IACL,GAAG+N;AAAAA,IACHjmB,UAAU+lB,kBAAkB,IAAI,GAAGA,eAAe,OAAOrpB;AAAAA,EAAAA,GAE3D,MACA,SAECuZ,UAAAA,QACH,CAAA,GAGIjY,WACJ0oB,gBACCb,aACE/iB,2BAAA,IAAA,QAAA,EAAO,iBAAiB,OAAO+iB,cAAe,WAAWA,aAAanpB,QACrE,UAACoG,2BAAA,IAAA,cAAA,EAAa,MAAMsB,SAAS,YAAYrK,KAAKqK,OAAOA,MAAM,QAAQ2E,UAAU,SAC1EvN,UAAAA,OAAAA,CACH,GACF,IAEAA;AAGJ,SAGKmZ,2BAAAA,KAAAA,qBAAAA,EAAAA,UAAAA;AAAAA,IAAU,UAAA7R,2BAAAA,IAAC2V,aAAAA,iBAAiBza,EAAAA,SAAAA,CAAS,IAAqBA;AAAAA,IAG1Dqa;AAAAA,EAAAA,GACH;AAEJ;AAMA,SAAA0P,qBAAAhrB,IAAA;AAAAF,QAAAA,IAAAC,kBAAA,EAAA,GAA8B;AAAA,IAAAoqB;AAAAA,IAAAvQ;AAAAA,IAAA+P;AAAAA,IAAAE;AAAAA,EAAAA,IAAA7pB;AAU7BG,MAAAA;AAAAL,IAAAqqB,CAAAA,MAAAA,sBAAArqB,SAAA8Z,oBAIoCzZ,KAAAA,CAAA6U,QAAAiW,aAAA;AAAA,IAC5BrR,qBAGHA,qBAAqB5E,UAAWA,kBAAMtW,QAAoBkb,iBAAgB1a,SAAU8V,MAAM,MAG1FmV,qBAAwB,GAExBc,SAAS;AAAA,EAEZnrB,GAAAA,OAAAqqB,oBAAArqB,OAAA8Z,kBAAA9Z,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAXDorB,QAAAA,cAAoBvL,8BAAexf,EAWlC;AAAC+D,MAAAA;AAAApE,IAAA+pB,CAAAA,MAAAA,iBAAA/pB,SAAAorB,eAAAprB,EAAA,CAAA,MAAA6pB,eAKQzlB,KAAAA,MAAA;AAAA,QACJ,CAACylB,eAAeE;AAAa;AAEjC,UAAAsB,kBAAArW,CAAA,UAAA;AACEoW,kBAAYpW,MAAKE,QAAe9M,MAAAA,OAAAG,oBAA2B,aAAa8iB,eAAe,CAAC;AAAA,IAAC;AAG3F/iB,WAAAA,OAAAA,iBAAwB,aAAa+iB,eAAe,GAAC,MAExCjjB,OAAAG,oBAA2B,aAAa8iB,eAAe;AAAA,EAAA,GACrErrB,OAAA+pB,eAAA/pB,OAAAorB,aAAAprB,OAAA6pB,aAAA7pB,OAAAoE,MAAAA,KAAApE,EAAA,CAAA;AAAAqE,MAAAA;AAAArE,IAAA+pB,CAAAA,MAAAA,iBAAA/pB,SAAA6pB,eAAExlB,KAAA,CAAC0lB,eAAeF,WAAW,GAAC7pB,OAAA+pB,eAAA/pB,OAAA6pB,aAAA7pB,OAAAqE,MAAAA,KAAArE,EAAA,CAAA,GAV/B+U,MAAAA,UAAU3Q,IAUPC,EAA4B;AAAC;AChd3B,SAAAinB,eAAAzqB,OAAA;AAAAb,QAAAA,IAAAC,kBAAA,CAAA,GACL;AAAA,IAAAkB;AAAAA,IAAA5C;AAAAA,IAAAgtB,qBAAAC;AAAAA,EAAAA,IAA+D3qB,OAC/DsM,WAAiBse,UAAUD,YAAY,GACvCE,kBAAwBjjB,2BAAAkjB,gBAAAhjB,OAAA6O,MAIxB;AAACtX,MAAAA;AAMY,QAAAG,KAAA9B,WAAWmtB;AAAetnB,MAAAA;AAAApE,IAAAmN,CAAAA,MAAAA,YAAAnN,SAAAK,MAH9B+D,KAAA;AAAA,IAAAiH,SAAA;AAAA,IAAAmB,iBAAA;AAAA,IAAAjO,SAGI8B;AAAAA,IAA0B8M;AAAAA,EAAAA,GAEpCnN,OAAAmN,UAAAnN,OAAAK,IAAAL,OAAAoE,MAAAA,KAAApE,EAAA,CAAA,GALDE,KAAOkE;AADT,QAAA3E,QAAkCS;AAOMmE,MAAAA;AAAA,SAAArE,EAAAmB,CAAAA,MAAAA,YAAAnB,SAAAP,SAEjC4E,KAAA4B,2BAAA,IAAA,cAAA,UAAA,EAA+BxG,OAAQ0B,SAAS,CAAA,GAAyBnB,OAAAmB,UAAAnB,OAAAP,OAAAO,OAAAqE,MAAAA,KAAArE,EAAA,CAAA,GAAzEqE;AAAyE;AAlB3E,SAAAmT,SAAA;AAAA,SAAA;AAAA;AAAA,SAAA7O,QAAA;AAAA,SAAAqC,SAAA2B;AAAA;AAqBP,MAAMgf,iBAAiBA,MAAM,MAAM;AAAC;AAMpC,SAASF,UAAqDhsB,OAA6B;AACnFmsB,QAAAA,WAAWlX,aAAkBjV,KAAK;AAEnCosB,SAAAA,SAASD,SAAShX,SAASnV,KAAK,MACnCmsB,SAAShX,UAAUnV,QAGdmsB,SAAShX;AAClB;AAEA,SAASiX,SAASC,MAAkBC,MAA2B;AACzD,MAAA,CAACD,QAAQ,CAACC;AACZ,WAAOD,SAASC;AAGZC,QAAAA,QAAQtgB,OAAO2L,KAAKyU,IAAI,GACxBG,QAAQvgB,OAAO2L,KAAK0U,IAAI;AAE9B,SAAIC,MAAMxb,WAAWyb,MAAMzb,SAClB,KAGFwb,MAAME,MAAOrhB,CAAAA,SAAQihB,KAAKjhB,IAAG,MAAMkhB,KAAKlhB,IAAG,CAAC;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|