@sanity/ui 3.0.0-static.2 → 3.0.0-static.21
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 -6
- package/bin/{ui.js → sanity-ui.cjs} +1 -1
- package/dist/_chunks-cjs/_visual-editing.cjs +2488 -0
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
- package/dist/_chunks-cjs/{refractor.js → refractor.cjs} +1 -2
- package/dist/_chunks-cjs/refractor.cjs.map +1 -0
- package/dist/_chunks-es/_visual-editing.js +2500 -0
- package/dist/_chunks-es/_visual-editing.js.map +1 -0
- package/dist/_chunks-es/{refractor.mjs → refractor.js} +1 -2
- package/dist/_chunks-es/refractor.js.map +1 -0
- package/dist/_visual-editing.cjs +30 -0
- package/dist/_visual-editing.cjs.map +1 -0
- package/dist/_visual-editing.d.cts +893 -0
- package/dist/_visual-editing.d.ts +503 -416
- package/dist/_visual-editing.js +29 -30
- package/dist/_visual-editing.js.map +1 -1
- package/dist/css.cjs +598 -0
- package/dist/css.cjs.map +1 -0
- package/dist/css.d.cts +14884 -0
- package/dist/css.d.ts +14379 -1630
- package/dist/css.js +480 -4594
- package/dist/css.js.map +1 -1
- package/dist/index.cjs +2222 -0
- package/dist/index.cjs.map +1 -0
- package/dist/{index.d.mts → index.d.cts} +1284 -961
- package/dist/index.d.ts +1284 -961
- package/dist/index.js +1270 -592
- package/dist/index.js.map +1 -1
- package/dist/{theme.mjs → theme.cjs} +2843 -2571
- package/dist/theme.cjs.map +1 -0
- package/dist/{theme.d.mts → theme.d.cts} +331 -311
- package/dist/theme.d.ts +331 -311
- package/dist/theme.js +2843 -2569
- package/dist/theme.js.map +1 -1
- package/dist/ui.css +22564 -0
- package/exports/_visual-editing.ts +0 -1
- package/package.json +84 -79
- package/src/cli/buildCommand.ts +3 -41
- package/src/cli/index.ts +2 -14
- package/src/core/_compat/helpers.ts +72 -0
- package/src/core/_compat/index.ts +1 -6
- package/src/core/_compat/styles/_responsive.ts +1 -1
- package/src/core/_compat/theme/theme.test.tsx +4 -5
- package/src/core/_compat/theme/themeColorProvider.tsx +4 -10
- package/src/core/_compat/theme/themeContext.ts +5 -5
- package/src/core/_compat/theme/themeProvider.tsx +19 -13
- package/src/core/_compat/theme/types.ts +2 -4
- package/src/core/_compat/theme/useRootTheme.ts +2 -4
- package/src/core/_compat/theme/useTheme.ts +3 -7
- package/src/core/_compat/types.ts +0 -73
- package/src/core/components/autocomplete/__workshop__/async.tsx +6 -6
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +11 -18
- package/src/core/components/autocomplete/__workshop__/custom.tsx +21 -20
- package/src/core/components/autocomplete/__workshop__/example.tsx +17 -17
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +5 -5
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +57 -59
- package/src/core/components/autocomplete/autocomplete.tsx +106 -140
- package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
- package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
- package/src/core/components/autocomplete/constants.ts +1 -1
- package/src/core/components/autocomplete/types.ts +4 -9
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +2 -3
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +32 -28
- package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +2 -2
- package/src/core/components/dialog/__workshop__/onScroll.tsx +16 -4
- package/src/core/components/dialog/__workshop__/position.tsx +4 -4
- package/src/core/components/dialog/__workshop__/props.tsx +7 -7
- package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
- package/src/core/components/dialog/dialog.tsx +104 -304
- package/src/core/components/dialog/dialogCard.tsx +190 -0
- package/src/core/components/dialog/dialogContext.ts +5 -3
- package/src/core/components/dialog/dialogProvider.tsx +6 -7
- package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
- package/src/core/components/dialog/useDialog.ts +1 -1
- package/src/core/components/hotkeys/hotkeys.tsx +41 -27
- package/src/core/components/menu/__workshop__/asComponent.tsx +6 -6
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
- package/src/core/components/menu/__workshop__/groups.tsx +2 -2
- package/src/core/components/menu/__workshop__/menuButton.tsx +4 -4
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
- package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
- package/src/core/components/menu/__workshop__/tones.tsx +3 -3
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
- package/src/core/components/menu/menu.test.tsx +6 -7
- package/src/core/components/menu/menu.tsx +27 -35
- package/src/core/components/menu/menuButton.tsx +18 -24
- package/src/core/components/menu/menuContext.ts +1 -1
- package/src/core/components/menu/menuDivider.tsx +25 -15
- package/src/core/components/menu/menuGroup.tsx +39 -33
- package/src/core/components/menu/menuItem.tsx +58 -46
- package/src/core/components/menu/useMenu.ts +1 -1
- package/src/core/components/menu/useMenuController.ts +4 -4
- package/src/core/components/skeleton/__workshop__/delay.tsx +3 -3
- package/src/core/components/skeleton/__workshop__/skeleton.tsx +4 -4
- package/src/core/components/skeleton/codeSkeleton.tsx +49 -0
- package/src/core/components/skeleton/headingSkeleton.tsx +48 -0
- package/src/core/components/skeleton/index.ts +3 -0
- package/src/core/components/skeleton/labelSkeleton.tsx +47 -0
- package/src/core/components/skeleton/skeleton.tsx +37 -18
- package/src/core/components/skeleton/textSkeleton.tsx +29 -112
- package/src/core/components/tab/__workshop__/example.tsx +2 -2
- package/src/core/components/tab/tab.tsx +28 -26
- package/src/core/components/tab/tabList.tsx +49 -28
- package/src/core/components/tab/tabPanel.tsx +29 -22
- package/src/core/components/toast/__workshop__/hook.tsx +1 -1
- package/src/core/components/toast/__workshop__/toast.tsx +5 -5
- package/src/core/components/toast/toast.test.tsx +5 -5
- package/src/core/components/toast/toast.tsx +30 -57
- package/src/core/components/toast/toastContext.ts +1 -1
- package/src/core/components/toast/toastLayer.tsx +29 -13
- package/src/core/components/toast/toastProvider.tsx +5 -10
- package/src/core/components/toast/types.ts +3 -7
- package/src/core/components/toast/useToast.ts +2 -4
- package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
- package/src/core/components/tree/__workshop__/basic.tsx +1 -1
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
- package/src/core/components/tree/helpers.ts +1 -1
- package/src/core/components/tree/tree.tsx +196 -191
- package/src/core/components/tree/treeContext.ts +1 -1
- package/src/core/components/tree/treeGroup.tsx +24 -6
- package/src/core/components/tree/treeItem.tsx +44 -34
- package/src/core/components/tree/types.ts +2 -2
- package/src/core/components/tree/useTree.ts +1 -1
- package/src/core/constants.ts +6 -0
- package/src/core/helpers/props.ts +18 -0
- package/src/core/hooks/index.ts +1 -0
- package/src/core/hooks/useArrayProp.ts +1 -4
- package/src/core/hooks/useClickOutside.test.tsx +15 -16
- package/src/core/hooks/useClickOutside.ts +2 -6
- package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
- package/src/core/hooks/useClickOutsideEvent.ts +3 -9
- package/src/core/hooks/useDelayed.test.ts +6 -7
- package/src/core/hooks/useDelayedState.ts +1 -1
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
- package/src/core/hooks/useElementSize.ts +1 -1
- package/src/core/hooks/useForwardedRef.ts +1 -1
- package/src/core/hooks/useMatchMedia.ts +13 -31
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -18
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +12 -12
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
- package/src/core/hooks/usePrefersDark.test.tsx +1 -0
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
- package/src/core/hooks/useResponsiveProp.ts +28 -0
- package/src/core/index.ts +0 -1
- package/src/core/lib/isArray.ts +3 -0
- package/src/core/middleware/origin.ts +1 -1
- package/src/core/primitives/_selectable/selectable.tsx +33 -24
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +2 -2
- package/src/core/primitives/avatar/__workshop__/stack.tsx +2 -2
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +2 -2
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
- package/src/core/primitives/avatar/avatar.tsx +43 -48
- package/src/core/primitives/avatar/avatarCounter.tsx +46 -39
- package/src/core/primitives/avatar/avatarStack.tsx +44 -45
- package/src/core/primitives/avatar/types.ts +3 -3
- package/src/core/primitives/badge/__workshop__/props.tsx +6 -17
- package/src/core/primitives/badge/__workshop__/tones.tsx +1 -6
- package/src/core/primitives/badge/badge.test.tsx +2 -3
- package/src/core/primitives/badge/badge.tsx +34 -40
- package/src/core/primitives/badge/types.ts +2 -1
- package/src/core/primitives/box/__workshop__/props.tsx +2 -2
- package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
- package/src/core/primitives/box/box.tsx +153 -88
- package/src/core/primitives/button/__workshop__/custom.tsx +19 -42
- package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
- package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
- package/src/core/primitives/button/__workshop__/props.tsx +19 -22
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +3 -3
- package/src/core/primitives/button/__workshop__/stacked.tsx +15 -16
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +2 -1
- package/src/core/primitives/button/button.test.tsx +3 -18
- package/src/core/primitives/button/button.tsx +67 -76
- package/src/core/primitives/card/__workshop__/asButton.tsx +14 -14
- package/src/core/primitives/card/__workshop__/asComponent.tsx +3 -3
- package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
- package/src/core/primitives/card/__workshop__/index.ts +1 -1
- package/src/core/primitives/card/__workshop__/interactive.tsx +3 -4
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
- package/src/core/primitives/card/__workshop__/props.tsx +14 -17
- package/src/core/primitives/card/__workshop__/selected.tsx +10 -41
- package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
- package/src/core/primitives/card/card.tsx +52 -48
- package/src/core/primitives/card/cardContext.ts +10 -0
- package/src/core/primitives/card/cardProvider.tsx +27 -0
- package/src/core/primitives/card/index.ts +2 -0
- package/src/core/primitives/card/types.ts +19 -3
- package/src/core/primitives/card/useCard.ts +9 -0
- package/src/core/primitives/checkbox/__workshop__/props.tsx +6 -4
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
- package/src/core/primitives/checkbox/checkbox.tsx +30 -23
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
- package/src/core/primitives/code/__workshop__/props.tsx +4 -7
- package/src/core/primitives/code/code.tsx +27 -30
- package/src/core/primitives/code/refractor.tsx +0 -2
- package/src/core/primitives/container/__workshop__/example.tsx +2 -2
- package/src/core/primitives/container/container.tsx +27 -25
- package/src/core/primitives/flex/__workshop__/example.tsx +2 -2
- package/src/core/primitives/flex/flex.tsx +44 -17
- package/src/core/primitives/grid/grid.tsx +20 -17
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +2 -2
- package/src/core/primitives/heading/__workshop__/plain.tsx +12 -15
- package/src/core/primitives/heading/heading.tsx +51 -33
- package/src/core/primitives/inline/__workshop__/plain.tsx +2 -5
- package/src/core/primitives/inline/inline.tsx +46 -27
- package/src/core/primitives/inline/types.ts +1 -0
- package/src/core/primitives/kbd/kbd.tsx +28 -28
- package/src/core/primitives/label/__workshop__/plain.tsx +8 -17
- package/src/core/primitives/label/label.tsx +49 -39
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +6 -6
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +3 -3
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +3 -3
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +10 -6
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +5 -4
- package/src/core/primitives/popover/constants.ts +1 -1
- package/src/core/primitives/popover/floating-ui/size.ts +2 -2
- package/src/core/primitives/popover/helpers.ts +1 -1
- package/src/core/primitives/popover/popover.tsx +299 -335
- package/src/core/primitives/popover/popoverLayer.tsx +147 -0
- package/src/core/primitives/popover/types.ts +3 -2
- package/src/core/primitives/radio/__workshop__/example.tsx +3 -3
- package/src/core/primitives/radio/__workshop__/plain.tsx +3 -3
- package/src/core/primitives/radio/radio.tsx +34 -19
- package/src/core/primitives/select/__workshop__/plain.tsx +15 -6
- package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
- package/src/core/primitives/select/select.tsx +28 -28
- package/src/core/primitives/spinner/__workshop__/Props.tsx +4 -5
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +7 -9
- package/src/core/primitives/spinner/spinner.tsx +27 -15
- package/src/core/primitives/stack/__workshop__/plain.tsx +2 -2
- package/src/core/primitives/stack/stack.tsx +44 -20
- package/src/core/primitives/switch/switch.tsx +31 -17
- package/src/core/primitives/text/__workshop__/colored.tsx +6 -6
- package/src/core/primitives/text/__workshop__/example.tsx +9 -20
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
- package/src/core/primitives/text/text.tsx +52 -44
- package/src/core/primitives/textArea/__workshop__/plain.tsx +44 -33
- package/src/core/primitives/textArea/textArea.tsx +47 -22
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +2 -2
- package/src/core/primitives/textInput/__workshop__/plain.tsx +36 -30
- package/src/core/primitives/textInput/__workshop__/states.tsx +5 -5
- package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
- package/src/core/primitives/textInput/__workshop__/typed.tsx +2 -2
- package/src/core/primitives/textInput/textInput.tsx +80 -106
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +5 -5
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +2 -2
- package/src/core/primitives/tooltip/__workshop__/props.tsx +9 -8
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
- package/src/core/primitives/tooltip/constants.ts +1 -1
- package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
- package/src/core/primitives/tooltip/tooltip.tsx +107 -90
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -5
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
- package/src/core/primitives/tooltip/tooltipLayer.tsx +105 -0
- package/src/core/primitives/types.ts +19 -30
- package/src/core/types/avatar.ts +3 -6
- package/src/core/types/badge.ts +2 -4
- package/src/core/types/button.ts +2 -4
- package/src/core/types/card.ts +2 -4
- package/src/core/types/dialog.ts +1 -3
- package/src/core/types/flex.ts +3 -3
- package/src/core/types/props.ts +20 -10
- package/src/core/types/selectable.ts +1 -1
- package/src/core/utils/arrow/arrow.tsx +43 -28
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +4 -10
- package/src/core/utils/boundaryElement/types.ts +1 -3
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +2 -4
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
- package/src/core/utils/elementQuery/elementQuery.tsx +41 -19
- package/src/core/utils/errorBoundary.tsx +6 -4
- package/src/core/utils/index.ts +0 -1
- package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
- package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
- package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
- package/src/core/utils/layer/getLayerContext.test.ts +3 -1
- package/src/core/utils/layer/getLayerContext.ts +1 -1
- package/src/core/utils/layer/layer.test.tsx +5 -5
- package/src/core/utils/layer/layer.tsx +25 -95
- package/src/core/utils/layer/layerCard.tsx +90 -0
- package/src/core/utils/layer/layerContext.ts +1 -1
- package/src/core/utils/layer/layerProvider.tsx +20 -17
- package/src/core/utils/layer/useLayer.ts +2 -4
- package/src/core/utils/portal/__workshop__/named.tsx +3 -3
- package/src/core/utils/portal/portal.test.tsx +5 -5
- package/src/core/utils/portal/{portal.ts → portal.tsx} +17 -11
- package/src/core/utils/portal/portalContext.ts +1 -1
- package/src/core/utils/portal/portalProvider.tsx +4 -10
- package/src/core/utils/portal/types.ts +1 -3
- package/src/core/utils/portal/usePortal.ts +2 -4
- package/src/core/utils/srOnly/srOnly.tsx +25 -27
- package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
- package/src/core/utils/virtualList/virtualList.tsx +71 -55
- package/src/css/__theme/index.ts +16 -0
- package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
- package/src/css/__theme/lib/contract/index.ts +4 -0
- package/src/css/__theme/lib/contract/types.ts +17 -0
- package/src/css/__theme/resolveTheme.ts +865 -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 +81 -0
- package/src/css/components/dialog/dialog.ts +20 -11
- package/src/css/components/index.ts +6 -0
- 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 +132 -0
- package/src/css/components/skeleton/skeleton.ts +14 -9
- package/src/css/components/skeleton/types.ts +13 -5
- package/src/css/components/toast/toast.css.ts +16 -0
- package/src/css/components/toast/toast.ts +5 -15
- 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 -0
- package/src/css/defaultTheme.css.ts +468 -0
- package/src/css/index.ts +12 -38
- package/src/css/layers.css.ts +9 -0
- package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
- package/src/css/primitives/_arrow/_arrow.ts +18 -6
- package/src/css/primitives/_input/_input.css.ts +258 -0
- package/src/css/primitives/_input/input.ts +17 -14
- package/src/css/primitives/_input/types.ts +3 -3
- package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
- package/src/css/primitives/_selectable/selectable.ts +5 -5
- package/src/css/primitives/_selectable/types.ts +3 -2
- package/src/css/primitives/avatar/avatar.css.ts +175 -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 +26 -0
- package/src/css/primitives/badge/badge.ts +4 -4
- package/src/css/primitives/badge/types.ts +5 -4
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +52 -16
- package/src/css/primitives/box/types.ts +46 -22
- package/src/css/primitives/button/button.css.ts +285 -0
- package/src/css/primitives/button/button.ts +15 -33
- package/src/css/primitives/button/index.ts +1 -0
- package/src/css/primitives/button/types.ts +19 -0
- package/src/css/primitives/card/card.css.ts +365 -0
- package/src/css/primitives/card/card.ts +9 -12
- package/src/css/primitives/card/types.ts +4 -6
- 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 +271 -0
- package/src/css/primitives/code/code.ts +13 -5
- package/src/css/primitives/code/types.ts +4 -3
- package/src/css/primitives/container/container.css.ts +4 -0
- package/src/css/primitives/container/container.ts +12 -4
- package/src/css/primitives/container/types.ts +4 -2
- package/src/css/primitives/heading/heading.css.ts +85 -0
- package/src/css/primitives/heading/heading.ts +13 -11
- package/src/css/primitives/heading/types.ts +6 -3
- package/src/css/primitives/index.ts +24 -0
- 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 +85 -0
- package/src/css/primitives/label/label.ts +13 -10
- package/src/css/primitives/label/types.ts +13 -5
- 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/select/select.css.ts +24 -0
- package/src/css/primitives/select/select.ts +7 -4
- package/src/css/primitives/select/types.ts +1 -1
- package/src/css/primitives/spinner/index.ts +1 -0
- package/src/css/primitives/spinner/spinner.css.ts +23 -0
- package/src/css/primitives/spinner/spinner.ts +9 -5
- package/src/css/primitives/spinner/types.ts +4 -0
- package/src/css/primitives/stack/index.ts +1 -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 +85 -0
- package/src/css/primitives/text/text.ts +13 -11
- package/src/css/primitives/text/types.ts +9 -3
- package/src/css/primitives/textArea/textArea.css.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +5 -3
- 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 +20 -4
- package/src/css/primitives/textInput/types.ts +3 -7
- package/src/css/primitives/tooltip/index.ts +1 -0
- package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
- package/src/css/primitives/tooltip/tooltip.ts +8 -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/index.ts +2 -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 +36 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
- package/src/css/props/boxSizing/boxSizing.ts +10 -0
- package/src/css/props/boxSizing/index.ts +2 -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 +17 -0
- package/src/css/{styles → props}/display/types.ts +3 -4
- 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/index.ts +2 -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/index.ts +2 -0
- package/src/css/props/flexWrap/types.ts +9 -0
- package/src/css/props/font/font.css.ts +93 -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/{styles → props}/gap/types.ts +2 -2
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
- package/src/css/props/gridAutoColumns/index.ts +2 -0
- package/src/css/props/gridAutoColumns/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/gridAutoFlow/types.ts +13 -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/index.ts +2 -0
- package/src/css/props/gridAutoRows/types.ts +13 -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/index.ts +2 -0
- package/src/css/props/gridColumn/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/gridColumnEnd/types.ts +19 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
- package/src/css/props/gridColumnStart/index.ts +2 -0
- package/src/css/props/gridColumnStart/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/gridRow/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/gridRowEnd/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/gridRowStart/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/gridTemplateColumns/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/gridTemplateRows/types.ts +19 -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/index.ts +2 -0
- package/src/css/props/height/types.ts +15 -0
- package/src/css/props/index.ts +37 -0
- package/src/css/props/inset/inset.css.ts +37 -0
- package/src/css/props/inset/inset.ts +21 -0
- package/src/css/{styles → props}/inset/types.ts +1 -1
- package/src/css/props/justifyContent/index.ts +2 -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/index.ts +2 -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/index.ts +2 -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/index.ts +2 -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 +17 -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/{styles → props}/position/types.ts +1 -1
- 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/index.ts +2 -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 +13 -0
- package/src/css/props/textOverflow/textOverflow.ts +8 -0
- package/src/css/{styles → props}/textOverflow/types.ts +5 -1
- package/src/css/props/width/types.ts +11 -0
- package/src/css/props/width/width.css.ts +28 -0
- package/src/css/props/width/width.ts +8 -0
- package/src/css/types.ts +221 -766
- package/src/css/util.ts +3 -8
- package/src/css/utils/index.ts +1 -0
- package/src/css/utils/srOnly/srOnly.css.ts +10 -0
- package/src/css/utils/srOnly/srOnly.ts +5 -3
- package/src/css/vars.css.ts +676 -0
- package/src/theme/getScopedTheme.ts +4 -4
- package/src/theme/index.ts +0 -5
- package/src/theme/types.ts +6 -10
- package/src/theme/v0/color/_generic.ts +1 -1
- package/src/theme/v0/color/button.ts +1 -1
- package/src/theme/v0/color/card.ts +1 -1
- package/src/theme/v0/color/color.ts +11 -11
- package/src/theme/v0/color/input.ts +1 -1
- package/src/theme/v0/color/muted.ts +1 -1
- package/src/theme/v0/color/selectable.ts +1 -1
- package/src/theme/v0/color/solid.ts +1 -1
- package/src/theme/v0/color/spot.ts +1 -1
- package/src/theme/v0/focusRing.ts +1 -3
- package/src/theme/v0/font.ts +6 -19
- package/src/theme/v0/layer.ts +1 -3
- package/src/theme/v0/shadow.ts +2 -6
- package/src/theme/v0/styles.ts +1 -1
- package/src/theme/v0/theme.ts +7 -7
- package/src/theme/v2/avatar.ts +2 -4
- package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
- package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
- package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
- package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
- package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
- package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
- package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
- package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
- package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
- package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
- package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
- package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
- package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
- package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
- package/src/theme/v2/build/buildTheme.ts +12 -0
- package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
- package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
- package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
- package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
- package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
- package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
- package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
- package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
- package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
- package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
- package/src/theme/v2/color/_helpers.ts +2 -2
- package/src/theme/v2/color/_system.ts +2 -4
- package/src/theme/v2/color/avatar.ts +3 -7
- package/src/theme/v2/color/badge.ts +3 -7
- package/src/theme/v2/color/button.ts +5 -11
- package/src/theme/v2/color/color.ts +10 -16
- package/src/theme/v2/color/input.ts +8 -10
- package/src/theme/v2/color/kbd.ts +1 -3
- package/src/theme/v2/color/selectable.ts +4 -8
- package/src/theme/v2/color/state.ts +5 -7
- package/src/theme/v2/color/syntax.ts +1 -3
- package/src/theme/{config → v2/config}/helpers.ts +6 -13
- package/src/theme/{config → v2/config}/system.ts +11 -12
- package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
- package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
- package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
- package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
- package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
- package/src/theme/{config → v2/config}/types.ts +8 -6
- package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
- package/src/theme/{defaults → v2/defaults}/colorTokens.ts +3 -3
- package/src/theme/{defaults → v2/defaults}/config.ts +2 -2
- package/src/theme/{defaults → v2/defaults}/fonts.ts +5 -6
- package/src/theme/v2/index.ts +2 -0
- package/src/theme/v2/input.ts +2 -4
- package/src/theme/v2/theme.ts +10 -14
- package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
- package/src/theme/v3/{color/parseColor.ts → _parseColorToken.ts} +59 -46
- package/src/theme/v3/buildTheme_v3.ts +20 -11
- package/src/theme/v3/color/_constants.ts +15 -0
- package/src/theme/v3/color/avatar.ts +14 -0
- package/src/theme/v3/color/card.ts +58 -95
- package/src/theme/v3/color/color.ts +75 -71
- package/src/theme/v3/color/element.ts +8 -8
- package/src/theme/v3/color/index.ts +2 -2
- package/src/theme/v3/color/token.ts +19 -4
- package/src/theme/v3/color/tokens.ts +2 -2
- package/src/theme/v3/defaultFonts.ts +250 -0
- package/src/theme/v3/defaultTokens.ts +199 -0
- package/src/theme/v3/index.ts +4 -1
- package/src/theme/{palette → v3/palette}/constants.ts +3 -3
- package/src/theme/v3/palette/types.ts +7 -0
- package/src/theme/v3/resolveTokens.ts +70 -65
- package/src/theme/v3/tokens.ts +2 -2
- package/src/theme/v3/types.ts +97 -12
- package/src/theme/versioning/getTheme_v2.ts +3 -3
- package/src/theme/versioning/is_v0.ts +2 -2
- package/src/theme/versioning/is_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
- package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
- package/src/theme/versioning/v0_v2.ts +3 -3
- package/src/theme/versioning/v2_v0.ts +4 -4
- package/src/theme/versioning/v3_v2.ts +62 -40
- package/dist/_chunks-cjs/_visual-editing.js +0 -3059
- 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.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 -3066
- package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
- 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 -806
- 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 -2135
- package/dist/css.mjs +0 -4713
- package/dist/css.mjs.map +0 -1
- package/dist/index.mjs +0 -1542
- package/dist/index.mjs.map +0 -1
- package/dist/sanity-palette.css +0 -9
- package/dist/sanity-theme.css +0 -1
- package/dist/system.css +0 -3577
- package/dist/theme.mjs.map +0 -1
- package/src/core/StyleTags.tsx +0 -24
- package/src/core/primitives/popover/popoverCard.tsx +0 -148
- package/src/core/primitives/tooltip/tooltipCard.tsx +0 -115
- package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
- package/src/core/utils/conditionalWrapper/index.ts +0 -1
- package/src/css/_resp.ts +0 -31
- package/src/css/compile/compilePalette.ts +0 -60
- package/src/css/compile/compileRule.ts +0 -90
- package/src/css/compile/compileRules.test.ts +0 -35
- package/src/css/compile/compileRules.ts +0 -40
- package/src/css/compile/compileSystem.ts +0 -7
- package/src/css/compile/compileTheme.ts +0 -15
- package/src/css/compile/compileTheme_v3.ts +0 -410
- package/src/css/compile/types.ts +0 -6
- package/src/css/components/breadcrumbs/rules.ts +0 -25
- package/src/css/components/dialog/rules.ts +0 -76
- package/src/css/components/menu/rules.ts +0 -15
- package/src/css/components/skeleton/rules.ts +0 -112
- package/src/css/components/toast/rules.ts +0 -17
- package/src/css/components/tree/rules.ts +0 -168
- package/src/css/composeClassNames.ts +0 -13
- package/src/css/primitives/_arrow/rules.ts +0 -71
- package/src/css/primitives/_input/rules.ts +0 -163
- package/src/css/primitives/_selectable/__style.ts +0 -117
- package/src/css/primitives/_selectable/_contants.ts +0 -11
- package/src/css/primitives/_selectable/rules.ts +0 -129
- package/src/css/primitives/avatar/rules.ts +0 -176
- package/src/css/primitives/badge/rules.ts +0 -22
- package/src/css/primitives/box/rules.ts +0 -28
- package/src/css/primitives/button/_constants.ts +0 -17
- package/src/css/primitives/button/rules.ts +0 -293
- package/src/css/primitives/card/_constants.ts +0 -13
- package/src/css/primitives/card/rules.ts +0 -471
- package/src/css/primitives/checkbox/__styles.ts +0 -129
- package/src/css/primitives/checkbox/rules.ts +0 -152
- package/src/css/primitives/code/rules.ts +0 -96
- package/src/css/primitives/container/rules.ts +0 -8
- package/src/css/primitives/heading/rules.ts +0 -155
- package/src/css/primitives/kbd/rules.ts +0 -20
- package/src/css/primitives/label/rules.ts +0 -137
- package/src/css/primitives/popover/rules.ts +0 -5
- package/src/css/primitives/radio/rules.ts +0 -121
- package/src/css/primitives/select/rules.ts +0 -22
- package/src/css/primitives/spinner/rules.ts +0 -20
- package/src/css/primitives/switch/rules.ts +0 -340
- package/src/css/primitives/text/rules.ts +0 -164
- package/src/css/primitives/textArea/rules.ts +0 -7
- package/src/css/primitives/textInput/rules.ts +0 -224
- package/src/css/primitives/token/rules.ts +0 -45
- package/src/css/primitives/tooltip/rules.ts +0 -19
- package/src/css/responsiveRules.ts +0 -25
- package/src/css/rules.ts +0 -113
- package/src/css/styles/border/border.ts +0 -22
- package/src/css/styles/border/rules.ts +0 -24
- package/src/css/styles/border/types.ts +0 -10
- package/src/css/styles/display/display.ts +0 -7
- package/src/css/styles/display/rules.ts +0 -62
- package/src/css/styles/flex/flex.ts +0 -20
- package/src/css/styles/flex/rules.ts +0 -28
- package/src/css/styles/flex/types.ts +0 -35
- package/src/css/styles/flexItem/flexItem.ts +0 -8
- package/src/css/styles/flexItem/index.ts +0 -2
- package/src/css/styles/flexItem/rules.ts +0 -12
- package/src/css/styles/flexItem/types.ts +0 -11
- package/src/css/styles/font/font.ts +0 -17
- package/src/css/styles/font/rules.ts +0 -148
- package/src/css/styles/font/types.ts +0 -12
- package/src/css/styles/gap/gap.ts +0 -8
- package/src/css/styles/gap/rules.ts +0 -34
- package/src/css/styles/grid/grid.ts +0 -13
- package/src/css/styles/grid/index.ts +0 -2
- package/src/css/styles/grid/rules.ts +0 -146
- package/src/css/styles/grid/types.ts +0 -29
- package/src/css/styles/gridItem/gridItem.ts +0 -15
- package/src/css/styles/gridItem/index.ts +0 -2
- package/src/css/styles/gridItem/rules.ts +0 -96
- package/src/css/styles/gridItem/types.ts +0 -41
- package/src/css/styles/height/rules.ts +0 -7
- package/src/css/styles/index.ts +0 -19
- package/src/css/styles/inset/inset.ts +0 -13
- package/src/css/styles/inset/rules.ts +0 -16
- package/src/css/styles/margin/margin.ts +0 -15
- package/src/css/styles/margin/rules.ts +0 -64
- package/src/css/styles/margin/types.ts +0 -11
- package/src/css/styles/maxWidth/maxWidth.ts +0 -6
- package/src/css/styles/maxWidth/rules.ts +0 -13
- package/src/css/styles/maxWidth/types.ts +0 -7
- package/src/css/styles/outline/rules.ts +0 -7
- package/src/css/styles/overflow/overflow.ts +0 -11
- package/src/css/styles/overflow/rules.ts +0 -9
- package/src/css/styles/overflow/types.ts +0 -11
- package/src/css/styles/padding/padding.ts +0 -15
- package/src/css/styles/padding/rules.ts +0 -62
- package/src/css/styles/padding/types.ts +0 -14
- package/src/css/styles/pointerEvents/pointerEvents.ts +0 -6
- package/src/css/styles/pointerEvents/rules.ts +0 -11
- package/src/css/styles/position/position.ts +0 -7
- package/src/css/styles/position/rules.ts +0 -24
- package/src/css/styles/radius/radius.ts +0 -8
- package/src/css/styles/radius/rules.ts +0 -13
- package/src/css/styles/radius/types.ts +0 -8
- package/src/css/styles/shadow/rules.ts +0 -53
- package/src/css/styles/shadow/shadow.ts +0 -7
- package/src/css/styles/shadow/types.ts +0 -8
- package/src/css/styles/textOverflow/rules.ts +0 -17
- package/src/css/styles/textOverflow/textOverflow.ts +0 -6
- package/src/css/styles/width/rules.ts +0 -7
- package/src/css/styles/width/types.ts +0 -9
- package/src/css/styles/width/width.ts +0 -6
- package/src/css/utils/srOnly/rules.ts +0 -11
- package/src/css/varNames.ts +0 -473
- package/src/css/vars.ts +0 -443
- package/src/theme/_types.ts +0 -41
- package/src/theme/build/buildTheme.ts +0 -12
- package/src/theme/build/theme.test.ts +0 -27
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/palette/types.ts +0 -16
- package/src/theme/v3/buildTheme_v3.test.ts +0 -40
- package/src/theme/v3/color/buildColor_v3.ts +0 -193
- package/src/theme/v3/color/parseColor.test.ts +0 -79
- package/src/theme/v3/color/renderColor.test.ts +0 -19
- package/src/theme/v3/color/renderColor.ts +0 -33
- package/src/theme/v3/defaults.ts +0 -205
- /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/apiStore.ts +0 -0
- /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/countries.ts +0 -0
- /package/src/css/{styles → props}/border/index.ts +0 -0
- /package/src/css/{styles → props}/display/index.ts +0 -0
- /package/src/css/{styles → props}/flex/index.ts +0 -0
- /package/src/css/{styles → props}/font/index.ts +0 -0
- /package/src/css/{styles → props}/gap/index.ts +0 -0
- /package/src/css/{styles → props}/inset/index.ts +0 -0
- /package/src/css/{styles → props}/margin/index.ts +0 -0
- /package/src/css/{styles → props}/maxWidth/index.ts +0 -0
- /package/src/css/{styles → props}/overflow/index.ts +0 -0
- /package/src/css/{styles → props}/padding/index.ts +0 -0
- /package/src/css/{styles → props}/pointerEvents/index.ts +0 -0
- /package/src/css/{styles → props}/pointerEvents/types.ts +0 -0
- /package/src/css/{styles → props}/position/index.ts +0 -0
- /package/src/css/{styles → props}/radius/index.ts +0 -0
- /package/src/css/{styles → props}/shadow/index.ts +0 -0
- /package/src/css/{styles → props}/textOverflow/index.ts +0 -0
- /package/src/css/{styles → props}/width/index.ts +0 -0
- /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
- /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
- /package/src/theme/{build → v2/build}/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
- /package/src/theme/{build → v2/build}/merge.ts +0 -0
- /package/src/theme/{config → v2/config}/index.ts +0 -0
- /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
- /package/src/theme/{palette → v3/palette}/index.ts +0 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/core/_compat/styles/_responsive.ts","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/StyleTags.tsx"],"sourcesContent":["import {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {ForwardedRef, MutableRefObject, useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, ErrorInfo, PropsWithChildren, ReactNode} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {KeyboardEvent, ReactElement, ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport {Props, Radius} from '../../types'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n disabled?: boolean\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: ResponsiveProp<Space>\n // padding?: number | number[]\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n readOnly?: boolean\n ref?: ForwardedRef<HTMLInputElement>\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: Omit<\n Props<AutocompleteProps<Option>, 'div'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 1,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card\n as=\"button\"\n // data-as=\"button\"\n padding={paddingProp}\n radius={2}\n tone=\"inherit\"\n >\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return (v as Space) - 2\n }) as Space[],\n [padding],\n )\n\n const openButtonPadding = useMemo(\n () => padding.map((v) => Math.max((v as Space) - 1, 0)) as Space[],\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n display=\"block\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n})\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: Omit<\n Props<AutocompleteProps<Option>, 'input'>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'inputMode'\n | 'role'\n | 'spellCheck'\n | 'type'\n >,\n) => ReactElement\n","import {breadcrumbs, composeClassNames, GapStyleProps} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n Children,\n ForwardedRef,\n forwardRef,\n Fragment,\n isValidElement,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps extends GapStyleProps {\n expandButton?: Omit<ButtonProps, 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: Props<BreadcrumbsProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...restProps\n } = props\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" space={gapY}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as=\"nav\"\n data-ui=\"Breadcrumbs\"\n {...restProps}\n className={composeClassNames(className, breadcrumbs())}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n})\n\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n composeClassNames,\n ContainerStyleProps,\n dialog,\n dialogCardRoot,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayout,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n ShadowStyleProps,\n} from '@sanity/ui/css'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {CardTone, DialogPosition, Props, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ContainerStyleProps, PaddingStyleProps, ShadowStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n open?: boolean\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n}\n\ninterface DialogCardProps extends ContainerStyleProps, RadiusStyleProps, ShadowStyleProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n // radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n // shadow: number | number[]\n tone?: CardTone\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp = 4,\n tone,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <Container\n align=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n direction=\"column\"\n display=\"flex\"\n justify=\"center\"\n width={width}\n >\n <Card\n className={dialogCardRoot()}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n >\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: Props<DialogProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const context = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n // cardShadow = 3,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n shadow: cardShadow,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n tone,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (context.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (context.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n {...restProps}\n aria-labelledby={labelId}\n aria-modal\n className={composeClassNames(className, dialog())}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n tone={tone}\n width={width}\n >\n {children}\n </DialogCard>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n})\n\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ButtonProps, Popover, PopoverProps} from '../../primitives'\nimport {Placement, Props, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: ReactElement<Props<ButtonProps, 'button'>>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n } satisfies Props<ButtonProps, 'button'> & {ref: ForwardedRef<HTMLButtonElement>}\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {composeClassNames, skeleton, SkeletonStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useState} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends SkeletonStyleProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: Props<SkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {animated = false, className, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...restProps}\n className={composeClassNames(className, skeleton({radius}))}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n ref={ref}\n />\n )\n})\n\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {\n codeSkeleton,\n composeClassNames,\n headingSkeleton,\n labelSkeleton,\n ResponsiveProp,\n textSkeleton,\n} from '@sanity/ui/css'\nimport {FontCodeSize, FontHeadingSize, FontLabelSize, FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: Props<TextSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"TextSkeleton\"\n {...restProps}\n className={composeClassNames(className, textSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: Props<LabelSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n data-ui=\"LabelSkeleton\"\n {...restProps}\n className={composeClassNames(className, labelSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: Props<HeadingSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n {...restProps}\n className={composeClassNames(className, headingSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: Props<CodeSkeletonProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, size = 2, ...restProps} = props\n\n return (\n <Skeleton\n // root\n {...restProps}\n className={composeClassNames(className, codeSkeleton({size}))}\n ref={ref}\n />\n )\n})\n\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: Props<TabPanelProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n RadiusStyleProps,\n toast,\n toastLoadingBar,\n toastLoadingBarMask,\n toastLoadingBarProgress,\n} from '@sanity/ui/css'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps extends RadiusStyleProps {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: Omit<\n Props<ToastProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n): ReactElement {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as=\"li\"\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n width=\"fill\"\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionBox className={toastLoadingBar()} variants={content} transition={transition}>\n <Card className={toastLoadingBarMask()} tone={cardTone} radius={radius} />\n <MotionCard\n // const MotionToast = motion.create(Card) // StyledToast\n // const MotionFlex = motion.create(Flex)\n // const MotionText = motion.create(Text)\n // const MotionLoadingBar = motion.create(Box) // LoadingBar\n // const MotionLoadingBarProgress = motion.create(Card)\n\n className={toastLoadingBarProgress()}\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionBox>\n )}\n </MotionCard>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionBox = motion.create(Box)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {GapStyleProps, PaddingStyleProps, toastLayer} from '@sanity/ui/css'\nimport {ReactNode} from 'react'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps extends GapStyleProps, PaddingStyleProps {\n children: ReactNode\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as=\"ul\"\n className={toastLayer()}\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): 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('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n memo,\n ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps extends Pick<GapStyleProps, 'gap'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: Props<TreeProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n const {children, gap, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo, ReactElement} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {composeClassNames, ResponsiveProp, treeItem} from '@sanity/ui/css'\nimport {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n ElementType,\n KeyboardEvent,\n memo,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, CardProps, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps extends CardProps {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: Omit<Props<TreeItemProps, 'div'>, 'as'>,\n): ReactElement {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLDivElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n as=\"li\"\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n className={composeClassNames(className, treeItem())}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n style={{\n paddingLeft: `calc(var(--space-2) * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n})\n\nTreeItem.displayName = 'Memo(TreeItem)'\n","import {compilePalette, compileSystem, compileTheme} from '@sanity/ui/css'\nimport {buildTheme_v3, RootTheme, Theme_v3} from '@sanity/ui/theme'\nimport {ReactNode} from 'react'\n\n/* @beta */\nexport function StyleTags(props: {theme?: Theme_v3}): ReactNode {\n const {theme: themeProp} = props\n\n const theme = themeProp ?? buildTheme_v3()\n\n return (\n <>\n <style href=\"sanity-palette\" precedence=\"palette\">\n {compilePalette(theme._palette)}\n </style>\n <style href=\"sanity-theme\" precedence=\"theme\">\n {compileTheme({v3: theme} as RootTheme)}\n </style>\n <style href=\"sanity-system\" precedence=\"system\">\n {compileSystem()}\n </style>\n </>\n )\n}\n"],"names":["_responsive","media","values","callback","map","statement","mediaIndex","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","jsx","Code","children","AutocompleteOption","id","onSelect","selected","value","setTimeout","handleClick","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","InnerAutocomplete","forwardRef","forwardedRef","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","restProps","dispatch","useReducer","defaultRenderOption","useCallback","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","Box","Button","ChevronDownIcon","inputValue","input","TextInput","AnimatedSpinnerIcon","handleListBoxKeyDown","content","Stack","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Popover","jsxs","displayName","Autocomplete","Breadcrumbs","className","expandButton","expandButtonProps","gap","_gapProp","gapX","space","gapY","maxLength","separator","_spaceProp","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","Flex","composeClassNames","breadcrumbs","item","itemIndex","Fragment","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","tone","width","widthProp","shadowProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","t6","event_0","target_0","t7","t8","dialogContainer","t9","dialogCardRoot","t10","dialogLayout","t11","dialogHeader","CloseIcon","t12","dialogContent","t13","t14","dialogFooter","t15","t16","t17","Container","Dialog","context","useTheme_v2","_positionProp","_zOffsetProp","cardShadow","onActivate","animate","cardRadius","position","zOffset","_animate","cardRadiusProp","positionProp","zOffsetProp","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","Layer","Portal","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","t18","bb0","t19","t20","t21","t22","t23","overflow","popoverProps","t24","t25","Skeleton","delay","animated","visible","setVisible","timeout","skeleton","TextSkeleton","size","textSkeleton","LabelSkeleton","labelSkeleton","HeadingSkeleton","headingSkeleton","CodeSkeleton","codeSkeleton","TabPanel","flex","ROLES","warning","success","STATUS_CARD_TONE","BUTTON_TONE","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","toast","verticalAlign","toastLoadingBar","toastLoadingBarMask","toastLoadingBarProgress","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionCard","motion","create","MotionFlex","MotionText","MotionBox","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","ToastLayer","paddingX","paddingY","toastLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","dismiss","currentState","toast_0","toast_1","Date","now","LayerProvider","AnimatePresence","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","memo","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","useTree","tree","TreeGroup","TreeItem","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform","treeItem","Selectable","paddingLeft","StyleTags","theme","themeProp","buildTheme_v3","_palette","compilePalette","compileTheme","v3","compileSystem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/core/_compat/helpers.ts","../src/core/_compat/styles/_responsive.ts","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/container/container.tsx","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/inline.tsx","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/select.tsx","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/isTargetWithinScope.ts","../src/core/components/dialog/dialogCard.tsx","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/codeSkeleton.tsx","../src/core/components/skeleton/headingSkeleton.tsx","../src/core/components/skeleton/labelSkeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["import {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\nexport {\n /** @deprecated use `px` from `@sanity/ui/css` */\n px,\n /** @deprecated use `rem` from `@sanity/ui/css` */\n rem,\n} from '@sanity/ui/css'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n","import type {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useState} from 'react'\n\nimport {_getArrayProp} from '../helpers'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n * @deprecated Use `useResponsiveProp` instead.\n */\nexport function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n 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([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {type ForwardedRef, type MutableRefObject, useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {\n label,\n type LabelStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_LABEL_ELEMENT = 'div'\n\n/** @public */\nexport type LabelOwnProps = LabelStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type LabelElementType =\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 LabelProps<E extends LabelElementType = LabelElementType> = Props<LabelOwnProps, E>\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport function Label<E extends LabelElementType = typeof DEFAULT_LABEL_ELEMENT>(\n props: LabelProps<E>,\n) {\n const {\n accent,\n align,\n as: Element = DEFAULT_LABEL_ELEMENT,\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props\n\n return (\n <Element\n data-ui=\"Label\"\n {...rest}\n className={label({\n className,\n accent,\n align,\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 {\n avatar,\n avatarArrow,\n avatarImage,\n avatarImageOutline,\n avatarInitials,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {AvatarColor, FontLabelSize} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {useResponsiveProp} from '../../hooks'\nimport type {AvatarPosition, AvatarSize, AvatarStatus, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/** @public */\nexport const DEFAULT_AVATAR_ELEMENT = 'span'\n\n/** @public */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: AvatarColor\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: ResponsiveProp<AvatarSize>\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @deprecated Will be removed in next major version.\n */\n status?: AvatarStatus\n title?: string\n}\n\n/** @public */\nexport type AvatarElementType = 'a' | 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarProps<E extends AvatarElementType = AvatarElementType> = Props<AvatarOwnProps, E>\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEMENT>(\n props: AvatarProps<E>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: Element = DEFAULT_AVATAR_ELEMENT,\n className,\n color = 'magenta',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n status = 'online',\n size: sizeProp = 1,\n ...rest\n } = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>\n\n const size = useResponsiveProp(sizeProp)\n\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageError, setImageError] = useState<boolean>(false)\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageError(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageError(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n Object.values(size).map((s) => {\n if (s === 1) return 1 satisfies FontLabelSize\n if (s === 2) return 3 satisfies FontLabelSize\n if (s === 3) return 5 satisfies FontLabelSize\n\n return 0 satisfies FontLabelSize\n }) as ResponsiveProp<FontLabelSize>,\n [size],\n )\n\n return (\n <Element\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...rest}\n aria-label={title}\n className={avatar({className, color, size: sizeProp})}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n title={title}\n >\n <span className={avatarArrow()}>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </span>\n\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={avatarInitials()}\n display=\"flex\"\n justifyContent=\"center\"\n position=\"absolute\"\n inset={0}\n >\n <Label align=\"center\" as=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </Label>\n </Box>\n\n {src && (\n <Box className={avatarImage()} inset={0} position=\"absolute\">\n <img alt={initials} onError={handleImageError} src={src} />\n <span className={avatarImageOutline()} />\n </Box>\n )}\n </Element>\n )\n}\n","import {avatarCounter, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize, FontLabelSize} from '@sanity/ui/theme'\nimport {useMemo} from 'react'\n\nimport {useResponsiveProp} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/** @public */\nexport const DEFAULT_AVATAR_COUNTER_ELEMENT = 'div'\n\n/** @public */\nexport interface AvatarCounterOwnProps {\n count: number\n size?: ResponsiveProp<AvatarSize>\n}\n\n/** @public */\nexport type AvatarCounterElementType = 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarCounterProps<E extends AvatarCounterElementType = AvatarCounterElementType> =\n Props<AvatarCounterOwnProps, E>\n\n/** @public */\nexport function AvatarCounter<\n E extends AvatarCounterElementType = typeof DEFAULT_AVATAR_COUNTER_ELEMENT,\n>(props: AvatarCounterProps<E>) {\n const {\n as = DEFAULT_AVATAR_COUNTER_ELEMENT,\n className,\n count,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarCounterProps<typeof DEFAULT_AVATAR_COUNTER_ELEMENT>\n const size = useResponsiveProp(sizeProp)\n\n const labelSize = useMemo(\n () =>\n Object.values(size).map((s) => {\n if (s === 1) return 1 satisfies FontLabelSize\n if (s === 2) return 3 satisfies FontLabelSize\n if (s === 3) return 5 satisfies FontLabelSize\n\n return 0 satisfies FontLabelSize\n }) as ResponsiveProp<FontLabelSize>,\n [size],\n )\n\n return (\n <Box\n data-ui=\"AvatarCounter\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatarCounter({className, size})}\n display=\"flex\"\n flex=\"none\"\n justifyContent=\"center\"\n paddingX={2}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={labelSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n}\n","import {avatarStack, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, Fragment, isValidElement, type ReactElement} from 'react'\n\nimport {useResponsiveProp} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box, type BoxOwnProps} from '../box'\nimport type {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/** @public */\nexport const DEFAULT_AVATAR_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type AvatarStackChild = ReactElement<AvatarProps<'div'>> | null | undefined | false\n\n/** @public */\nexport type AvatarStackOwnProps = Omit<\n BoxOwnProps,\n 'align' | 'alignItems' | 'display' | 'justify' | 'justifyContent'\n> & {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/** @public */\nexport type AvatarStackElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarStackProps<E extends AvatarStackElementType = AvatarStackElementType> = Props<\n AvatarStackOwnProps,\n E\n>\n\n/** @public */\nexport function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AVATAR_STACK_ELEMENT>(\n props: AvatarStackProps<E>,\n) {\n const {\n as = DEFAULT_AVATAR_STACK_ELEMENT,\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarStackProps<typeof DEFAULT_AVATAR_STACK_ELEMENT>\n\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n AvatarProps<'div'>\n >[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useResponsiveProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Box\n data-ui=\"AvatarStack\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatarStack({className, size})}\n display=\"flex\"\n justifyContent=\"flex-start\"\n >\n {len === 0 && <AvatarCounter count={len} size={size} />}\n\n {len !== 0 && extraCount > 1 && <AvatarCounter count={extraCount} size={size} />}\n\n {visibleChildren.map((child, childIndex) => (\n <Fragment key={String(childIndex)}>{cloneElement(child, {size})}</Fragment>\n ))}\n </Box>\n )\n}\n","import type {PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {badge} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {BadgeTone, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_BADGE_ELEMENT = 'span'\n\n/** @public */\nexport type BadgeOwnProps = PaddingStyleProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n tone?: BadgeTone\n }\n\n/** @public */\nexport type BadgeElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type BadgeProps<E extends BadgeElementType = BadgeElementType> = Props<BadgeOwnProps, E>\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport function Badge<E extends BadgeElementType = typeof DEFAULT_BADGE_ELEMENT>(\n props: BadgeProps<E>,\n) {\n const {\n as = DEFAULT_BADGE_ELEMENT,\n children,\n className,\n fontSize = 1,\n padding = 1,\n radius = 2,\n tone = 'default',\n ...rest\n } = props as BadgeProps<typeof DEFAULT_BADGE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Badge\"\n {...rest}\n as={as}\n className={badge({className, tone})}\n display=\"inline-flex\"\n maxWidth=\"fill\"\n padding={padding}\n radius={radius}\n >\n <Text size={fontSize}>{children}</Text>\n </Box>\n )\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkboxInput, checkboxPresentation} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_CHECKBOX_ELEMENT = 'input'\n\n/** @public */\nexport type CheckboxOwnProps = {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/** @public */\nexport type CheckboxElementType = 'input' | ComponentType\n\n/** @public */\nexport type CheckboxProps<E extends CheckboxElementType = CheckboxElementType> = Props<\n CheckboxOwnProps,\n E\n>\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox<E extends CheckboxElementType = typeof DEFAULT_CHECKBOX_ELEMENT>(\n props: CheckboxProps<E>,\n) {\n const {\n as: Element = DEFAULT_CHECKBOX_ELEMENT,\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as CheckboxProps<typeof DEFAULT_CHECKBOX_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={checkbox({className})} data-ui=\"Checkbox\" style={style}>\n <Element\n {...rest}\n checked={checked}\n className={checkboxInput()}\n data-invalid={customValidity ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span className={checkboxPresentation()}>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </span>\n )\n}\n","import {container, type ContainerStyleProps} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_CONTAINER_ELEMENT = 'div'\n\n/** @public */\nexport type ContainerOwnProps = Omit<BoxOwnProps, 'width'> & ContainerStyleProps\n\n/** @public */\nexport type ContainerElementType = BoxElementType\n\n/** @public */\nexport type ContainerProps<E extends ContainerElementType = ContainerElementType> = Props<\n ContainerOwnProps,\n E\n>\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport function Container<E extends ContainerElementType = typeof DEFAULT_CONTAINER_ELEMENT>(\n props: ContainerProps<E>,\n) {\n const {\n as = DEFAULT_CONTAINER_ELEMENT,\n className,\n width = 2,\n ...rest\n } = props as ContainerProps<typeof DEFAULT_CONTAINER_ELEMENT>\n\n return <Box data-ui=\"Container\" {...rest} as={as} className={container({className, width})} />\n}\n","import {\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_HEADING_ELEMENT = 'div'\n\n/** @public */\nexport type HeadingOwnProps = HeadingStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type HeadingElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type HeadingProps<E extends HeadingElementType = HeadingElementType> = Props<\n HeadingOwnProps,\n E\n>\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport function Heading<E extends HeadingElementType = typeof DEFAULT_HEADING_ELEMENT>(\n props: HeadingProps<E>,\n) {\n const {\n accent = false,\n align,\n as: Element = DEFAULT_HEADING_ELEMENT,\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as HeadingProps<typeof DEFAULT_HEADING_ELEMENT>\n\n return (\n <Element\n data-ui=\"Heading\"\n {...rest}\n className={heading({\n className,\n accent,\n align,\n flex,\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 type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_INLINE_ELEMENT = 'div'\n\n/** @public */\nexport type InlineOwnProps = Omit<\n BoxOwnProps,\n | 'alignItems'\n | 'flexDirection'\n | 'flexWrap'\n | 'justifyContent'\n | 'gridAutoColumns'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridColumnEnd'\n | 'gridColumnStart'\n | 'gridColumn'\n | 'gridRowEnd'\n | 'gridRowStart'\n | 'gridRow'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n // todo: omit deprecated flex and grid props\n> & {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type InlineElementType = BoxElementType\n\n/** @public */\nexport type InlineProps<E extends InlineElementType = InlineElementType> = Props<InlineOwnProps, E>\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport function Inline<E extends InlineElementType = typeof DEFAULT_INLINE_ELEMENT>(\n props: InlineProps<E>,\n) {\n const {\n as = DEFAULT_INLINE_ELEMENT,\n children,\n gap,\n space,\n ...rest\n } = props as InlineProps<typeof DEFAULT_INLINE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Inline\"\n {...rest}\n alignItems=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n flexWrap=\"wrap\"\n >\n {children}\n </Box>\n )\n}\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\n/** @public */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/** @public */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","import {Component, type ErrorInfo, type PropsWithChildren, type ReactNode} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n override state: ErrorBoundaryState = {error: null}\n\n static displayName = 'ErrorBoundary'\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n override componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n override render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {srOnly} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_SR_ONLY_ELEMENT = 'span'\n\n/** @public */\nexport type SrOnlyOwnProps = {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/** @public */\nexport type SrOnlyElementType = 'span' | ComponentType\n\n/** @public */\nexport type SrOnlyProps<E extends SrOnlyElementType = SrOnlyElementType> = Props<SrOnlyOwnProps, E>\n\n/** @public */\nexport function SrOnly<E extends SrOnlyElementType = typeof DEFAULT_SR_ONLY_ELEMENT>(\n props: SrOnlyProps<E>,\n) {\n const {\n as: Element = DEFAULT_SR_ONLY_ELEMENT,\n children,\n className,\n ...rest\n } = props as SrOnlyProps<typeof DEFAULT_SR_ONLY_ELEMENT>\n\n return (\n <Element data-ui=\"SrOnly\" {...rest} aria-hidden className={srOnly({className})}>\n {children}\n </Element>\n )\n}\n","import {vars} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type CSSProperties,\n type ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {Box} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_VIRTUAL_LIST_ELEMENT = 'div'\n\n/** @beta */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/** @beta */\nexport type VirtualListOwnProps<Item = any> = {\n gap?: Space\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/** @beta */\nexport type VirtualListElementType = 'div' | ComponentType\n\n/** @beta */\nexport type VirtualListProps<E extends VirtualListElementType = VirtualListElementType> = Props<\n VirtualListOwnProps,\n E\n>\n\n/** @beta */\nexport function VirtualList<E extends VirtualListElementType = typeof DEFAULT_VIRTUAL_LIST_ELEMENT>(\n props: VirtualListProps<E>,\n) {\n const {\n as = DEFAULT_VIRTUAL_LIST_ELEMENT,\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n renderItem,\n ref: forwardedRef,\n ...rest\n } = props as VirtualListProps<typeof DEFAULT_VIRTUAL_LIST_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n const [gapValue, setGapValue] = useState(0)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + gapValue) - gapValue : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n onChange?.({\n fromIndex,\n gap: gapValue,\n itemHeight,\n scrollHeight,\n scrollTop,\n toIndex,\n })\n }, [fromIndex, gapValue, itemHeight, onChange, scrollHeight, scrollTop, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <>\n <Box\n ref={(el) => (el ? setItemHeight(el.offsetHeight) : undefined)}\n insetTop={0}\n insetLeft={0}\n insetRight={0}\n key={0}\n position=\"absolute\"\n >\n {renderItem(items[0])}\n </Box>\n <div\n ref={(el) => (el ? setGapValue(el.offsetHeight) : undefined)}\n style={{height: vars.space[gap]}}\n />\n </>,\n ]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <Box\n insetLeft={0}\n insetRight={0}\n key={key}\n position=\"absolute\"\n style={{top: itemIndex * (itemHeight + gapValue) - gapValue}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, gapValue, getItemKey, itemHeight, items, renderItem, toIndex])\n\n const wrapperStyle: CSSProperties = useMemo(() => ({height}), [height])\n\n return (\n <Box data-ui=\"VirtualList\" {...rest} as={as} position=\"relative\" ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\n )\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","import {radio, radioInput, radioPresentation} from '@sanity/ui/css'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_RADIO_ELEMENT = 'input'\n\n/** @public */\nexport type RadioOwnProps = {\n customValidity?: string\n}\n\n/** @public */\nexport type RadioElementType = 'input' | ComponentType\n\n/** @public */\nexport type RadioProps<E extends RadioElementType = RadioElementType> = Props<RadioOwnProps, E>\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio<E extends RadioElementType = typeof DEFAULT_RADIO_ELEMENT>(\n props: RadioProps<E>,\n) {\n const {\n as: Element = DEFAULT_RADIO_ELEMENT,\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...rest\n } = props as RadioProps<typeof DEFAULT_RADIO_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={radio({className})} data-ui=\"Radio\" style={style}>\n <Element\n {...rest}\n className={radioInput()}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span className={radioPresentation()} />\n </div>\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n type ResponsiveProp,\n select,\n selectPresentation,\n type SelectStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_SELECT_ELEMENT = 'select'\n\n/** @public */\nexport type SelectOwnProps = SelectStyleProps & {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type SelectElementType = 'select' | ComponentType\n\n/** @public */\nexport type SelectProps<E extends SelectElementType = SelectElementType> = Props<SelectOwnProps, E>\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEMENT>(\n props: SelectProps<E>,\n) {\n const {\n as: Element = DEFAULT_SELECT_ELEMENT,\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 1,\n readOnly,\n ref: forwardedRef,\n space = 2,\n ...rest\n } = props as SelectProps<typeof DEFAULT_SELECT_ELEMENT>\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div\n data-ui=\"Select\"\n className={select({border, fontSize, padding, radius, gap: gap ?? space})}\n data-icon-right=\"\"\n >\n <Element {...rest} className={_inputElement()} disabled={disabled || readOnly} ref={ref}>\n {children}\n </Element>\n <span className={selectPresentation()}>\n <Box as=\"span\" display=\"inline-block\" padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </Box>\n </span>\n </div>\n )\n}\n","import {\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\n\n/** @public */\nexport const DEFAULT_SWITCH_ELEMENT = 'input'\n\n/** @public */\nexport type SwitchOwnProps = {\n indeterminate?: boolean\n}\n\n/** @public */\nexport type SwitchElementType = 'input' | ComponentType\n\n/** @public */\nexport type SwitchProps<E extends SwitchElementType = SwitchElementType> = Props<SwitchOwnProps, E>\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport function Switch<E extends SwitchElementType = typeof DEFAULT_SWITCH_ELEMENT>(\n props: SwitchProps<E>,\n) {\n const {\n as: Element = DEFAULT_SWITCH_ELEMENT,\n checked,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as SwitchProps<typeof DEFAULT_SWITCH_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <Box\n className={_switch({className})}\n data-checked={checked ? '' : undefined}\n data-indeterminate={indeterminate ? '' : undefined}\n data-ui=\"Switch\"\n display=\"inline-block\"\n position=\"relative\"\n style={style}\n >\n <Element\n {...rest}\n checked={indeterminate !== true && checked}\n className={_switchElement()}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <span aria-hidden className={_switchPresentation()}>\n <span className={_switchTrack()} />\n <span className={_switchThumb()} />\n </span>\n </Box>\n )\n}\n","import {\n _inputElement,\n _inputPresentation,\n type ResponsiveProp,\n textArea,\n type TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TEXT_AREA_ELEMENT = 'textarea'\n\n/** @public */\nexport type TextAreaOwnProps = TextAreaStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type TextAreaElementType = 'textarea' | ComponentType\n\n/** @public */\nexport type TextAreaProps<E extends TextAreaElementType = TextAreaElementType> = Props<\n TextAreaOwnProps,\n E\n>\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport function TextArea<E extends TextAreaElementType = typeof DEFAULT_TEXT_AREA_ELEMENT>(\n props: TextAreaProps<E>,\n) {\n const {\n // TODO: fix this\n\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_AREA_ELEMENT,\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n space = 3,\n ...rest\n } = props as TextAreaProps<typeof DEFAULT_TEXT_AREA_ELEMENT>\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={textArea({\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n })}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"TextArea\"\n >\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 />\n <span className={_inputPresentation()} />\n </span>\n )\n}\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport type {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\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 */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","import {type KeyboardEvent, type ReactElement, type ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import type {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import type {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type ChangeEvent,\n cloneElement,\n type ElementType,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useResponsiveProp} from '../../hooks'\nimport {\n Box,\n type BoxProps,\n Button,\n Card,\n Popover,\n type PopoverProps,\n Stack,\n Text,\n TextInput,\n type TextInputOwnProps,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport type {ComponentType, Props, Radius} from '../../types'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport type {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/** @public */\nexport const DEFAULT_AUTOCOMPLETE_ELEMENT = 'input'\n\n/** @public */\nexport type AutocompleteOwnProps<O extends BaseAutocompleteOption = BaseAutocompleteOption> =\n TextInputOwnProps & {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: O) => boolean\n icon?: ElementType | ReactNode\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: O[]\n padding?: ResponsiveProp<Space>\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: O) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: O) => string\n suffix?: ReactNode\n value?: string\n }\n\n/** @public */\nexport type AutocompleteElementType = 'input' | ComponentType\n\n/** @public */\nexport type AutocompleteProps<\n E extends AutocompleteElementType = AutocompleteElementType,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n> = Props<AutocompleteOwnProps<O>, E>\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<\n E extends AutocompleteElementType = typeof DEFAULT_AUTOCOMPLETE_ELEMENT,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n>(props: AutocompleteProps<E, O>) {\n const {\n as = DEFAULT_AUTOCOMPLETE_ELEMENT,\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...rest\n } = props as AutocompleteProps<typeof DEFAULT_AUTOCOMPLETE_ELEMENT, O>\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useResponsiveProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(() => {\n const result = Object.fromEntries(\n Object.entries(padding).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, (value as Space) - 2]\n }),\n ) as ResponsiveProp<Space>\n\n return result\n }, [padding])\n\n const openButtonPadding = useMemo(\n () => Object.values(padding).map((v) => Math.max((v as Space) - 1, 0)) as ResponsiveProp<Space>,\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n display=\"block\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...rest}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n as={as}\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n gap={1}\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={3}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n}\n","import {breadcrumbs, type GapStyleProps} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n Children,\n Fragment,\n isValidElement,\n type ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, type ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'\n\n/** @beta */\nexport type BreadcrumbsOwnProps = GapStyleProps & {\n expandButton?: Omit<ButtonProps<'button'>, 'as' | 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/** @beta */\nexport type BreadcrumbsElementType = 'div' | 'nav' | ComponentType\n\n/** @beta */\nexport type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<\n BreadcrumbsOwnProps,\n E\n>\n\n/** @beta */\nexport function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(\n props: BreadcrumbsProps<E>,\n) {\n const {\n as = DEFAULT_BREADCRUMBS_ELEMENT,\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...rest\n } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>\n\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" gap={gapY} overflow=\"auto\">\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as={as}\n data-ui=\"Breadcrumbs\"\n {...rest}\n className={breadcrumbs({className})}\n gapX={gapX}\n gapY={gapY}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n}\n","import {containsOrEqualsElement} from '../../helpers'\n\nexport function isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {dialogCard, dialogContent, dialogFooter, dialogHeader, dialogLayout} from '@sanity/ui/css'\nimport {\n type ForwardedRef,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {focusFirstDescendant} from '../../helpers'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {\n Box,\n Button,\n Card,\n type CardElementType,\n type CardOwnProps,\n Flex,\n Text,\n} from '../../primitives'\nimport type {Props} from '../../types'\nimport {useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {isTargetWithinScope} from './isTargetWithinScope'\n\n/** @internal */\nexport const DEFAULT_DIALOG_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type DialogCardOwnProps = CardOwnProps & {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n}\n\n/** @internal */\nexport type DialogCardElementType = CardElementType\n\n/** @internal */\nexport type DialogCardProps<E extends DialogCardElementType = DialogCardElementType> = Props<\n DialogCardOwnProps,\n E\n>\n\n/** @internal */\n\nexport function DialogCard<E extends DialogCardElementType = typeof DEFAULT_DIALOG_CARD_ELEMENT>(\n props: DialogCardProps<E>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n as = DEFAULT_DIALOG_CARD_ELEMENT,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n ref: forwardedRef,\n ...rest\n } = props as DialogCardProps<typeof DEFAULT_DIALOG_CARD_ELEMENT>\n\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <Card {...rest} as={as} className={dialogCard()} display=\"flex\" ref={ref}>\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<number>\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, type DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {\n type ContainerStyleProps,\n dialog,\n dialogContainer,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type FocusEvent, type ForwardedRef, type ReactNode, useCallback, useRef} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {focusFirstDescendant, focusLastDescendant, isHTMLElement} from '../../helpers'\nimport {usePrefersReducedMotion, useResponsiveProp} from '../../hooks'\nimport {Container} from '../../primitives'\nimport type {CardTone, ComponentType, DialogPosition, Props, Radius} from '../../types'\nimport {\n Layer,\n type LayerOwnProps,\n type LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} from '../../utils'\nimport {DialogCard} from './dialogCard'\nimport {isTargetWithinScope} from './isTargetWithinScope'\nimport {useDialog} from './useDialog'\n\n/** @public */\nexport const DEFAULT_DIALOG_ELEMENT = 'div'\n\n/** @public */\nexport type DialogOwnProps = ContainerStyleProps &\n Omit<LayerOwnProps, 'width'> & {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n open?: boolean\n portal?: string\n position?: ResponsiveProp<DialogPosition>\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n }\n\n/** @public */\nexport type DialogElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type DialogProps<E extends DialogElementType = DialogElementType> = Props<DialogOwnProps, E>\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog<E extends DialogElementType = typeof DEFAULT_DIALOG_ELEMENT>(\n props: DialogProps<E>,\n) {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n shadow: cardShadow = 4,\n width = 0,\n zOffset: _zOffsetProp,\n tone,\n ...rest\n } = props as DialogProps<typeof DEFAULT_DIALOG_ELEMENT>\n\n const positionProp = _positionProp ?? context.position ?? 'fixed'\n const zOffsetProp = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useResponsiveProp(cardRadiusProp)\n const position = useResponsiveProp(positionProp)\n const zOffset = useResponsiveProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n {...rest}\n aria-labelledby={labelId}\n aria-modal\n className={dialog({className})}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <Container\n alignItems=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n flexDirection=\"column\"\n display=\"flex\"\n justifyContent=\"center\"\n width={width}\n >\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n tone={tone}\n width={width}\n >\n {children}\n </DialogCard>\n </Container>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport type {DialogPosition} from '../../types'\nimport {DialogContext, type DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: ReactNode\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<number>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {type ButtonProps, Popover, type PopoverProps} from '../../primitives'\nimport type {Placement, Props, Radius} from '../../types'\nimport type {MenuProps} from './menu'\n\n/** @public */\nexport type MenuButtonProps = {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: ReactElement<ButtonProps>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n ref?: ForwardedRef<HTMLButtonElement | null>\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport function MenuButton(props: MenuButtonProps) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n ref: forwardedRef,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps: ButtonProps<'button'> = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n}\n","import {skeleton, type SkeletonStyleProps} from '@sanity/ui/css'\nimport {useEffect, useState} from 'react'\n\nimport {Box, type BoxOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_SKELETON_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type SkeletonOwnProps = BoxOwnProps &\n SkeletonStyleProps & {\n animated?: boolean\n delay?: number\n }\n\n/** @beta */\nexport type SkeletonElementType = 'div' | 'span' | ComponentType\n\n/** @beta */\nexport type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> = Props<\n SkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(\n props: SkeletonProps<E>,\n) {\n const {\n animated = false,\n className,\n delay,\n radius,\n ...rest\n } = props as SkeletonProps<typeof DEFAULT_SKELETON_ELEMENT>\n\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...rest}\n className={skeleton({\n className,\n radius,\n })}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n />\n )\n}\n","import {codeSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontCodeSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_CODE_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type CodeSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @beta */\nexport type CodeSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonElementType> = Props<\n CodeSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton<\n E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,\n>(props: CodeSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as CodeSkeletonProps<typeof DEFAULT_CODE_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={codeSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {headingSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontHeadingSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_HEADING_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type HeadingSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/** @beta */\nexport type HeadingSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type HeadingSkeletonProps<\n E extends HeadingSkeletonElementType = HeadingSkeletonElementType,\n> = Props<HeadingSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton<\n E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,\n>(props: HeadingSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as HeadingSkeletonProps<typeof DEFAULT_HEADING_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={headingSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {labelSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontLabelSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_LABEL_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type LabelSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/** @beta */\nexport type LabelSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeletonElementType> =\n Props<LabelSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton<\n E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,\n>(props: LabelSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as LabelSkeletonProps<typeof DEFAULT_LABEL_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={labelSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {type ResponsiveProp, textSkeleton} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type TextSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @beta */\nexport type TextSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonElementType> = Props<\n TextSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton<\n E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,\n>(props: TextSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as TextSkeletonProps<typeof DEFAULT_TEXT_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={textSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {Box, type BoxOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TAB_PANEL_ELEMENT = 'div'\n\n/** @public */\nexport type TabPanelOwnProps = BoxOwnProps & {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/** @public */\nexport type TabPanelElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabPanelProps<E extends TabPanelElementType = TabPanelElementType> = Props<\n TabPanelOwnProps,\n E\n>\n\n/** @public */\nexport function TabPanel<E extends TabPanelElementType = typeof DEFAULT_TAB_PANEL_ELEMENT>(\n props: TabPanelProps<E>,\n) {\n const {\n as = DEFAULT_TAB_PANEL_ELEMENT,\n children,\n tabIndex,\n ...rest\n } = props as TabPanelProps<typeof DEFAULT_TAB_PANEL_ELEMENT>\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...rest}\n as={as}\n role=\"tabpanel\"\n tabIndex={tabIndex === undefined ? 0 : tabIndex}\n >\n {children}\n </Box>\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {type RadiusStyleProps, toast} from '@sanity/ui/css'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport type {ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TOAST_ELEMENT = 'li'\n\n/** @public */\nexport type ToastOwnProps = RadiusStyleProps & {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n /** @deprecated */\n duration?: number\n /** @deprecated */\n updatedAt?: number\n}\n\n/** @public */\nexport type ToastElementType = 'li' | ComponentType\n\n/** @public */\nexport type ToastProps<E extends ToastElementType = ToastElementType> = Props<ToastOwnProps, E>\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>(\n props: ToastProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_ELEMENT,\n closable,\n description,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n duration,\n onClose,\n radius = 3,\n title,\n status,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updatedAt,\n ...rest\n } = props as ToastProps<typeof DEFAULT_TOAST_ELEMENT>\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}\n\n // const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as={as}\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...rest}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n </MotionCard>\n )\n}\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {type GapStyleProps, type PaddingStyleProps, toastLayer} from '@sanity/ui/css'\n\nimport {Grid} from '../../primitives/grid'\nimport type {ComponentType, Props} from '../../types'\nimport {useLayer} from '../../utils'\n\n/** @internal */\nexport const DEFAULT_TOAST_LAYER_ELEMENT = 'ul'\n\n/** @internal */\nexport type ToastLayerOwnProps = GapStyleProps & PaddingStyleProps\n\n/** @internal */\nexport type ToastLayerElementType = 'ul' | ComponentType\n\n/** @internal */\nexport type ToastLayerProps<E extends ToastLayerElementType = ToastLayerElementType> = Props<\n ToastLayerOwnProps,\n E\n>\n\n/**\n * @internal\n */\nexport function ToastLayer<E extends ToastLayerElementType = typeof DEFAULT_TOAST_LAYER_ELEMENT>(\n props: ToastLayerProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_LAYER_ELEMENT,\n children,\n padding = 4,\n paddingX,\n paddingY,\n gap = 3,\n } = props as ToastLayerProps<typeof DEFAULT_TOAST_LAYER_ELEMENT>\n\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as={as}\n className={toastLayer()}\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport type {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/** @public */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport type {ToastContextValue} from './types'\n\n/** @public */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): 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('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import type {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type FocusEvent,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport type {TreeContextValue, TreeState} from './types'\n\n/** @beta */\nexport const DEFAULT_TREE_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TreeOwnProps = {\n gap?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @beta */\nexport type TreeElementType = 'div' | ComponentType\n\n/** @beta */\nexport type TreeProps<E extends TreeElementType = TreeElementType> = Props<TreeOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree<E extends TreeElementType = typeof DEFAULT_TREE_ELEMENT>(props: TreeProps<E>) {\n const {\n children,\n gap,\n space = 1,\n onFocus,\n ref: forwardedRef,\n ...rest\n } = props as TreeProps<typeof DEFAULT_TREE_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...rest}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport type {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo, type ReactElement} from 'react'\n\nimport {Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {useTree} from './useTree'\n\n/** @public */\nexport const DEFAULT_TREE_GROUP_ELEMENT = 'div'\n\n/** @public */\nexport type TreeGroupElementType = 'div' | ComponentType\n\n/** @public */\nexport type TreeGroupOwnProps = {\n expanded?: boolean\n}\n\n/** @public */\nexport type TreeGroupProps<E extends TreeGroupElementType = TreeGroupElementType> = Props<\n TreeGroupOwnProps,\n E\n>\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {\n children,\n expanded = false,\n ...rest\n } = props as TreeGroupProps<typeof DEFAULT_TREE_GROUP_ELEMENT>\n\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...rest}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n gap={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {type ResponsiveProp, treeItem, vars} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type KeyboardEvent,\n type MouseEvent,\n type MouseEventHandler,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, type BoxProps, type CardOwnProps, Flex, Text} from '../../primitives'\nimport {Selectable, type SelectableElementType} from '../../primitives/_selectable'\nimport type {ComponentType, Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/** @beta */\nexport const DEFAULT_TREE_ITEM_ELEMENT = 'a'\n\n/** @beta */\nexport type TreeItemOwnProps = CardOwnProps & {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: SelectableElementType\n onClick?: MouseEventHandler<HTMLAnchorElement | HTMLLIElement>\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @beta */\nexport type TreeItemElementType = 'a' | 'li' | ComponentType\n\n/** @beta */\nexport type TreeItemProps<E extends TreeItemElementType = TreeItemElementType> = Props<\n TreeItemOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITEM_ELEMENT>(\n props: TreeItemProps<E>,\n) {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...rest\n } = props as TreeItemProps<typeof DEFAULT_TREE_ITEM_ELEMENT>\n\n const rootRef = useRef<HTMLElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLAnchorElement> | MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...(rest as BoxProps<'li'>)}\n as=\"li\"\n className={treeItem({className})}\n onClick={handleClick}\n ref={rootRef as Ref<HTMLLIElement>}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...(rest as BoxProps<'a'>)}\n aria-expanded={expanded}\n className={treeItem({className})}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef as Ref<HTMLAnchorElement>}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n}\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","_responsive","media","values","callback","map","statement","mediaIndex","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","useArrayProp","val","defaultVal","$","_c","t0","_getArrayProp","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","_getElements","elementsArg","ret","Array","isArray","push","filter","useClickOutside","listener","boundaryElement","undefined","EMPTY_ARRAY","setElement","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","DEFAULT_LABEL_ELEMENT","Label","props","accent","align","children","className","rest","textOverflowProp","as","muted","size","textOverflow","weight","label","t6","t7","DEFAULT_AVATAR_ELEMENT","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","initials","onImageLoadError","src","title","color","arrowPosition","status","sizeProp","useResponsiveProp","setArrowPosition","imageError","setImageError","raf","t8","t9","Error","handleImageError","t10","t11","Object","_temp","initialsSize","t12","t13","avatar","t14","t15","avatarArrow","t16","t17","avatarInitials","t18","t19","avatarImage","avatarImageOutline","t20","s","DEFAULT_AVATAR_COUNTER_ELEMENT","AvatarCounter","count","labelSize","avatarCounter","DEFAULT_AVATAR_STACK_ELEMENT","AvatarStack","childrenProp","maxLength","maxLengthProp","Children","toArray","isValidElement","Math","max","len","visibleCount","extraCount","visibleChildren","slice","T0","Box","avatarStack","childIndex","cloneElement","String","DEFAULT_BADGE_ELEMENT","Badge","fontSize","padding","radius","tone","badge","DEFAULT_CHECKBOX_ELEMENT","Checkbox","checked","customValidity","forwardedRef","indeterminate","readOnly","useCustomValidity","checkbox","checkboxInput","checkboxPresentation","DEFAULT_CONTAINER_ELEMENT","Container","width","container","DEFAULT_HEADING_ELEMENT","Heading","flex","heading","DEFAULT_INLINE_ELEMENT","Inline","gap","space","BoundaryElementProvider","version","value","ErrorBoundary","Component","state","error","displayName","getDerivedStateFromError","componentDidCatch","info","onCatch","render","message","DEFAULT_SR_ONLY_ELEMENT","SrOnly","srOnly","DEFAULT_VIRTUAL_LIST_ELEMENT","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","gapValue","setGapValue","scrollEl","findScrollable","parentNode","HTMLElement","handleScroll","passive","ro","_ResizeObserver","entries","contentRect","height","observe","unobserve","disconnect","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","floor","toIndex","ceil","bb0","offsetHeight","vars","item","_itemIndex","itemIndex","node","key","top","wrapperStyle","_scrollEl","DEFAULT_RADIO_ELEMENT","Radio","radio","radioInput","radioPresentation","DEFAULT_SELECT_ELEMENT","Select","border","select","_inputElement","selectPresentation","DEFAULT_SWITCH_ELEMENT","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","DEFAULT_TEXT_AREA_ELEMENT","TextArea","__unstable_disableFocusRing","textArea","_inputPresentation","TooltipDelayGroupProvider","delay","isGroupActive","setIsGroupActive","useDelayedState","openTooltipId","setOpenTooltipId","openDelay","open","closeDelay","close","AutocompleteOption","id","onSelect","selected","setTimeout","handleClick","event","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_AUTOCOMPLETE_ELEMENT","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","filterOption","filterOptionProp","icon","listBox","EMPTY_RECORD","loading","onBlur","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","paddingProp","popover","prefix","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","dispatch","useReducer","defaultRenderOption","useCallback","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","fromEntries","openButtonPadding","openButtonProps","handleOpenClick","onClick","openButtonNode","ChevronDownIcon","inputValue","input","AnimatedSpinnerIcon","handleListBoxKeyDown","content","active","results","hidden","inputElement","onMouseEnter","onMouseLeave","DEFAULT_BREADCRUMBS_ELEMENT","Breadcrumbs","expandButton","expandButtonProps","_gapProp","gapX","gapY","separator","_spaceProp","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","beforeLength","afterLength","breadcrumbs","isTargetWithinScope","portalElement","containsOrEqualsElement","DEFAULT_DIALOG_CARD_ELEMENT","DialogCard","autoFocus","footer","forwardedContentRef","header","hideCloseButton","onClickOutside","onClose","portalProp","__unstable_autoFocus","__unstable_hideCloseButton","contentRef","portal","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","event_0","target_0","dialogCard","dialogLayout","dialogHeader","CloseIcon","dialogContent","dialogFooter","DialogContext","createGlobalScopedContext","useDialog","useContext","DEFAULT_DIALOG_ELEMENT","Dialog","context","_positionProp","_zOffsetProp","onActivate","scheme","animate","cardRadius","position","shadow","zOffset","_animate","cardRadiusProp","cardShadow","positionProp","zOffsetProp","Z_OFFSETS","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","dialogContainer","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","t21","t22","t23","overflow","popoverProps","t24","t25","DEFAULT_SKELETON_ELEMENT","Skeleton","animated","visible","setVisible","timeout","skeleton","DEFAULT_CODE_SKELETON_ELEMENT","CodeSkeleton","codeSkeleton","DEFAULT_HEADING_SKELETON_ELEMENT","HeadingSkeleton","headingSkeleton","DEFAULT_LABEL_SKELETON_ELEMENT","LabelSkeleton","labelSkeleton","DEFAULT_TEXT_SKELETON_ELEMENT","TextSkeleton","textSkeleton","DEFAULT_TAB_PANEL_ELEMENT","TabPanel","DEFAULT_TOAST_ELEMENT","ROLES","warning","success","STATUS_CARD_TONE","BUTTON_TONE","Toast","closable","description","duration","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","initial","exit","toast","verticalAlign","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionCard","motion","create","Card","MotionFlex","Flex","MotionText","Text","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","DEFAULT_TOAST_LAYER_ELEMENT","ToastLayer","paddingX","paddingY","toastLayer","toastId","generateToastId","ToastProvider","setState","mounted","params","startTransition","prevState","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","DEFAULT_TREE_ELEMENT","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","useTree","tree","TreeGroup","memo","DEFAULT_TREE_ITEM_ELEMENT","TreeItem","expandedProp","IconComponent","idProp","linkAs","text","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","transform","treeItem","paddingLeft"],"mappings":";;;;;;;;;;AAuBO,MAAMA,mBAAmBC,oBAMnBC,WAAWC,YAMXC,WAAWC,YAMXC,WAAWC,YAMXC,aAAaC,cAMbC,WAAWC,YAMXC,WAAWC,YAMXC,OAAOC,QAMPC,SAASC;ACjENC,SAAAA,YACdC,OACAC,QACAC,UACa;AAGb,UAFmBD,QAAQE,IAAID,QAAQ,KAAK,CAAE,GAE5BC,IAAI,CAACC,WAAWC,eAC5BA,eAAe,IAAUD,YAEtB;AAAA,IAAC,CAAC,iCAAiCJ,MAAMK,aAAa,CAAC,CAAC,KAAK,GAAGD;AAAAA,EAAAA,CACxE;AACH;ACfO,SAASE,KAAKC,IAA4B;AACzCC,QAAAA,UAAUC,sBAAsBF,EAAE;AAExC,SAAO,MAAM;AACXG,yBAAqBF,OAAO;AAAA,EAC9B;AACF;AAKO,SAASG,MAAMJ,IAA4B;AAChD,MAAIK,eAAoC;AAElCC,QAAAA,eAAeP,KAAK,MAAM;AAC9BM,mBAAeN,KAAKC,EAAE;AAAA,EAAA,CACvB;AAED,SAAO,MAAM;AACPK,oBAAcA,aAAa,GAE/BC,aAAa;AAAA,EACf;AACF;ACVO,SAASC,UAAUC,SAA+B;AACvD,SAAOC,EAAQC,SAASC,iBAAkBH,QAAQI,SAASF,SAASC,aAAa;AACnF;AAKO,SAASE,YAAYL,SAA+B;AAEvDA,SAAAA,QAAQM,WAAW,KAClBN,QAAQM,aAAa,KAAKN,QAAQO,aAAa,UAAU,MAAM,OAEzD,KAGLC,oBAAoBR,OAAO,IACtBC,CAAAA,CAAQD,QAAQS,QAAST,QAAQU,QAAQ,WAG9CC,mBAAmBX,OAAO,IACrBA,QAAQY,SAAS,YAAYZ,QAAQY,SAAS,UAAU,CAACZ,QAAQa,WAIxEC,oBAAoBd,OAAO,KAC3Be,oBAAoBf,OAAO,KAC3BgB,sBAAsBhB,OAAO,IAEtB,CAACA,QAAQa,WAGX;AACT;AAKO,SAASI,aAAajB,SAA+B;AACtD,MAAA,CAACK,YAAYL,OAAO;AACf,WAAA;AAKL,MAAA;AACFA,YAAQkB,MAAM;AAAA,EAAA,QACR;AAAA,EAAA;AAMR,SAAOhB,SAASC,kBAAkBH;AACpC;AAKO,SAASmB,qBAAqBnB,SAA+B;AAClE,WAASoB,IAAI,GAAGA,IAAIpB,QAAQqB,WAAWC,QAAQF,KAAK;AAC5CG,UAAAA,QAAQvB,QAAQqB,WAAWD,CAAC;AAElC,QAAII,cAAcD,KAAK,MAAMN,aAAaM,KAAK,KAAKJ,qBAAqBI,KAAK;AACrE,aAAA;AAAA,EAAA;AAIJ,SAAA;AACT;AAKO,SAASE,oBAAoBzB,SAA+B;AACjE,WAASoB,IAAIpB,QAAQqB,WAAWC,SAAS,GAAGF,KAAK,GAAGA,KAAK;AACjDG,UAAAA,QAAQvB,QAAQqB,WAAWD,CAAC;AAElC,QAAII,cAAcD,KAAK,MAAMN,aAAaM,KAAK,KAAKE,oBAAoBF,KAAK;AACpE,aAAA;AAAA,EAAA;AAIJ,SAAA;AACT;AChGO,SAASG,cAAcC,IAAmB;AAC3C,MAAA,EAAEA,cAAcC,SAAiB,QAAA;AAE/BC,QAAAA,QAAQC,OAAOC,iBAAiBJ,EAAE;AAExC,SACEE,MAAMG,UAAUC,SAAS,MAAM,KAC/BJ,MAAMG,UAAUC,SAAS,QAAQ,KACjCJ,MAAMK,UAAUD,SAAS,MAAM,KAC/BJ,MAAMK,UAAUD,SAAS,QAAQ;AAErC;ACLOE,SAAAA,aAAAC,KAAAC,YAAA;AAAAC,QAAAA,IAAAC,EAAA,CAAA;AAAAC,MAAAA;AAAAF,IAAAD,CAAAA,MAAAA,cAAAC,SAAAF,OAC+DI,KAAAA,MAAA,CAClEC,cAAcL,KAAKC,UAAU,GAC7BK,KAAAC,UAAeP,OAAOC,UAAU,CAAC,GAClCC,OAAAD,YAAAC,OAAAF,KAAAE,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAHD,QAAA,CAAAM,IAAAC,QAAA,IAA4CC,SAAwBN,EAGnE,GAHM,CAAAO,WAAAC,UAAA,IAAAJ,IAKPK,OAAaP,KAAAC,UAAeP,OAAOC,UAAU;AAEzCY,SAAAA,SAASD,cAIXH,SAAQ,CAAEJ,cAAcL,KAAKC,UAAU,GAAGY,IAAI,CAAC,GAG1CF;AAAS;ACdlB,SAASG,aACPlD,SACAmD,aACe;AACTC,QAAAA,MAAM,CAACpD,OAAO;AAEpB,aAAW2B,MAAMwB;AACXE,UAAMC,QAAQ3B,EAAE,IAClByB,IAAIG,KAAK,GAAG5B,EAAE,IAEdyB,IAAIG,KAAK5B,EAAE;AAIRyB,SAAAA,IAAII,OAAOvD,OAAO;AAC3B;AAiBOwD,SAAAA,gBAAAC,UAAAlB,IAAAmB,iBAAA;AAAA,QAAArB,IAAAC,EAAA,EAAA,GAELY,cAAAX,OAA+CoB,SAAAC,cAA/CrB,IAGA,CAAAxC,SAAA8D,UAAA,IAA8BhB,aAAiC;AAACF,MAAAA;AAAAN,IAAAtC,CAAAA,MAAAA,WAAAsC,SAAAa,eACvBP,KAAAA,MAAMM,aAAalD,SAASmD,WAAW,GAACb,OAAAtC,SAAAsC,OAAAa,aAAAb,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAjF,QAAA,CAAAyB,UAAAC,WAAA,IAAgClB,SAASF,EAAwC,GACjFqB,cAAoBC,OAAOH,QAAQ;AAAC,MAAAI,IAAAC;AAAA9B,IAAAtC,CAAAA,MAAAA,WAAAsC,SAAAa,eAE1BgB,KAAAA,MAAA;AACR,UAAAE,eAAqBJ,YAAWK,SAChCC,eAAqBrB,aAAalD,SAASmD,WAAW;AAElDkB,QAAAA,aAAY/C,WAAYiD,aAAYjD,QAAO;AACjCiD,kBAAAA,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,IAAA;AAAA,eAK/B5C,MAAY0C;AAAY,UAAA,CACtBE,aAAYtC,SAAUN,EAAE,GAAC;AAChB4C,oBAAAA,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,MAAA;AAAA,eAMjCC,QAAYD;AAAY,UAAA,CACtBF,aAAYpC,SAAUN,IAAE,GAAC;AAChB4C,oBAAAA,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,MAAA;AAAA,EAKrCH,GAAAA,KAAA,CAACpE,SAASmD,WAAW,GAACb,OAAAtC,SAAAsC,OAAAa,aAAAb,OAAA6B,IAAA7B,OAAA8B,OAAAD,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA,IA5BzBmC,UAAUN,IA4BPC,EAAsB;AAAC,MAAAM,IAAAC;AAAA,SAAArC,EAAAqB,CAAAA,MAAAA,mBAAArB,SAAAyB,YAAAzB,EAAA,CAAA,MAAAoB,YAEhBgB,KAAAA,MAAA;AAAA,QAAA,CACHhB;AAAQ;AAEb,UAAAkB,wBAAAC,CAAA,QAAA;AACE,YAAAC,SAAeD,IAAGC;AAAO,UAEnBA,kBAAMC,QAIRpB,EAAAA,mBAAoBA,CAAAA,gBAAevD,SAAU0E,MAAM,IAAC;AAAA,mBAInDE,QAAYjB;AAAQ,cACnBe,WAAWnD,QAAMA,KAAEvB,SAAU0E,MAAM;AAAC;AAK1CpB,iBAASmB,GAAG;AAAA,MAAA;AAAA,IAAC;AAGf/C,WAAAA,OAAAmD,iBAAwB,aAAaL,qBAAqB,GAAC,MAAA;AAGzDM,aAAAA,oBAA2B,aAAaN,qBAAqB;AAAA,IAAC;AAAA,EAAA,GAE/DD,KAAChB,CAAAA,iBAAiBD,UAAUK,QAAQ,GAACzB,OAAAqB,iBAAArB,OAAAyB,UAAAzB,OAAAoB,UAAApB,QAAAoC,IAAApC,QAAAqC,OAAAD,KAAApC,EAAA,EAAA,GAAAqC,KAAArC,EAAA,EAAA,IA5BxCmC,UAAUC,IA4BPC,EAAqC,GAEjCb;AAAU;ACvGZ,SAAAqB,eAAAnF,SAAA;AACeoF,SAAAA,eAAepF,OAAO,GAExBqF,gBAAsB;AAAA;ACCnC,SAAAC,gBAAAC,KAAA;AAAA,QAAAjD,IAAAC,EAAA,CAAA,GACLiD,WAAiBtB,OAAA,IAAqB;AAAC1B,MAAAA;AAAAF,SAAAA,EAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAEdlD,KAAAA,MAAMgD,SAAQlB,SAAShC,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAAhDqD,oBAAoBJ,KAAK/C,EAAuB,GAEzCgD;AAAQ;ACPV,MAAMI,wBAAwB;AA4B9B,SAAAC,MAAAC,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,EAAA;AAAAwD,MAAAA,QAAAC,OAAAC,UAAAC,WAAAC,MAAA3D,IAAAI,IAAAuB,IAAAC,IAAAgC;AAAA9D,WAAAwD,SAGL;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAK,IAAA7D;AAAAA,IAAAyD;AAAAA,IAAAC;AAAAA,IAAAI,OAAA1D;AAAAA,IAAA2D,MAAApC;AAAAA,IAAAqC,cAAAJ;AAAAA,IAAAK,QAAArC;AAAAA,IAAA,GAAA+B;AAAAA,EAAAA,IAWIL,OAAKxD,OAAAwD,OAAAxD,OAAAyD,QAAAzD,OAAA0D,OAAA1D,OAAA2D,UAAA3D,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAE,IAAAF,OAAAM,IAAAN,OAAA6B,IAAA7B,OAAA8B,IAAA9B,QAAA8D,qBAAAL,SAAAzD,EAAA,CAAA,GAAA0D,QAAA1D,EAAA,CAAA,GAAA2D,WAAA3D,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA,GAAA8D,mBAAA9D,EAAA,EAAA;AARH,QAAAV,WAAAY,OAA+BoB,SAAAgC,wBAA/BpD,IAGJ8D,QAAA1D,OAAagB,cAAbhB,IACA2D,OAAApC,OAAQP,aAARO,IAEAsC,SAAArC,OAAkBR,SAAT,YAATQ;AAAkBM,MAAAA;AAAApC,YAAAyD,UAAAzD,EAAA0D,EAAAA,MAAAA,SAAA1D,EAAA4D,EAAAA,MAAAA,aAAA5D,EAAA,EAAA,MAAAgE,SAAAhE,UAAAiE,QAAAjE,EAAA,EAAA,MAAAmE,UAQL/B,KAAAgC,MAAA;AAAA,IAAAR;AAAAA,IAAAH;AAAAA,IAAAC;AAAAA,IAAAM;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,EAOV,CAAA,GAACnE,QAAAyD,QAAAzD,QAAA0D,OAAA1D,QAAA4D,WAAA5D,QAAAgE,OAAAhE,QAAAiE,MAAAjE,QAAAmE,QAAAnE,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AAAAqC,MAAAA;AAAArC,YAAA8D,oBAGWzB,KAAA6B,aAAA;AAAA,IAAAA,cACKJ;AAAAA,EACf,CAAA,GAAC9D,QAAA8D,kBAAA9D,QAAAqC,MAAAA,KAAArC,EAAA,EAAA;AAAAqE,MAAAA;AAAArE,IAAA2D,EAAAA,MAAAA,YAAA3D,UAAAqC,MAHJgC,KAAA,oBAAA,QACa,EAAA,WAAAhC,IAIVsB,SAAAA,CACH,GAAO3D,QAAA2D,UAAA3D,QAAAqC,IAAArC,QAAAqE,MAAAA,KAAArE,EAAA,EAAA;AAAAsE,MAAAA;AAAAtE,SAAAA,EAAA,EAAA,MAAAV,YAAAU,EAAA6D,EAAAA,MAAAA,QAAA7D,EAAAoC,EAAAA,MAAAA,MAAApC,UAAAqE,MAlBTC,KAAA,oBAAChF,YACS,WAAA,SAAO,GACXuE,MACO,WAAAzB,IASXiC,cAOF,GAAUrE,QAAAV,UAAAU,QAAA6D,MAAA7D,QAAAoC,IAAApC,QAAAqE,IAAArE,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAnBVsE;AAmBU;ACzDP,MAAMC,yBAAyB;AAgC/B,SAAAC,OAAAhB,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAkBDC,KAAAsD;AAAmDiB,MAAAA,4BAAAC,kBAAAC,mBAAAf,WAAAgB,UAAAC,kBAAAhB,MAAAiB,KAAAxE,IAAAuB,IAAAC,IAAAM,IAAA2C;AAAA/E,WAAAE,MAfvD;AAAA,IAAAuE;AAAAA,IAAAV,IAAAzD;AAAAA,IAAAsD;AAAAA,IAAAoB,OAAAnD;AAAAA,IAAAiD;AAAAA,IAAAC;AAAAA,IAAAH;AAAAA,IAAAC;AAAAA,IAAAI,eAAAN;AAAAA,IAAAD;AAAAA,IAAAQ,QAAApD;AAAAA,IAAAmC,MAAA7B;AAAAA,IAAA,GAAAyB;AAAAA,EAAA,IAeI3D,IAAmDF,OAAAE,IAAAF,OAAAyE,4BAAAzE,OAAA0E,kBAAA1E,OAAA2E,mBAAA3E,OAAA4D,WAAA5D,OAAA4E,UAAA5E,OAAA6E,kBAAA7E,OAAA6D,MAAA7D,OAAA8E,KAAA9E,OAAAM,IAAAN,QAAA6B,IAAA7B,QAAA8B,IAAA9B,QAAAoC,IAAApC,QAAA+E,UAAAN,6BAAAzE,EAAA,CAAA,GAAA0E,mBAAA1E,EAAA,CAAA,GAAA2E,oBAAA3E,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAA4E,WAAA5E,EAAA,CAAA,GAAA6E,mBAAA7E,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAA8E,MAAA9E,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,EAAA,GAAA8B,KAAA9B,EAAA,EAAA,GAAAoC,KAAApC,EAAA,EAAA,GAAA+E,QAAA/E,EAAA,EAAA;AAbjD,QAAAV,WAAAgB,OAAgCgB,SAAAiD,yBAAhCjE,IAEJ0E,QAAAnD,OAAiBP,SAAT,YAARO,IASMsD,WAAA/C,OAAYd,aAAZc,IAIR6B,OAAamB,kBAAkBD,QAAQ,GAEvCF,CAAAA,eAAAI,gBAAA,IAA0C7E,SACxCkE,oBAAoBC,qBAAqB,QAC3C,GAEA,CAAAW,YAAAC,aAAA,IAAoC/E,WAAuB;AAAC,MAAA6B,IAAAgC;AAAArE,IAAAiF,EAAAA,MAAAA,iBAAAjF,UAAA2E,qBAElDtC,KAAAA,MAAA;AAAA,QACJ4C,kBAAkBN;AAAiB;AAGvC,UAAAa,MAAYpI,sBAAA,MAA4BiI,iBAAiBV,iBAAiB,CAAC;AAE9DtH,WAAAA,MAAAA,qBAAqBmI,GAAG;AAAA,EACpCnB,GAAAA,KAAA,CAACY,eAAeN,iBAAiB,GAAC3E,QAAAiF,eAAAjF,QAAA2E,mBAAA3E,QAAAqC,IAAArC,QAAAqE,OAAAhC,KAAArC,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA,IAPrCmC,UAAUE,IAOPgC,EAAkC;AAAC,MAAAC,IAAAmB;AAAAzF,YAAA8E,OAE5BR,KAAAA,MAAA;AACJQ,WAAKS,gBAAmB;AAAA,EAAC,GAC5BE,MAACX,GAAG,GAAC9E,QAAA8E,KAAA9E,QAAAsE,IAAAtE,QAAAyF,OAAAnB,KAAAtE,EAAA,EAAA,GAAAyF,KAAAzF,EAAA,EAAA,IAFRmC,UAAUmC,IAEPmB,EAAK;AAACC,MAAAA;AAAA1F,YAAA6E,oBAE4Ba,KAAAA,MAAA;AACnCH,oBAAkB,GAEdV,oBACFA,iBAAgBc,IAAAA,MAAW,kCAAkC,CAAC;AAAA,EAAC,GAElE3F,QAAA6E,kBAAA7E,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAND,QAAA4F,mBAAyBF;AAMH,MAAAG,KAAAC;AAAA9F,YAAAiE,QAIlB6B,MAAAC,OAAAnJ,OAAcqH,IAAI,EAACnH,IAAAkJ,OAMlB,GAAChG,QAAAiE,MAAAjE,QAAA8F,OAAAA,MAAA9F,EAAA,EAAA,GAAA6F,MANFC;AAFJ,QAAAG,eAAqBJ,KAcOK,MAAAzB,6BAA6B,KAAEnD;AAAY6E,MAAAA;AAAAnG,IAAA4D,EAAAA,MAAAA,aAAA5D,UAAAgF,SAAAhF,EAAA,EAAA,MAAAmF,YAIxDgB,MAAAC,OAAA;AAAA,IAAAxC;AAAAA,IAAAoB;AAAAA,IAAAf,MAAgCkB;AAAAA,EAAAA,CAAS,GAACnF,QAAA4D,WAAA5D,QAAAgF,OAAAhF,QAAAmF,UAAAnF,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AAEnCqG,QAAAA,MAAAf,aAAa,KAAEhE;AAAYgF,MAAAA;AAAAtG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAG5BkD,MAAAC,YAAY,GAACvG,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA;AAAAwG,MAAAA;AAAAxG,YAAAgF,SAA9BwB,kCAAiB,EAAA,WAAAF,KACf,UAAA,oBAAA,SAAW,OAAA,MAAY,QAAA,KAAY,SAAA,YAAgB,MAAA,QACjD,UAGE,oBAAA,QAAA,EAFE,GAAA,gGACItB,aAAK,EAAA,CAEf,EACF,CAAA,GAAOhF,QAAAgF,OAAAhF,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA;AAAAyG,MAAAA;AAAAzG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAKMqD,MAAAC,eAAe,GAAC1G,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA;AAAA2G,MAAAA;AAAA3G,IAAA4E,EAAAA,MAAAA,YAAA5E,UAAAiG,gBAH7BU,MAAC,oBAAA,KACY,EAAA,YAAA,UACR,IAAA,QACQ,WAAAF,KACH,SAAA,QACO,gBAAA,UACN,UAAA,YACF,OAAA,GAEP,UAAA,oBAAC,SAAY,OAAA,UAAY,IAAA,QAAaR,MAAW,cAAU,QAAA,UACxDrB,UAAAA,SAAAA,CACH,EACF,CAAA,GAAM5E,QAAA4E,UAAA5E,QAAAiG,cAAAjG,QAAA2G,OAAAA,MAAA3G,EAAA,EAAA;AAAA4G,MAAAA;AAAA5G,IAAA4F,EAAAA,MAAAA,oBAAA5F,UAAA4E,YAAA5E,EAAA,EAAA,MAAA8E,OAEL8B,MAAA9B,4BACE,KAAe,EAAA,WAAA+B,eAAsB,OAAC,GAAW,UAAA,YAChD,UAAA;AAAA,IAAA,oBAAA,OAAUjC,EAAAA,KAAO,UAAYgB,2BAAuBd;IACX,oBAAA,QAAA,EAAxB,WAAAgC,mBAAAA,EAAoB,CAAA;AAAA,EAAA,GACvC,GACD9G,QAAA4F,kBAAA5F,QAAA4E,UAAA5E,QAAA8E,KAAA9E,QAAA4G,OAAAA,MAAA5G,EAAA,EAAA;AAAA+G,MAAAA;AAAA/G,SAAAA,EAAAV,EAAAA,MAAAA,YAAAU,UAAAiF,iBAAAjF,EAAA,EAAA,MAAA6D,QAAA7D,UAAAkG,OAAAlG,EAAAmG,EAAAA,MAAAA,OAAAnG,UAAAqG,OAAArG,EAAA,EAAA,MAAAwG,OAAAxG,EAAA2G,EAAAA,MAAAA,OAAA3G,EAAA,EAAA,MAAA4G,OAAA5G,UAAA+E,SAtCHgC,MAAC,qBAAAzH,UAAA,EACyB,0BAAA4G,KAChB,WAAA,aACJrC,MACQkB,cAAI,OACL,WAAAoB,KACUlB,uBAAAA,eACH,oBAAAoB,KACXtB,OAEPyB,UAAAA;AAAAA,IAAAA;AAAAA,IASAG;AAAAA,IAcCC;AAAAA,EAAAA,GAMH,GAAU5G,QAAAV,UAAAU,QAAAiF,eAAAjF,QAAA6D,MAAA7D,QAAAkG,KAAAlG,QAAAmG,KAAAnG,QAAAqG,KAAArG,QAAAwG,KAAAxG,QAAA2G,KAAA3G,QAAA4G,KAAA5G,QAAA+E,OAAA/E,QAAA+G,OAAAA,MAAA/G,EAAA,EAAA,GAvCV+G;AAuCU;AArGP,SAAAf,QAAAgB,GAAA;AAoDKA,SAAAA,MAAO,IAAA,IACPA,MAAO,IAAA,IACPA,MAAO,IAAA,IAAA;AAAA;AC7FZ,MAAMC,iCAAiC;AAgBvC,SAAAC,cAAA1D,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GASDC,KAAAsD;AAAkEI,MAAAA,WAAAuD,OAAAtD,MAAAvD,IAAAuB;AAAA7B,WAAAE,MANtE;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAsD;AAAAA,IAAAuD;AAAAA,IAAAlD,MAAApC;AAAAA,IAAA,GAAAgC;AAAAA,EAAAA,IAMI3D,IAAkEF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAAmH,OAAAnH,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,OAAA+B,YAAA5D,EAAA,CAAA,GAAAmH,QAAAnH,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA;AALpE+D,QAAAA,KAAAzD,OAAmCgB,SAAA2F,iCAAnC3G,IAMF2D,OAAamB,kBAHLvD,OAAYP,aAAZO,EAG+B;AAAC,MAAAC,IAAAM;AAAApC,WAAAiE,QAIpC7B,KAAA2D,OAAAnJ,OAAcqH,IAAI,EAACnH,IAAAkJ,OAMlB,GAAChG,OAAAiE,MAAAjE,OAAAoC,MAAAA,KAAApC,EAAA,CAAA,GAAA8B,KANFM;AAFJ,QAAAgF,YAAkBtF;AAUjBO,MAAAA;AAAArC,IAAA4D,CAAAA,MAAAA,aAAA5D,SAAAiE,QAQc5B,KAAAgF,cAAA;AAAA,IAAAzD;AAAAA,IAAAK;AAAAA,EAAAA,CAA+B,GAACjE,OAAA4D,WAAA5D,OAAAiE,MAAAjE,QAAAqC,MAAAA,KAAArC,EAAA,EAAA;AAAAqE,MAAAA;AAAArE,IAAAmH,EAAAA,MAAAA,SAAAnH,UAAAoH,aAO3C/C,yBAAC,OAAY,EAAA,OAAA,UAAY,IAAA,QAAa+C,MAAQ,WAAU,QAAA,UACjD,iBACP,GAAQpH,QAAAmH,OAAAnH,QAAAoH,WAAApH,QAAAqE,MAAAA,KAAArE,EAAA,EAAA;AAAAsE,MAAAA;AAAA,SAAAtE,EAAA,EAAA,MAAA+D,MAAA/D,EAAA6D,EAAAA,MAAAA,QAAA7D,EAAAqC,EAAAA,MAAAA,MAAArC,UAAAqE,MAdVC,KAAA,oBAAC,KACS,EAAA,WAAA,iBAAe,GACnBT,MACO,YAAA,UACPE,IACO,WAAA1B,IACH,SAAA,QACH,MAAA,QACU,gBAAA,UACL,UAAC,GACJ,QAAA,UAEPgC,UAAAA,GAAAA,CAGF,GAAMrE,QAAA+D,IAAA/D,QAAA6D,MAAA7D,QAAAqC,IAAArC,QAAAqE,IAAArE,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAfNsE;AAeM;AAxCH,SAAA0B,QAAAgB,GAAA;AAeKA,SAAAA,MAAO,IAAA,IACPA,MAAO,IAAA,IACPA,MAAO,IAAA,IAAA;AAAA;AChCZ,MAAMM,+BAA+B;AA2BrC,SAAAC,YAAA/D,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAUDC,KAAAsD;AAA8D,MAAAgE,cAAA5D,WAAAC,MAAAvD,IAAAuB,IAAAC;AAAA9B,WAAAE,MAPlE;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAqD,UAAA6D;AAAAA,IAAA5D;AAAAA,IAAA6D,WAAA5F;AAAAA,IAAAoC,MAAAnC;AAAAA,IAAA,GAAA+B;AAAAA,EAAA,IAOI3D,IAA8DF,OAAAE,IAAAF,OAAAwH,cAAAxH,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,IAAA7B,OAAA8B,OAAA0F,eAAAxH,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA;AANhE+D,QAAAA,KAAAzD,OAAiCgB,SAAAgG,+BAAjChH,IAGWoH,gBAAA7F,OAAiBP,aAAjBO,IACLsD,WAAArD,OAAYR,aAAZQ,IAIR6B,WAAiBgE,SAAAC,QAAiBJ,YAAY,EAACtG,OAAA2G,cAAsB,GAGrEJ,YAAkBK,KAAAC,IAASL,gBAAgB,GAC3CzD,OAAamB,kBAAkBD,QAAQ,GAEvC6C,MAAYrE,SAAQ3E,QACpBiJ,eAAqBR,YAAa,GAClCS,aAAmBF,MAAMC,cACzBE,kBAAwBD,aAAU,IAAOvE,SAAQyE,MAAOF,YAAYF,GAAG,IAAIrE,UAGxE0E,KAAAC,KACSlG,KAAa,eAEVC,KAAQ;AAAAgC,MAAAA;AAAArE,IAAA4D,CAAAA,MAAAA,aAAA5D,SAAAiE,QAERI,KAAAkE,YAAA;AAAA,IAAA3E;AAAAA,IAAAK;AAAAA,EAAAA,CAA6B,GAACjE,OAAA4D,WAAA5D,OAAAiE,MAAAjE,OAAAqE,MAAAA,KAAArE,EAAA,CAAA;AACjCsE,QAAAA,KAAM,QACCmB,KAAY,cAE1BC,KAAAsC,QAAS,KAAK,oBAAA,eAAA,EAAqBA,YAAW/D,KAAQ,CAAA,GAEtD4B,MAAAmC,QAAG,KAAUE,aAAU,KAAS,oBAAA,eAAA,EAAqBA,mBAAkBjE,KAAQ,CAAA;AAAA6B,MAAAA;AAAA9F,YAAAiE,QAE3D6B,MAAAA,CAAA7G,OAAAuJ,eACnB,oBAAC,UAAmCC,EAAAA,UAAAA,aAAaxJ,OAAK;AAAA,IAAAgF;AAAAA,EAAAA,CAAQ,EAA/CyE,GAAAA,OAAOF,UAAU,CAAgC,GACjExI,QAAAiE,MAAAjE,QAAA8F,OAAAA,MAAA9F,EAAA,EAAA;AAFAkG,QAAAA,MAAAiC,gBAAerL,IAAKgJ,GAEpB;AAACK,MAAAA;AAAA,SAAAnG,EAAAqI,EAAAA,MAAAA,MAAArI,EAAA+D,EAAAA,MAAAA,MAAA/D,EAAA6D,EAAAA,MAAAA,QAAA7D,UAAA6F,OAAA7F,EAAA,EAAA,MAAAkG,OAAAlG,EAAA,EAAA,MAAAqE,MAAArE,EAAA,EAAA,MAAA0F,MAfJS,MAAA,qBAAC,MACS,WAAA/D,IAAa,GACjByB,MACO,YAAAxB,IACP0B,IACO,WAAAM,IACH,SAAAC,IACO,gBAAAmB,IAEdC,UAAAA;AAAAA,IAAAA;AAAAA,IAEAG;AAAAA,IAEAK;AAAAA,EAAAA,EAGH,CAAA,GAAMlG,QAAAqI,IAAArI,QAAA+D,IAAA/D,QAAA6D,MAAA7D,QAAA6F,KAAA7F,QAAAkG,KAAAlG,QAAAqE,IAAArE,QAAA0F,IAAA1F,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA,GAhBNmG;AAgBM;ACrEH,MAAMwC,wBAAwB;AAoB9B,SAAAC,MAAApF,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAYDC,KAAAsD;AAAiD,MAAAG,UAAAC,WAAAC,MAAAvD,IAAAuB,IAAAC,IAAAM,IAAAC;AAAArC,WAAAE,MATrD;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAqD;AAAAA,IAAAC;AAAAA,IAAAiF,UAAAhH;AAAAA,IAAAiH,SAAAhH;AAAAA,IAAAiH,QAAA3G;AAAAA,IAAA4G,MAAA3G;AAAAA,IAAA,GAAAwB;AAAAA,EASI3D,IAAAA,IAAiDF,OAAAE,IAAAF,OAAA2D,UAAA3D,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,IAAA7B,OAAA8B,IAAA9B,OAAAoC,IAAApC,OAAAqC,OAAAsB,WAAA3D,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA,GAAAoC,KAAApC,EAAA,CAAA,GAAAqC,KAAArC,EAAA,CAAA;AARnD+D,QAAAA,KAAAzD,OAA0BgB,SAAAqH,wBAA1BrI,IAGAuI,WAAAhH,OAAYP,aAAZO,IACAiH,UAAAhH,OAAWR,aAAXQ,IACAiH,SAAA3G,OAAUd,aAAVc,IACA4G,OAAA3G,OAAgBf,SAAT,YAAPe;AAAgBgC,MAAAA;AAAArE,IAAA4D,CAAAA,MAAAA,aAAA5D,UAAAgJ,QASH3E,KAAA4E,MAAA;AAAA,IAAArF;AAAAA,IAAAoF;AAAAA,EAAAA,CAAuB,GAAChJ,OAAA4D,WAAA5D,QAAAgJ,MAAAhJ,QAAAqE,MAAAA,KAAArE,EAAA,EAAA;AAAAsE,MAAAA;AAAAtE,IAAA2D,EAAAA,MAAAA,YAAA3D,UAAA6I,YAMnCvE,KAAC,oBAAA,MAAWuE,EAAAA,MAAAA,UAAkB,SAAA,CAAE,GAAO7I,QAAA2D,UAAA3D,QAAA6I,UAAA7I,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA;AAAAyF,MAAAA;AAAA,SAAAzF,UAAA+D,MAAA/D,EAAA8I,EAAAA,MAAAA,WAAA9I,EAAA+I,EAAAA,MAAAA,UAAA/I,EAAA,EAAA,MAAA6D,QAAA7D,UAAAqE,MAAArE,EAAA,EAAA,MAAAsE,MAVzCmB,yBAAC,KACS,EAAA,WAAA,YACJ5B,MACAE,IACO,WAAAM,IACH,SAAA,eACC,UAAA,QACAyE,SACDC,QAERzE,UACF,GAAA,CAAA,GAAMtE,QAAA+D,IAAA/D,QAAA8I,SAAA9I,QAAA+I,QAAA/I,QAAA6D,MAAA7D,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAyF,MAAAA,KAAAzF,EAAA,EAAA,GAXNyF;AAWM;AC/CH,MAAMyD,2BAA2B;AAsBjC,SAAAC,SAAA3F,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAcDC,KAAAsD;AAAuD4F,MAAAA,SAAAxF,WAAAyF,gBAAA9K,UAAA+K,cAAAC,eAAAC,UAAA3F,MAAAtE,OAAAe;AAAAN,WAAAE,MAX3D;AAAA,IAAA6D,IAAAzD;AAAAA,IAAA8I;AAAAA,IAAAxF;AAAAA,IAAArF;AAAAA,IAAAgL;AAAAA,IAAAF;AAAAA,IAAAG;AAAAA,IAAAvG,KAAAqG;AAAAA,IAAA/J;AAAAA,IAAA,GAAAsE;AAAAA,EAAAA,IAWI3D,IAAuDF,OAAAE,IAAAF,OAAAoJ,SAAApJ,OAAA4D,WAAA5D,OAAAqJ,gBAAArJ,OAAAzB,UAAAyB,OAAAsJ,cAAAtJ,OAAAuJ,eAAAvJ,OAAAwJ,UAAAxJ,OAAA6D,MAAA7D,OAAAT,OAAAS,QAAAM,OAAA8I,UAAApJ,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAAqJ,iBAAArJ,EAAA,CAAA,GAAAzB,WAAAyB,EAAA,CAAA,GAAAsJ,eAAAtJ,EAAA,CAAA,GAAAuJ,gBAAAvJ,EAAA,CAAA,GAAAwJ,WAAAxJ,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAT,QAAAS,EAAA,CAAA,GAAAM,KAAAN,EAAA,EAAA;AAVrD,QAAAV,WAAAgB,OAAkCgB,SAAA4H,2BAAlC5I,IAYN2C,MAAYrB,OAAA,IAAoC;AAACC,MAAAA;AAAA7B,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAI/CvB,KAAAA,MAAMoB,IAAGjB,SAAQhC,QAAA6B,MAAAA,KAAA7B,EAAA,EAAA,GAFnBqD,oBACEiG,cACAzH,EACF;AAAC,MAAAC,IAAAM;AAAApC,YAAAuJ,iBAESzH,KAAAA,MAAA;AACJmB,QAAGjB,YAELiB,IAAGjB,QAAAuH,gBAAyBA,iBAAsB;AAAA,EAEnDnH,GAAAA,MAACmH,aAAa,GAACvJ,QAAAuJ,eAAAvJ,QAAA8B,IAAA9B,QAAAoC,OAAAN,KAAA9B,EAAA,EAAA,GAAAoC,KAAApC,EAAA,EAAA,IALlBmC,UAAUL,IAKPM,EAAe,GAElBqH,kBAAkBxG,KAAKoG,cAAc;AAAChH,MAAAA;AAAArC,YAAA4D,aAGnBvB,KAAAqH,SAAA;AAAA,IAAA9F;AAAAA,EAAoB,CAAA,GAAC5D,QAAA4D,WAAA5D,QAAAqC,MAAAA,KAAArC,EAAA,EAAA;AAAAqE,MAAAA;AAAArE,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAIvBiB,KAAAsF,cAAc,GAAC3J,QAAAqE,MAAAA,KAAArE,EAAA,EAAA;AACZ,QAAAsE,KAAA+E,iBAAiB,KAAE/H,QACvBmE,KAAAlH,YAAYiL;AAAQ9D,MAAAA;AAAA1F,YAAAV,YAAAU,EAAAoJ,EAAAA,MAAAA,WAAApJ,EAAAwJ,EAAAA,MAAAA,YAAAxJ,EAAA,EAAA,MAAA6D,QAAA7D,UAAAsE,MAAAtE,EAAA,EAAA,MAAAyF,MALhCC,KAAC,oBAAApG,UAAA,EAAO,GACFuE,MACKuF,SACE,WAAA/E,IACG,gBAAAC,IACJ,UAAAmB,IACL,MAAA,YACK+D,UACLvG,IACL,CAAA,GAAAjD,QAAAV,UAAAU,QAAAoJ,SAAApJ,QAAAwJ,UAAAxJ,QAAA6D,MAAA7D,QAAAsE,IAAAtE,QAAAyF,IAAAzF,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAAA6F,MAAAA;AAAA7F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACFyC,qCAAiB,WAAA+D,qBAAAA,GACf,UAAA;AAAA,IAAA,oBAAC,eACD,EAAA;AAAA,wBAAC,YAAU,CAAA,CAAA;AAAA,EAAA,EACb,CAAA,GAAO5J,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA;AAAA8F,MAAAA;AAAA,SAAA9F,EAAAT,EAAAA,MAAAA,SAAAS,UAAAqC,MAAArC,EAAA,EAAA,MAAA0F,MAdTI,MAAA,qBAAA,QAAA,EAAiB,WAAAzD,IAA+B,WAAA,YAAkB9C,OAChEmG,UAAAA;AAAAA,IAAAA;AAAAA,IAUAG;AAAAA,EAAAA,GAIF,GAAO7F,QAAAT,OAAAS,QAAAqC,IAAArC,QAAA0F,IAAA1F,QAAA8F,OAAAA,MAAA9F,EAAA,EAAA,GAfP8F;AAeO;ACxEJ,MAAM+D,4BAA4B;AAmBlC,SAAAC,UAAAtG,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAQDC,KAAAsD;AAAyDI,MAAAA,WAAAC,MAAAvD,IAAAuB;AAAA7B,WAAAE,MAL7D;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAsD;AAAAA,IAAAmG,OAAAlI;AAAAA,IAAA,GAAAgC;AAAAA,EAAAA,IAKI3D,IAAyDF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,OAAA+B,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA;AAJ3D+D,QAAAA,KAAAzD,OAA8BgB,SAAAuI,4BAA9BvJ,IAEAyJ,QAAAlI,OAASP,aAATO;AAASC,MAAAA;AAAA9B,IAAA4D,CAAAA,MAAAA,aAAA5D,SAAA+J,SAIkDjI,KAAAkI,YAAA;AAAA,IAAApG;AAAAA,IAAAmG;AAAAA,EAAAA,CAA4B,GAAC/J,OAAA4D,WAAA5D,OAAA+J,OAAA/J,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA;AAAAoC,MAAAA;AAAA,SAAApC,EAAA+D,CAAAA,MAAAA,MAAA/D,SAAA6D,QAAA7D,EAAA,EAAA,MAAA8B,MAAnFM,KAAC,oBAAA,KAAA,EAAY,WAAA,gBAAgByB,MAAUE,IAAe,WAAAjC,IAAiC,GAAA9B,OAAA+D,IAAA/D,OAAA6D,MAAA7D,QAAA8B,IAAA9B,QAAAoC,MAAAA,KAAApC,EAAA,EAAA,GAAvFoC;AAAuF;ACzBzF,MAAM6H,0BAA0B;AA6BhC,SAAAC,QAAA1G,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAeDC,KAAAsD;AAAqDE,MAAAA,OAAAC,UAAAC,WAAAuG,MAAAtG,MAAAvD,IAAAuB,IAAAC,IAAAM,IAAAC,IAAAyB;AAAA9D,WAAAE,MAZzD;AAAA,IAAAuD,QAAAnD;AAAAA,IAAAoD;AAAAA,IAAAK,IAAAlC;AAAAA,IAAA8B;AAAAA,IAAAC;AAAAA,IAAAuG;AAAAA,IAAAnG,OAAAlC;AAAAA,IAAAmC,MAAA7B;AAAAA,IAAA8B,cAAAJ;AAAAA,IAAAK,QAAA9B;AAAAA,IAAA,GAAAwB;AAAAA,EAAAA,IAYI3D,IAAqDF,OAAAE,IAAAF,OAAA0D,OAAA1D,OAAA2D,UAAA3D,OAAA4D,WAAA5D,OAAAmK,MAAAnK,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,IAAA7B,OAAA8B,IAAA9B,OAAAoC,IAAApC,QAAAqC,IAAArC,QAAA8D,qBAAAJ,QAAA1D,EAAA,CAAA,GAAA2D,WAAA3D,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAAmK,OAAAnK,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA,GAAAoC,KAAApC,EAAA,CAAA,GAAAqC,KAAArC,EAAA,EAAA,GAAA8D,mBAAA9D,EAAA,EAAA;AAXvDyD,QAAAA,SAAAnD,OAAcgB,cAAdhB,IAEIhB,WAAAuC,OAAiCP,SAAA2I,0BAAjCpI,IAIJmC,QAAAlC,OAAaR,cAAbQ,IACAmC,OAAA7B,OAAQd,aAARc,IAEA+B,SAAA9B,OAAkBf,SAAT,YAATe;AAAkBgC,MAAAA;AAAArE,IAAAyD,EAAAA,MAAAA,UAAAzD,EAAA0D,EAAAA,MAAAA,SAAA1D,EAAA4D,EAAAA,MAAAA,aAAA5D,UAAAmK,QAAAnK,EAAA,EAAA,MAAAgE,SAAAhE,EAAA,EAAA,MAAAiE,QAAAjE,EAAA,EAAA,MAAAmE,UAQLE,KAAA+F,QAAA;AAAA,IAAAxG;AAAAA,IAAAH;AAAAA,IAAAC;AAAAA,IAAAyG;AAAAA,IAAAnG;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,EAAAA,CAQV,GAACnE,QAAAyD,QAAAzD,QAAA0D,OAAA1D,QAAA4D,WAAA5D,QAAAmK,MAAAnK,QAAAgE,OAAAhE,QAAAiE,MAAAjE,QAAAmE,QAAAnE,QAAAqE,MAAAA,KAAArE,EAAA,EAAA;AAAAsE,MAAAA;AAAAtE,YAAA8D,oBAGWQ,KAAAJ,aAAA;AAAA,IAAAA,cACKJ;AAAAA,EACf,CAAA,GAAC9D,QAAA8D,kBAAA9D,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA;AAAAyF,MAAAA;AAAAzF,IAAA2D,EAAAA,MAAAA,YAAA3D,UAAAsE,MAHJmB,KAAA,oBAAA,QACa,EAAA,WAAAnB,IAIVX,SAAAA,CACH,GAAO3D,QAAA2D,UAAA3D,QAAAsE,IAAAtE,QAAAyF,MAAAA,KAAAzF,EAAA,EAAA;AAAA0F,MAAAA;AAAA1F,SAAAA,EAAA,EAAA,MAAAV,YAAAU,EAAA6D,EAAAA,MAAAA,QAAA7D,EAAAqE,EAAAA,MAAAA,MAAArE,UAAAyF,MAnBTC,KAAA,oBAACpG,YACS,WAAA,WAAS,GACbuE,MACO,WAAAQ,IAUXoB,cAOF,GAAUzF,QAAAV,UAAAU,QAAA6D,MAAA7D,QAAAqE,IAAArE,QAAAyF,IAAAzF,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA,GApBV0F;AAoBU;ACtEP,MAAM2E,yBAAyB;AAqC/B,SAAAC,OAAA9G,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GASDC,KAAAsD;AAAmDG,MAAAA,UAAA4G,KAAA1G,MAAA2G,OAAAlK;AAAAN,WAAAE,MANvD;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAqD;AAAAA,IAAA4G;AAAAA,IAAAC;AAAAA,IAAA,GAAA3G;AAAAA,EAAAA,IAMI3D,IAAmDF,OAAAE,IAAAF,OAAA2D,UAAA3D,OAAAuK,KAAAvK,OAAA6D,MAAA7D,OAAAwK,OAAAxK,OAAAM,OAAAqD,WAAA3D,EAAA,CAAA,GAAAuK,MAAAvK,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAwK,QAAAxK,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AALrD,QAAA+D,KAAAzD,OAA2BgB,SAAA+I,yBAA3B/J,IAcOuB,KAAA0I,OAAOC;AAAK1I,MAAAA;AAAA9B,SAAAA,EAAA,CAAA,MAAA+D,MAAA/D,EAAA2D,CAAAA,MAAAA,YAAA3D,EAAA6D,CAAAA,MAAAA,QAAA7D,SAAA6B,MANnBC,yBAAC,KACS,EAAA,WAAA,UACJ+B,GAAAA,MACO,YAAA,UACPE,IACI,SAAA,QACH,KAAAlC,IACI,UAAA,QAER8B,SAAAA,CACH,GAAM3D,OAAA+D,IAAA/D,OAAA2D,UAAA3D,OAAA6D,MAAA7D,OAAA6B,IAAA7B,QAAA8B,MAAAA,KAAA9B,EAAA,EAAA,GAVN8B;AAUM;ACtDH,SAAA2I,wBAAAjH,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,CAAA,GACL;AAAA,IAAA0D;AAAAA,IAAAjG;AAAAA,EAAAA,IAA4B8F;AAAK,MAAAtD,IAAAI;AAAAN,WAAAtC,WACyB4C,KAAA;AAAA,IAAAoK,SAAA;AAAA,IAAAhN;AAAAA,EAAuBsC,GAAAA,OAAAtC,SAAAsC,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GAAAE,KAAvBI;AAA1D,QAAAqK,QAA2CzK;AAAmD2B,MAAAA;AAAA,SAAA7B,EAAA2D,CAAAA,MAAAA,YAAA3D,SAAA2K,SAEvF9I,KAAA,oBAAA,uBAAA,UAAA,EAAwC8I,OAAQhH,SAAS,CAAA,GAAkC3D,OAAA2D,UAAA3D,OAAA2K,OAAA3K,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA,GAA3F6B;AAA2F;ACQ7F,MAAM+I,sBAAsBC,UAAkD;AAAA,EAC1EC,QAA4B;AAAA,IAACC,OAAO;AAAA,EAAI;AAAA,EAEjD,OAAOC,cAAc;AAAA,EAErB,OAAOC,yBAAyBF,OAAkC;AAEzD,WAAA;AAAA,MAACA;AAAAA,IAAK;AAAA,EAAA;AAAA,EAGNG,kBAAkBH,OAAcI,MAAuB;AAC9D,SAAK3H,MAAM4H,QAAQ;AAAA,MAACL;AAAAA,MAAOI;AAAAA,IAAAA,CAAK;AAAA,EAAA;AAAA,EAGzBE,SAAoB;AACrB,UAAA;AAAA,MAACN;AAAAA,QAAS,KAAKD;AAErB,QAAIC,OAAO;AACT,YAAMO,UAAU,OAAOP,OAAOO,WAAY,WAAWP,MAAMO,UAAU;AAE9D,aAAA,oBAAC,QAAMA,UAAQ,QAAA,CAAA;AAAA,IAAA;AAGxB,WAAO,KAAK9H,MAAMG;AAAAA,EAAAA;AAEtB;AC5CO,MAAM4H,0BAA0B;AAYhC,SAAAC,OAAAhI,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAQDC,KAAAsD;AAAoDG,MAAAA,UAAAC,WAAAC,MAAAvD;AAAAN,WAAAE,MALxD;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAqD;AAAAA,IAAAC;AAAAA,IAAA,GAAAC;AAAAA,EAAAA,IAKI3D,IAAoDF,OAAAE,IAAAF,OAAA2D,UAAA3D,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,OAAAqD,WAAA3D,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAJlDV,QAAAA,WAAAgB,OAAiCgB,SAAAiK,0BAAjCjL;AAAiCuB,MAAAA;AAAA7B,WAAA4D,aAOsB/B,KAAA4J,OAAA;AAAA,IAAA7H;AAAAA,EAAkB,CAAA,GAAC5D,OAAA4D,WAAA5D,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA;AAAA8B,MAAAA;AAAA9B,SAAAA,EAAA,CAAA,MAAAV,YAAAU,EAAA2D,CAAAA,MAAAA,YAAA3D,EAAA6D,CAAAA,MAAAA,QAAA7D,UAAA6B,MAA9EC,KAAC,oBAAAxC,UAAA,EAAgB,WAAA,UAAauE,GAAAA,MAAM,eAAA,IAAuB,WAAAhC,IACjD,SACV,CAAA,GAAU7B,OAAAV,UAAAU,OAAA2D,UAAA3D,OAAA6D,MAAA7D,QAAA6B,IAAA7B,QAAA8B,MAAAA,KAAA9B,EAAA,EAAA,GAFV8B;AAEU;ACZP,MAAM4J,+BAA+B;AA+BrC,SAAAC,YAAAnI,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAYDC,KAAAsD;AAA8D,MAAA8F,cAAAsC,YAAAC,UAAAC,YAAAjI,MAAAvD,IAAAuB,IAAAC;AAAA9B,WAAAE,MATlE;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAiK,KAAA1I;AAAAA,IAAA+J;AAAAA,IAAAG,OAAAjK;AAAAA,IAAA+J;AAAAA,IAAAC;AAAAA,IAAA7I,KAAAqG;AAAAA,IAAA,GAAAzF;AAAAA,EASI3D,IAAAA,IAA8DF,OAAAE,IAAAF,OAAAsJ,cAAAtJ,OAAA4L,YAAA5L,OAAA6L,UAAA7L,OAAA8L,YAAA9L,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,IAAA7B,OAAA8B,OAAAwH,eAAAtJ,EAAA,CAAA,GAAA4L,aAAA5L,EAAA,CAAA,GAAA6L,WAAA7L,EAAA,CAAA,GAAA8L,aAAA9L,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA;AARhE+D,QAAAA,KAAAzD,OAAiCgB,SAAAoK,+BAAjCpL,IACAiK,MAAA1I,OAAOP,aAAPO;AAAOO,MAAAA;AAAApC,WAAA8B,MAEPM,KAAAN,OAAUR,UAAVQ,IAAAA,IAAU9B,OAAA8B,IAAA9B,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AAAV,QAAA+L,QAAA3J,IAOFa,MAAYrB,OAAA,IAAkC,GAC9CoK,aAAmBpK,OAAA,IAAkC,GACrD,CAAAqK,WAAAC,YAAA,IAAkC1L,UAAU,GAC5C,CAAA2L,cAAAC,eAAA,IAAwC5L,UAAU,GAClD,CAAA6L,YAAAC,aAAA,IAAoC9L,WAAW,GAE/C,CAAA+L,UAAAC,WAAA,IAAgChM,UAAU;AAAC6B,MAAAA;AAAArC,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAGqCf,KAAAA,MAAMY,IAAGjB,SAAQhC,QAAAqC,MAAAA,KAAArC,EAAA,EAAA,GAAjGqD,oBAAkEiG,cAAcjH,EAAiB;AAAC,MAAAgC,IAAAC;AAAAtE,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAExFiB,KAAAA,MAAA;AAAA,QACHpB,CAAAA,IAAGjB;AAAA;AAER,UAAAyK,WAAiBC,eAAezJ,IAAGjB,QAAA2K,UAAmB;AAAC,QAEnDF,UAAQ;AAAA,UACJA,EAAAA,oBAAQG;AAAuB;AAErC,YAAAC,eAAAA,MAAA;AACEX,qBAAaO,SAAQR,SAAU;AAAA,MAAC;AAG1BtJ,eAAAA,iBAAkB,UAAUkK,cAAY;AAAA,QAAAC,SAAA;AAAA,MAAA,CAAiB;AAEjEC,YAAAA,KAAA,IAAAC,gBAAAC,CAAA,YAAA;AACEb,wBAAgBa,QAAO,CAAA,EAAAC,YAAAC,MAAsB;AAAA,MAAA,CAAC;AAGhDJ,aAAAA,GAAEK,QAASX,QAAQ,GAEnBI,gBAAc,MAAA;AAGJjK,iBAAAA,oBAAqB,UAAUiK,YAAY,GAEnDE,GAAEM,UAAWZ,QAAQ,GACrBM,GAAEO,WAAY;AAAA,MAAC;AAAA,IAAA;AAInB,UAAAC,iBAAAA,MAAA;AACErB,mBAAY1M,OAAAgO,OAAe;AAAA,IAAC,GAG9BC,eAAAA,MAAA;AACErB,sBAAe5M,OAAAkO,WAAmB;AAAA,IAAC;AAGrC/K,WAAAA,OAAAA,iBAAwB,UAAUkK,gBAAY;AAAA,MAAAC,SAAA;AAAA,IAAiB,CAAA,GAC/DtN,OAAAmD,iBAAwB,UAAU8K,YAAY,GAE9CrB,gBAAe5M,OAAAkO,WAAmB,GAElCb,kBAAc,MAAA;AAGZrN,aAAAoD,oBAA2B,UAAUiK,cAAY,GACjDrN,OAAAoD,oBAA2B,UAAU6K,YAAY;AAAA,IAAC;AAAA,EAAA,GAEnDnJ,KAAA,CAAA,GAAEtE,QAAAqE,IAAArE,QAAAsE,OAAAD,KAAArE,EAAA,EAAA,GAAAsE,KAAAtE,EAAA,EAAA,IAjDLmC,UAAUkC,IAiDPC,EAAE;AAEL,QAAA0D,MAAY+D,MAAK/M,QACjBmO,SAAed,aAAarE,OAAOqE,aAAaE,YAAYA,WAAY,GACxEoB,YAAkBR,SAASrF,KAAAC,IAASD,KAAA8F,MAAY3B,YAAYkB,SAAUnF,GAAG,IAAC,GAAO,CAAA,IAAK,GACtF6F,UAAgBV,SAASrF,KAAAgG,MAAY7B,YAAYE,gBAAgBgB,SAAUnF,GAAG,QAAS;AAAA,MAAAvC,IAAAC;AAAA1F,IAAA2N,EAAAA,MAAAA,aAAA3N,EAAAuM,EAAAA,MAAAA,YAAAvM,EAAAqM,EAAAA,MAAAA,cAAArM,UAAA6L,YAAA7L,EAAA,EAAA,MAAAmM,gBAAAnM,EAAA,EAAA,MAAAiM,aAAAjM,EAAA,EAAA,MAAA6N,WAE7EpI,KAAAA,MAAA;AACA,eAAA;AAAA,MAAAkI;AAAAA,MAAApD,KAEDgC;AAAAA,MAAQF;AAAAA,MAAAF;AAAAA,MAAAF;AAAAA,MAAA4B;AAAAA,IAAAA,CAAA;AAAA,EAAA,GAMdnI,KAACiI,CAAAA,WAAWpB,UAAUF,YAAYR,UAAUM,cAAcF,WAAW4B,OAAO,GAAC7N,QAAA2N,WAAA3N,QAAAuM,UAAAvM,QAAAqM,YAAArM,QAAA6L,UAAA7L,QAAAmM,cAAAnM,QAAAiM,WAAAjM,QAAA6N,SAAA7N,QAAAyF,IAAAzF,QAAA0F,OAAAD,KAAAzF,EAAA,EAAA,GAAA0F,KAAA1F,EAAA,EAAA,IAThFmC,UAAUsD,IASPC,EAA6E;AAACG,MAAAA;AAAA,OAAA;AAAA,QAG3E,CAACiG,cAAcC,MAAK/M,WAAa,GAAA;AAAE,YAAA;AAAW+O,YAAAA;AAAAA,IAAAA;AAAA,QAE9C1B,eAAiB,IAAA;AAAAvG,UAAAA;AAAA9F,QAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAIR0C,OAAAzG,CAASA,OAAAA,KAAKiN,cAAcjN,GAAE2O,YAAa,IAAC1M,QAAatB,QAAA8F,QAAAA,OAAA9F,EAAA,EAAA;AAAAkG,UAAAA;AAAAlG,QAAA+L,EAAAA,MAAAA,MAAA/L,CAAAA,KAAAA,UAAA8L,cAO7D5F,OAAA4F,WAAWC,QAAQ,GAAC/L,QAAA+L,MAAA,CAAA,GAAA/L,QAAA8L,YAAA9L,QAAAkG,QAAAA,OAAAlG,EAAA,EAAA;AAAAmG,UAAAA;AAAAnG,gBAAAkG,QARvBC,OAAC,oBAAA,KACM,EAAA,KAAAL,MACK,UAAA,GACC,WAAC,GACA,YAAC,GAEJ,UAAA,YAERI,UAAAA,KAAAA,IACH,GAAMlG,QAAAkG,MAAAlG,QAAAmG,QAAAA,OAAAnG,EAAA,EAAA;AAAAqG,UAAAA;AAAArG,QAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAECiD,OAAAnE,CAAS7C,SAAAA,OAAKmN,YAAYnN,KAAE2O,YAAa,IAAC1M,QAAatB,QAAAqG,QAAAA,OAAArG,EAAA,EAAA;AAC5CsG,YAAAA,MAAA2H,KAAAzD,MAAWD,GAAG;AAAC/D,UAAAA;AAAAxG,gBAAAsG,OAFjCE,MAAA,oBAAA,OAAA,EACO,KAAAH,MACE,OAAA;AAAA,QAAA8G,QAAS7G;AAAAA,MAChB,EAAA,CAAA,GAAAtG,QAAAsG,KAAAtG,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA;AAAAyG,UAAAA;AAAAzG,QAAAmG,EAAAA,MAAAA,QAAAnG,UAAAwG,OAfCC,OAEHN,qBAAAA,YAAAA,EAAAA,UAAAA;AAAAA,QAAAA;AAAAA,QAUAK;AAAAA,MAAAA,EAGE,CAAA,CAAA,GAELxG,QAAAmG,MAAAnG,QAAAwG,KAAAxG,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA,GAjBD6F,MAAOY;AAiBNsH,YAAAA;AAAAA,IAAAA;AAAAjI,QAAAA;AAAA9F,QAAAA,EAAA2N,EAAAA,MAAAA,aAAA3N,EAAAuM,EAAAA,MAAAA,YAAAvM,EAAA4L,EAAAA,MAAAA,cAAA5L,UAAAqM,cAAArM,EAAA,EAAA,MAAA+L,SAAA/L,EAAA,EAAA,MAAA8L,cAAA9L,EAAA,EAAA,MAAA6N,SAAA;AAAA3H,UAAAA;AAAAlG,QAAA2N,EAAAA,MAAAA,aAAA3N,EAAA,EAAA,MAAAuM,YAAAvM,EAAA4L,EAAAA,MAAAA,cAAA5L,EAAA,EAAA,MAAAqM,cAAArM,UAAA8L,cAGwC5F,OAAAA,CAAAgI,MAAAC,eAAA;AACzC,cAAAC,YAAkBT,YAAYQ,YAC9BE,OAAavC,WAAWoC,IAAI,GAC5BI,MAAY1C,aAAaA,WAAWsC,MAAME,SAAS,IAAIA;AAGrD,eAAA,oBAAC,OACY,WAAC,GACA,YAAA,GAEH,UAAA,YACF,OAAA;AAAA,UAAAG,KAAMH,aAAa/B,aAAaE,YAAYA;AAAAA,QAAAA,GAElD8B,qBACH;AAAA,MAEHrO,GAAAA,QAAA2N,WAAA3N,QAAAuM,UAAAvM,QAAA4L,YAAA5L,QAAAqM,YAAArM,QAAA8L,YAAA9L,QAAAkG,QAAAA,OAAAlG,EAAA,EAAA,GAhBM8F,OAAAiG,MAAK3D,MAAOuF,WAAWE,OAAO,EAAC/Q,IAAKoJ,IAgB1C,GAAClG,QAAA2N,WAAA3N,QAAAuM,UAAAvM,QAAA4L,YAAA5L,QAAAqM,YAAArM,QAAA+L,OAAA/L,QAAA8L,YAAA9L,QAAA6N,SAAA7N,QAAA8F;AAAAA,IAAA;AAAAA,aAAA9F,EAAA,EAAA;AAhBK8F,UAAAA;AAAAA,EAAAA;AAxBT,QAAAnC,WAAiBkC;AAyCiE,MAAAC,KAAAI;AAAAlG,YAAAmN,UAE/BjH,MAAA;AAAA,IAAAiH;AAAAA,EAAQnN,GAAAA,QAAAmN,QAAAnN,QAAAkG,OAAAA,MAAAlG,EAAA,EAAA,GAAA8F,MAARI;AAAnD,QAAAsI,eAAoC1I;AAAmCK,MAAAA;AAAAnG,IAAA2D,EAAAA,MAAAA,YAAA3D,UAAAwO,gBAInErI,MAEM,oBAAA,OAFI6F,EAAAA,iBAAmBwC,qBACnB,SACV,CAAA,GAAMxO,QAAA2D,UAAA3D,QAAAwO,cAAAxO,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AAAAqG,MAAAA;AAAArG,SAAAA,EAAA+D,EAAAA,MAAAA,MAAA/D,UAAA6D,QAAA7D,EAAA,EAAA,MAAAmG,OAHRE,0BAAC,KAAY,EAAA,WAAA,eAAkBxC,GAAAA,MAAUE,IAAa,UAAA,YAAgBd,KACpEkD,UAGF,KAAA,GAAMnG,QAAA+D,IAAA/D,QAAA6D,MAAA7D,QAAAmG,KAAAnG,QAAAqG,OAAAA,MAAArG,EAAA,EAAA,GAJNqG;AAIM;AAIV,SAASqG,eAAeC,YAA+B;AACrD,MAAI8B,YAAY9B;AAET8B,SAAAA,aAAa,CAACrP,cAAcqP,SAAS;AAC1CA,gBAAYA,UAAU9B;AAGjB8B,SAAAA;AACT;ACpMO,MAAMC,wBAAwB;AAkB9B,SAAAC,MAAAnL,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAYDC,KAAAsD;AAAiD,MAAAI,WAAAyF,gBAAA9K,UAAA+K,cAAAE,UAAA3F,MAAAtE,OAAAe;AAAAN,WAAAE,MATrD;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAsD;AAAAA,IAAArF;AAAAA,IAAAgB;AAAAA,IAAA8J;AAAAA,IAAAG;AAAAA,IAAAvG,KAAAqG;AAAAA,IAAA,GAAAzF;AAAAA,EASI3D,IAAAA,IAAiDF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAAqJ,gBAAArJ,OAAAzB,UAAAyB,OAAAsJ,cAAAtJ,OAAAwJ,UAAAxJ,OAAA6D,MAAA7D,OAAAT,OAAAS,OAAAM,OAAAsD,YAAA5D,EAAA,CAAA,GAAAqJ,iBAAArJ,EAAA,CAAA,GAAAzB,WAAAyB,EAAA,CAAA,GAAAsJ,eAAAtJ,EAAA,CAAA,GAAAwJ,WAAAxJ,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAT,QAAAS,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAR/C,QAAAV,WAAAgB,OAA+BgB,SAAAoN,wBAA/BpO,IAUN2C,MAAYrB,OAAA,IAAoC;AAACC,MAAAA;AAAA7B,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAI/CvB,KAAAA,MAAMoB,IAAGjB,SAAQhC,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA,GAFnBqD,oBACEiG,cACAzH,EACF,GAEA4H,kBAAkBxG,KAAKoG,cAAc;AAACvH,MAAAA;AAAA9B,YAAA4D,aAGpB9B,KAAA8M,MAAA;AAAA,IAAAhL;AAAAA,EAAiB,CAAA,GAAC5D,QAAA4D,WAAA5D,QAAA8B,MAAAA,KAAA9B,EAAA,EAAA;AAAAoC,MAAAA;AAAApC,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAGnBhB,KAAAyM,WAAW,GAAC7O,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AACTqC,QAAAA,KAAAgH,iBAAiB,KAAE/H,QACjB+C,MAAC9F,YAAYiL,WAAW,KAAElI,QAChCgD,KAAA/F,YAAYiL;AAAQ/D,MAAAA;AAAAzF,YAAAV,YAAAU,EAAAwJ,EAAAA,MAAAA,YAAAxJ,EAAA6D,EAAAA,MAAAA,QAAA7D,EAAA,EAAA,MAAAqC,MAAArC,UAAAqE,MAAArE,EAAA,EAAA,MAAAsE,MALhCmB,yBAACnG,UAAO,EAAA,GACFuE,MACO,WAAAzB,IACG,gBAAAC,IACE,kBAAAgC,IACN,UAAAC,IACAkF,UACLvG,KACA,MAAA,QACL,CAAA,GAAAjD,QAAAV,UAAAU,QAAAwJ,UAAAxJ,QAAA6D,MAAA7D,QAAAqC,IAAArC,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAyF,MAAAA,KAAAzF,EAAA,EAAA;AAAA0F,MAAAA;AAAA1F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACFsC,KAAA,oBAAA,QAAA,EAAiB,WAAAoJ,kBAAkB,EAAA,CAAK,GAAA9O,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAAA6F,MAAAA;AAAA,SAAA7F,EAAAT,EAAAA,MAAAA,SAAAS,UAAA8B,MAAA9B,EAAA,EAAA,MAAAyF,MAX1CI,MAAA,qBAAA,OAAA,EAAgB,WAAA/D,IAA4B,WAAA,SAAevC,OACzDkG,UAAAA;AAAAA,IAAAA;AAAAA,IAUAC;AAAAA,EAAAA,GACF,GAAM1F,QAAAT,OAAAS,QAAA8B,IAAA9B,QAAAyF,IAAAzF,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA,GAZN6F;AAYM;AC5CH,MAAMkJ,yBAAyB;AAqB/B,SAAAC,OAAAxL,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAiBDC,KAAAsD;AAAmDG,MAAAA,UAAA0F,gBAAA9K,UAAA+K,cAAAiB,KAAAf,UAAA3F,MAAAvD,IAAAuB,IAAAC,IAAAM,IAAAC,IAAAgC;AAAArE,WAAAE,MAdvD;AAAA,IAAA6D,IAAAzD;AAAAA,IAAA2O,QAAApN;AAAAA,IAAA8B;AAAAA,IAAA0F;AAAAA,IAAA9K;AAAAA,IAAAsK,UAAA/G;AAAAA,IAAAyI;AAAAA,IAAAzB,SAAA1G;AAAAA,IAAA2G,QAAA1G;AAAAA,IAAAmH;AAAAA,IAAAvG,KAAAqG;AAAAA,IAAAkB,OAAAnG;AAAAA,IAAA,GAAAR;AAAAA,EAAA,IAcI3D,IAAmDF,OAAAE,IAAAF,OAAA2D,UAAA3D,OAAAqJ,gBAAArJ,OAAAzB,UAAAyB,OAAAsJ,cAAAtJ,OAAAuK,KAAAvK,OAAAwJ,UAAAxJ,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,IAAA7B,QAAA8B,IAAA9B,QAAAoC,IAAApC,QAAAqC,IAAArC,QAAAqE,OAAAV,WAAA3D,EAAA,CAAA,GAAAqJ,iBAAArJ,EAAA,CAAA,GAAAzB,WAAAyB,EAAA,CAAA,GAAAsJ,eAAAtJ,EAAA,CAAA,GAAAuK,MAAAvK,EAAA,CAAA,GAAAwJ,WAAAxJ,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,EAAA,GAAAoC,KAAApC,EAAA,EAAA,GAAAqC,KAAArC,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA;AAbjD,QAAAV,WAAAgB,OAAgCgB,SAAAyN,yBAAhCzO,IACJ2O,SAAApN,OAAaP,cAAbO,IAIAgH,WAAA/G,OAAYR,aAAZQ,IAEAgH,UAAA1G,OAAWd,aAAXc,IACA2G,SAAA1G,OAAUf,aAAVe,IAGAmI,QAAAnG,OAAS/C,aAAT+C,IAIFpB,MAAYrB,OAAA,IAAqC;AAAC0C,MAAAA;AAAAtE,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAIhDkB,KAAAA,MAAMrB,IAAGjB,SAAQhC,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GAFnBqD,oBACEiG,cACAhF,EACF,GAEAmF,kBAAkBxG,KAAKoG,cAAc;AAK0B,QAAA5D,KAAA8E,OAAOC;AAAK9E,MAAAA;AAAA1F,IAAAiP,EAAAA,MAAAA,UAAAjP,EAAA,EAAA,MAAA6I,YAAA7I,EAAA8I,EAAAA,MAAAA,WAAA9I,EAAA,EAAA,MAAA+I,UAAA/I,UAAAyF,MAA5DC,KAAAwJ,OAAA;AAAA,IAAAD;AAAAA,IAAApG;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAwB,KAAgD9E;AAAAA,EAAa,CAAA,GAACzF,QAAAiP,QAAAjP,QAAA6I,UAAA7I,QAAA8I,SAAA9I,QAAA+I,QAAA/I,QAAAyF,IAAAzF,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAAA6F,MAAAA;AAAA7F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAG3CyC,MAAAsJ,cAAc,GAACnP,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA;AAAY,QAAA8F,MAAAvH,YAAYiL;AAAQtD,MAAAA;AAAAlG,IAAA,EAAA,MAAAV,YAAAU,EAAA2D,EAAAA,MAAAA,YAAA3D,EAAA6D,EAAAA,MAAAA,QAAA7D,UAAA8F,OAA7EI,MAAA,oBAAC5G,YAAO,GAAKuE,MAAiB,WAAAgC,KAA2B,UAAAC,KAA2B7C,KAC1E,UACV,GAAUjD,QAAAV,UAAAU,QAAA2D,UAAA3D,QAAA6D,MAAA7D,QAAA8F,KAAA9F,QAAAkG,OAAAA,MAAAlG,EAAA,EAAA;AAAAmG,MAAAA;AAAAnG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACO+C,MAAAiJ,mBAAmB,GAACpP,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AAAAqG,MAAAA;AAAArG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAG/BiD,MAAC,oBAAA,iBAAA,CAAkB,CAAA,GAAArG,QAAAqG,OAAAA,MAAArG,EAAA,EAAA;AAAAsG,MAAAA;AAAAtG,YAAA6I,YADrBvC,MAAC,oBAAA,MAAA,EAAWuC,MAAAA,UACVxC,UAAAA,KACF,GAAOrG,QAAA6I,UAAA7I,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA;AAAAwG,MAAAA;AAAAxG,IAAA8I,EAAAA,MAAAA,WAAA9I,UAAAsG,OAJXE,MAMO,oBAAA,UANU,WAAAL,KACf,UAAC,oBAAA,KAAA,EAAO,IAAA,QAAe,SAAA,gBAAwB2C,SAC7CxC,eAGF,EACF,CAAA,GAAOtG,QAAA8I,SAAA9I,QAAAsG,KAAAtG,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA;AAAAyG,MAAAA;AAAAzG,SAAAA,EAAAkG,EAAAA,MAAAA,OAAAlG,UAAAwG,OAAAxG,EAAA,EAAA,MAAA0F,MAdTe,2BAAA,OACU,EAAA,WAAA,UACG,WAAAf,IACK,mBAAA,IAEhBQ,UAAAA;AAAAA,IAAAA;AAAAA,IAGAM;AAAAA,EAAAA,GAOF,GAAMxG,QAAAkG,KAAAlG,QAAAwG,KAAAxG,QAAA0F,IAAA1F,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA,GAfNyG;AAeM;ACrEH,MAAM4I,yBAAyB;AAoB/B,SAAAC,OAAA9L,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAaDC,KAAAsD;AAAmD,MAAA4F,SAAAxF,WAAArF,UAAA+K,cAAAC,eAAAC,UAAA3F,MAAAtE,OAAAe;AAAAN,WAAAE,MAVvD;AAAA,IAAA6D,IAAAzD;AAAAA,IAAA8I;AAAAA,IAAAxF;AAAAA,IAAArF;AAAAA,IAAAgL;AAAAA,IAAAC;AAAAA,IAAAvG,KAAAqG;AAAAA,IAAA/J;AAAAA,IAAA,GAAAsE;AAAAA,EAAAA,IAUI3D,IAAmDF,OAAAE,IAAAF,OAAAoJ,SAAApJ,OAAA4D,WAAA5D,OAAAzB,UAAAyB,OAAAsJ,cAAAtJ,OAAAuJ,eAAAvJ,OAAAwJ,UAAAxJ,OAAA6D,MAAA7D,OAAAT,OAAAS,OAAAM,OAAA8I,UAAApJ,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAAzB,WAAAyB,EAAA,CAAA,GAAAsJ,eAAAtJ,EAAA,CAAA,GAAAuJ,gBAAAvJ,EAAA,CAAA,GAAAwJ,WAAAxJ,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAT,QAAAS,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AATjD,QAAAV,WAAAgB,OAAgCgB,SAAA+N,yBAAhC/O,IAWN2C,MAAYrB,OAAA,IAAoC;AAACC,MAAAA;AAAA7B,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAI/CvB,KAAAA,MAAMoB,IAAGjB,SAAQhC,QAAA6B,MAAAA,KAAA7B,EAAA,EAAA,GAFnBqD,oBACEiG,cACAzH,EACF;AAAC,MAAAC,IAAAM;AAAApC,YAAAuJ,iBAESzH,KAAAA,MAAA;AACJmB,QAAGjB,YAELiB,IAAGjB,QAAAuH,gBAAyBA,iBAAsB;AAAA,EAAA,GAEnDnH,MAACmH,aAAa,GAACvJ,QAAAuJ,eAAAvJ,QAAA8B,IAAA9B,QAAAoC,OAAAN,KAAA9B,EAAA,EAAA,GAAAoC,KAAApC,EAAA,EAAA,IALlBmC,UAAUL,IAKPM,EAAe;AAACC,MAAAA;AAAArC,YAAA4D,aAIJvB,KAAAkN,QAAA;AAAA,IAAA3L;AAAAA,EAAmB,CAAA,GAAC5D,QAAA4D,WAAA5D,QAAAqC,MAAAA,KAAArC,EAAA,EAAA;AACjBqE,QAAAA,KAAA+E,UAAU,KAAE9H,QACNgD,KAAAiF,gBAAgB,KAAEjI,QAQ3BmE,KAAA8D,kBAAa,MAAaH;AAAO1D,MAAAA;AAAA1F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAC/BsC,KAAA8J,eAAe,GAACxP,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AACZ6F,QAAAA,MAAAtH,WAAW,KAAE+C,QACZwE,OAACvH,YAAYiL,WAAW,KAAElI,QAChC4E,MAAA3H,YAAYiL;AAAQrD,MAAAA;AAAAnG,YAAAV,YAAAU,EAAA6D,EAAAA,MAAAA,QAAA7D,EAAA6F,EAAAA,MAAAA,OAAA7F,EAAA,EAAA,MAAA8F,OAAA9F,UAAAkG,OAAAlG,EAAA,EAAA,MAAAyF,MANhCU,0BAAC7G,UAAO,EAAA,GACFuE,MACK,SAAA4B,IACE,WAAAC,IACI,iBAAAG,KACC,kBAAAC,KACN,UAAAI,KACL,MAAA,YACAjD,IACL,CAAA,GAAAjD,QAAAV,UAAAU,QAAA6D,MAAA7D,QAAA6F,KAAA7F,QAAA8F,KAAA9F,QAAAkG,KAAAlG,QAAAyF,IAAAzF,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AAAAqG,MAAAA;AAAArG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACFiD,MAGO,qBAAA,QAHD,EAAA,mBAAuB,WAAAoJ,oBAC3B,GAAA,UAAA;AAAA,IAAmC,oBAAA,QAAA,EAAlB,WAAAC;IACkB,oBAAA,QAAA,EAAlB,WAAAC,aAAAA,EAAc,CAAA;AAAA,EAAA,EACjC,CAAA,GAAO3P,QAAAqG,OAAAA,MAAArG,EAAA,EAAA;AAAAsG,MAAAA;AAAA,SAAAtG,EAAAT,EAAAA,MAAAA,SAAAS,EAAA,EAAA,MAAAmG,OAAAnG,EAAAqC,EAAAA,MAAAA,MAAArC,EAAA,EAAA,MAAAqE,MAAArE,UAAAsE,MAtBTgC,MAAA,qBAAC,KACY,EAAA,WAAAjE,IACG,gBAAAgC,IACM,sBAAAC,IACZ,WAAA,UACA,SAAA,gBACC,UAAA,YACF/E,OAEP4G,UAAAA;AAAAA,IAAAA;AAAAA,IAUAE;AAAAA,EAAAA,EAAAA,CAIF,GAAMrG,QAAAT,OAAAS,QAAAmG,KAAAnG,QAAAqC,IAAArC,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA,GAvBNsG;AAuBM;ACxEH,MAAMsJ,4BAA4B;AA2BlC,SAAAC,SAAArM,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAmBDC,KAAAsD;AAAwDsM,MAAAA,6BAAAzG,gBAAAC,cAAAiB,KAAAf,UAAA3F,MAAAvD,IAAAuB,IAAAC,IAAAM,IAAAC,IAAAgC,IAAAC;AAAAtE,WAAAE,MAhB5D;AAAA,IAAA4P;AAAAA,IAAA/L,IAAAzD;AAAAA,IAAA2O,QAAApN;AAAAA,IAAAwH;AAAAA,IAAA9K,UAAAuD;AAAAA,IAAA+G,UAAAzG;AAAAA,IAAAmI;AAAAA,IAAAzB,SAAAzG;AAAAA,IAAA0G,QAAA1E;AAAAA,IAAAmF;AAAAA,IAAAvG,KAAAqG;AAAAA,IAAAkB,OAAAlG;AAAAA,IAAA,GAAAT;AAAAA,EAAA,IAgBI3D,IAAwDF,OAAAE,IAAAF,OAAA8P,6BAAA9P,OAAAqJ,gBAAArJ,OAAAsJ,cAAAtJ,OAAAuK,KAAAvK,OAAAwJ,UAAAxJ,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAA6B,IAAA7B,OAAA8B,IAAA9B,QAAAoC,IAAApC,QAAAqC,IAAArC,QAAAqE,IAAArE,QAAAsE,OAAAwL,8BAAA9P,EAAA,CAAA,GAAAqJ,iBAAArJ,EAAA,CAAA,GAAAsJ,eAAAtJ,EAAA,CAAA,GAAAuK,MAAAvK,EAAA,CAAA,GAAAwJ,WAAAxJ,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA,GAAAoC,KAAApC,EAAA,EAAA,GAAAqC,KAAArC,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA,GAAAsE,KAAAtE,EAAA,EAAA;AAZtD,QAAAV,WAAAgB,OAAmCgB,SAAAsO,4BAAnCtP,IACJ2O,SAAApN,OAAaP,cAAbO,IAEAtD,WAAAuD,OAAgBR,cAAhBQ,IACA+G,WAAAzG,OAAYd,aAAZc,IAEA0G,UAAAzG,OAAWf,aAAXe,IACA0G,SAAA1E,OAAU/C,aAAV+C,IAGAmG,QAAAlG,OAAShD,aAATgD,IAIFrB,MAAYrB,OAAA,IAAuC;AAAC6D,MAAAA;AAAAzF,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAIlDqC,KAAAA,MAAMxC,IAAGjB,SAAQhC,QAAAyF,MAAAA,KAAAzF,EAAA,EAAA,GAFnBqD,oBACEiG,cACA7D,EACF,GAEAgE,kBAAkBxG,KAAKoG,cAAc;AAS1B,QAAA3D,KAAA6E,OAAOC;AAAK3E,MAAAA;AAAA7F,IAAAiP,EAAAA,MAAAA,UAAAjP,EAAA,EAAA,MAAA6I,YAAA7I,EAAA8I,EAAAA,MAAAA,WAAA9I,EAAA,EAAA,MAAA+I,UAAA/I,UAAA0F,MALRG,MAAAkK,SAAA;AAAA,IAAAd;AAAAA,IAAApG;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAwB,KAKJ7E;AAAAA,EACN,CAAA,GAAC1F,QAAAiP,QAAAjP,QAAA6I,UAAA7I,QAAA8I,SAAA9I,QAAA+I,QAAA/I,QAAA0F,IAAA1F,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA;AACY8F,QAAAA,MAAAuD,iBAAiB,KAAE/H,QACjB4E,OAAC3H,YAAYiL,WAAW,KAAElI;AAAY6E,MAAAA;AAAAnG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAKzC+C,MAAAgJ,cAAc,GAACnP,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AACNqG,QAAAA,MAAAyJ,8BAA8B,KAAExO;AAAYgF,MAAAA;AAAAtG,IAAAV,EAAAA,MAAAA,YAAAU,EAAA,EAAA,MAAAzB,YAAAyB,EAAAwJ,EAAAA,MAAAA,YAAAxJ,EAAA,EAAA,MAAA6D,QAAA7D,UAAAqG,OAHlEC,MAAC,oBAAAhH,UAAA,EACKuE,GAAAA,MACO,WAAAsC,KACS,sBAAAE,KACV9H,UACAiL,UACLvG,IACL,CAAA,GAAAjD,QAAAV,UAAAU,QAAAzB,UAAAyB,QAAAwJ,UAAAxJ,QAAA6D,MAAA7D,QAAAqG,KAAArG,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA;AAAAwG,MAAAA;AAAAxG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACFoD,MAAA,oBAAA,QAAA,EAAiB,WAAAwJ,mBAAmB,EAAA,CAAK,GAAAhQ,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA;AAAAyG,MAAAA;AAAAzG,SAAAA,EAAA,EAAA,MAAA6F,OAAA7F,EAAA8F,EAAAA,MAAAA,OAAA9F,EAAAkG,EAAAA,MAAAA,OAAAlG,UAAAsG,OApB3CG,MAqBO,qBAAA,QApBM,EAAA,WAAAZ,KAOG,gBAAAC,KACE,kBAAAI,KACR,WAAA,YAERI,UAAAA;AAAAA,IAAAA;AAAAA,IAQAE;AAAAA,EACF,EAAA,CAAA,GAAOxG,QAAA6F,KAAA7F,QAAA8F,KAAA9F,QAAAkG,KAAAlG,QAAAsG,KAAAtG,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA,GArBPyG;AAqBO;AChEJ,SAAAwJ,0BAAAzM,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,CAAA,GACL;AAAA,IAAA0D;AAAAA,IAAAuM;AAAAA,EAA0B1M,IAAAA,OAC1B,CAAA2M,eAAAC,gBAAA,IAA0CC,kBAAqB,GAC/D,CAAAC,eAAAC,gBAAA,IAA0CF,oBAAmC,GAE7EG,YAAkB,OAAON,SAAU,WAAWA,QAAQA,OAAKO,QAAW,GACtEC,aAAmB,OAAOR,SAAU,WAAWA,QAAQA,OAAKS,SAAY;AAAAzQ,MAAAA;AAQzDI,QAAAA,KAAA6P,gBAAa,IAAOK;AAAS3O,MAAAA;AAAA7B,IAAA0Q,CAAAA,MAAAA,cAAA1Q,EAAA,CAAA,MAAAsQ,iBAAAtQ,EAAAoQ,CAAAA,MAAAA,oBAAApQ,EAAA,CAAA,MAAAuQ,oBAAAvQ,SAAAM,MALnCuB,KAAA;AAAA,IAAAuO;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAAC,WAKMlQ;AAAAA,IAA6BoQ;AAAAA,EAEzC1Q,GAAAA,OAAA0Q,YAAA1Q,OAAAsQ,eAAAtQ,OAAAoQ,kBAAApQ,OAAAuQ,kBAAAvQ,OAAAM,IAAAN,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA,GAAAE,KAPM2B;AADT,QAAA8I,QAA6CzK;AAU5C4B,MAAAA;AAAA,SAAA9B,EAAA2D,CAAAA,MAAAA,YAAA3D,SAAA2K,SAGC7I,KAAA,oBAAA,yBAAA,UAAA,EAA0C6I,OAAQhH,SAAS,CAAA,GAAoC3D,OAAA2D,UAAA3D,OAAA2K,OAAA3K,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GAA/F8B;AAA+F;ACtC5F,SAAA8O,mBAAApN,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,EAAA,GACL;AAAA,IAAA0D;AAAAA,IAAAkN;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAApG;AAAAA,EAAAA,IAAkDnH;AAAKtD,MAAAA;AAAAF,IAAA8Q,CAAAA,MAAAA,YAAA9Q,SAAA2K,SAEvBzK,KAAAA,MAAA;AAG9B8Q,eAAA,MAAA;AACEF,eAASnG,KAAK;AAAA,OAAC,CACb;AAAA,EACL3K,GAAAA,OAAA8Q,UAAA9Q,OAAA2K,OAAA3K,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAND,QAAAiR,cAAoB/Q;AAMCI,MAAAA;AAAAN,WAAAiR,eAGnB3Q,KAAA4Q,CAAA,UAAA;AACMA,UAAK5C,QAAS,WAAY6C,CAAAA,uBAAuBD,MAAKE,aAAc,KACtEH,YAAY;AAAA,EAAC,GAEhBjR,OAAAiR,aAAAjR,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AALH,QAAAqR,gBAAsB/Q;AAOrBuB,MAAAA;AAAA,SAAA7B,EAAA2D,CAAAA,MAAAA,YAAA3D,EAAA,CAAA,MAAAiR,eAAAjR,EAAAqR,CAAAA,MAAAA,iBAAArR,EAAA,CAAA,MAAA6Q,MAAA7Q,SAAA+Q,YAGClP,KASK,oBAAA,MARYkP,EAAAA,2BACP,WAAA,sBACJF,IACC,MAAA,UACII,sBACEI,0BAEH,SACV,CAAA,GAAKrR,OAAA2D,UAAA3D,OAAAiR,aAAAjR,OAAAqR,eAAArR,OAAA6Q,IAAA7Q,OAAA+Q,UAAA/Q,QAAA6B,MAAAA,KAAA7B,EAAA,EAAA,GATL6B;AASK;ACrCOyP,SAAAA,oBACdxG,OACAyG,KACmB;AACfA,SAAAA,IAAIjT,SAAS,iBACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO0G,aAAa;AAAA,IAAMC,SAAS;AAAA,IAAMC,OAAOH,IAAIG;AAAAA,EAAAA,IAG7DH,IAAIjT,SAAS,gBACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO2G,SAAS;AAAA,EAAA,IAGzBF,IAAIjT,SAAS,cACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO2G,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCH,IAAIjT,SAAS,eACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO0G,aAAa;AAAA,IAAME,OAAO;AAAA,IAAM/G,OAAO;AAAA,EAAA,IAGvD4G,IAAIjT,SAAS,gBACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO2G,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCH,IAAIjT,SAAS,cACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO4G,OAAO5G,MAAM4G,SAASH,IAAIG;AAAAA,EAAAA,IAG1CH,IAAIjT,SAAS,wBACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO0G,aAAaD,IAAI5G;AAAAA,IAAOgH,aAAaJ,IAAII,eAAe7G,MAAM6G;AAAAA,EAAAA,IAG9EJ,IAAIjT,SAAS,wBACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO6G,aAAaJ,IAAII;AAAAA,EAAAA,IAGjCJ,IAAIjT,SAAS,iBACR;AAAA,IAAC,GAAGwM;AAAAA,IAAO0G,aAAaD,IAAI5G;AAAAA,IAAO+G,OAAO;AAAA,IAAM/G,OAAO4G,IAAI5G;AAAAA,EAAAA,IAG7DG;AACT;ACzCO,MAAM8G,mCAAmC,CAC9C,WACA,SACA,OACA,SACA,QACA,OACA,UACA,YACA,QACA,OACA,UAAU,GAMCC,iCAA4C,gBAK5CC,2CAAwD,CAAC,gBAAgB,WAAW,GCoBpFC,+BAA+B,SAsDtCC,uBAAuBA,CAACrH,OAAesH,WAC3CA,SAASA,OAAOtH,QAAQA,OAEpBuH,wBAAwBA,CAACR,OAAeO,WAC5CA,OAAOtH,MAAMwH,YAAY,EAAEC,QAAQV,MAAMS,YAAa,CAAA,IAAI;AAQrD,SAASE,aAGd7O,OAAgC;AAC1B,QAAA;AAAA,IACJO,KAAKgO;AAAAA,IACL9C,SAAS;AAAA,IACT5F;AAAAA,IACA9K;AAAAA,IACA+T,cAAcC;AAAAA,IACd1J,WAAW;AAAA,IACX2J;AAAAA,IACA3B;AAAAA,IACA4B,UAAUC;AAAAA,IACVC;AAAAA,IACAC;AAAAA,IACA/G;AAAAA,IACAgH;AAAAA,IACAC;AAAAA,IACAhC;AAAAA,IACAiC;AAAAA,IACAC;AAAAA,IACAC,SAASC;AAAAA,IACTpK,SAASqK,cAAc;AAAA,IACvBC,UAAUV;AAAAA,IACVW;AAAAA,IACAtK,SAAS;AAAA,IACTS;AAAAA,IACAvG,KAAKqG;AAAAA,IACLgK;AAAAA,IACAC,cAAcC;AAAAA,IACdC;AAAAA,IACAC,cAAc1B;AAAAA,IACd2B;AAAAA,IACAhJ,OAAOiJ;AAAAA,IACP,GAAG/P;AAAAA,EAAAA,IACDL,OAEE,CAACsH,OAAO+I,QAAQ,IAAIC,WAAWxC,qBAAqB;AAAA,IACxDE,aAAaoC,aAAa;AAAA,IAC1BnC,SAAS;AAAA,IACTE,aAAa;AAAA,IACbD,OAAO;AAAA,IACP/G,OAAOiJ,aAAa;AAAA,EAAA,CACrB,GAEK;AAAA,IAACpC;AAAAA,IAAaC;AAAAA,IAASE;AAAAA,IAAaD;AAAAA,IAAO/G;AAAAA,EAAAA,IAASG,OAEpDiJ,sBAAsBC,YAC1B,CAAC;AAAA,IAACrJ,OAAAA;AAAAA,EAAAA,MACA,oBAAC,MAAK,EAAA,IAAG,UAAS,SAASwI,aAAa,QAAQ,GAAG,MAAK,WACtD,UAAA,oBAAC,QAAK,MAAMtK,UAAU,cAAa,YAChC8B,UACH,QAAA,CAAA,EAAA,CACF,GAEF,CAAC9B,UAAUsK,WAAW,CACxB,GAEMI,eACJ,OAAOC,oBAAqB,aAAaA,mBAAmBO,qBAExDzB,eACJ,OAAOC,oBAAqB,aAAaA,mBAAmBL,uBAGxD+B,iBAAiBrS,OAA8B,IAAI,GACnDsS,2BAA2BtS,OAA8B,IAAI,GAC7DuS,kBAAkBvS,OAAgC,IAAI,GACtDwS,oBAAoBxS,OAAgC,IAAI,GAGxDyS,iBAAiBzS,OAAO,EAAK,GAC7B0S,WAAW1S,OAAO+I,KAAK,GACvB4J,eAAe3S,OAAOgS,SAAS,GAC/BY,wBAAwB5S,OAAO,EAAK;AAIxC0H,sBAAAA,cACA,MAAM6K,gBAAgBnS,OACxB;AAEA,QAAMyS,YAAY,GAAG5D,EAAE,YACjBoC,UAAUlS,MAAMC,QAAQkS,WAAW,IAAIA,cAAc3R,aACrDuH,UAAU1D,kBAAkB+N,WAAW,GACvCuB,gBAAgBC,QACpB,MAAOhK,UAAU,OAAOsI,QAAQ2B,KAAMC,CAAAA,MAAMA,EAAElK,UAAUA,KAAK,IAAIrJ,QACjE,CAAC2R,SAAStI,KAAK,CACjB,GACMmK,kBAAkBH,QACtB,MAAM1B,QAAQ/R,OAAQ+Q,CAAYP,WAAAA,QAAQY,aAAaZ,OAAOO,MAAM,IAAI,EAAK,GAC7E,CAACK,cAAcW,SAASvB,KAAK,CAC/B,GACMqD,qBAAqBD,gBAAgB9V,QACrCgW,eAAexD,cAAc,GAAGX,EAAE,WAAWW,WAAW,KAAKlQ,QAC7D2T,WAAYvD,UAAU,QAAQiB,WAAalB,WAAWC,UAAU,MAEhEwD,iBAAiBlB,YACpB9C,CAAwC,UAAA;AACvCF,eAAW,MAAM;AAIf,UAAIwD,sBAAsBxS;AACxB;AAGIP,YAAAA,YAA2B6R,mBAAmB,CAAA,GAAI6B,OACtDlB,eAAejS,UAAU,CAACiS,eAAejS,OAAO,IAAI,CAAA,GACpDkS,yBAAyBlS,UAAU,CAACkS,yBAAyBlS,OAAO,IAAI,EAC1E;AAEA,UAAIoT,cAAc;AAElB,UAAIxX,SAASC;AACX,mBAAWwX,KAAK5T;AACd,cAAI4T,MAAMzX,SAASC,iBAAiBwX,EAAEvX,SAASF,SAASC,aAAa,GAAG;AACxD,0BAAA;AACd;AAAA,UAAA;AAAA;AAKFuX,sBAAgB,OAClBvB,SAAS;AAAA,QAACvV,MAAM;AAAA,MAAY,CAAA,GAC5BkW,sBAAsBxS,UAAU,IAC5B8Q,iBAAeA,cAAc,IAAI,GACjCF,UAAQA,OAAO1B,KAAK;AAAA,OAEzB,CAAC;AAAA,EAAA,GAEN,CAAC0B,QAAQE,eAAeQ,eAAe,CACzC,GAEMgC,kBAAkBtB,YAAa9C,CAAsC,YAAA;AACzE,UAAMqE,iBAAiBnB,kBAAkBpS,SACnCwT,iBAAiBtE,QAAM1O,kBAAkBoK,cAAcsE,QAAM1O,SAAS,MACtEmP,gBAAc4D,gBAAgBzX,SAAS0X,cAAc,KAAK;AAE5D7D,sBAAgB0C,eAAerS,YACjCqS,eAAerS,UAAU2P,eAEzBkC,SAAS;AAAA,MAACvV,MAAM;AAAA,MAAuBqT,aAAAA;AAAAA,IAAAA,CAAY;AAAA,KAEpD,CAAE,CAAA,GAEC8D,qBAAqBzB,YACxB0B,CAAc,MAAA;AACJ,aAAA;AAAA,MAACpX,MAAM;AAAA,MAAgBqM,OAAO+K;AAAAA,IAAAA,CAAE,GAEzClB,sBAAsBxS,UAAU,IAE5B8O,YAAUA,SAAS4E,CAAC,GAExBpB,SAAStS,UAAU0T,GAEf7J,YAAUA,SAAS6J,CAAC,GACpB5C,iBAAeA,cAAc,IAAI,GAErCqB,gBAAgBnS,SAASpD,MAAM;AAAA,EAAA,GAEjC,CAACiN,UAAUiF,UAAUgC,aAAa,CACpC,GAEM6C,oBAAoB3B,YACvB9C,CAAsC,YAAA;AACjCA,QAAAA,QAAM5C,QAAQ,aAAa;AAG7B,UAFA4C,QAAM0E,kBAEF,CAACb,mBAAoB;AAEzB,YAAMc,eAAef,gBAAgBF,KAAMC,SAAMA,IAAElK,UAAU6G,WAAW,GAClEsE,cAAcD,eAAef,gBAAgB1C,QAAQyD,YAAY,IAAI,IACrEE,mBAAmBjB,iBAAiBgB,cAAc,KAAKf,kBAAkB;AAE3EgB,0BACFlC,SAAS;AAAA,QAACvV,MAAM;AAAA,QAAuBqM,OAAOoL,iBAAiBpL;AAAAA,QAAOgH,aAAa;AAAA,MAAA,CAAK;AAG1F;AAAA,IAAA;AAGET,QAAAA,QAAM5C,QAAQ,WAAW;AAG3B,UAFA4C,QAAM0E,kBAEF,CAACb,mBAAoB;AAEnBc,YAAAA,iBAAef,gBAAgBF,KAAMC,CAAMA,QAAAA,IAAElK,UAAU6G,WAAW,GAClEsE,gBAAcD,iBAAef,gBAAgB1C,QAAQyD,cAAY,IAAI,IACrEE,qBACJjB,gBACEgB,kBAAgB,KACZf,qBAAqB,KACpBA,qBAAqBe,gBAAc,KAAKf,kBAAkB;AAG/DgB,4BACFlC,SAAS;AAAA,QAACvV,MAAM;AAAA,QAAuBqM,OAAOoL,mBAAiBpL;AAAAA,QAAOgH,aAAa;AAAA,MAAA,CAAK;AAG1F;AAAA,IAAA;AAGET,QAAAA,QAAM5C,QAAQ,UAAU;AACjB,eAAA;AAAA,QAAChQ,MAAM;AAAA,MAAc,CAAA,GAC9BkW,sBAAsBxS,UAAU,IAC5B8Q,iBAAeA,cAAc,IAAI,GACrCqB,gBAAgBnS,SAASpD,MAAM;AAE/B;AAAA,IAAA;AAGF,UAAM4D,SAAS0O,QAAM1O,QACfwT,SAAS5B,kBAAkBpS;AAG9BgU,SAAAA,WAAWxT,UAAUwT,QAAQlY,SAAS0E,MAAM,MAC7C,CAACoP,iCAAiCjS,SAASuR,QAAM5C,GAAG,GACpD;AACA6F,sBAAgBnS,SAASpD,MAAM;AAE/B;AAAA,IAAA;AAAA,EACF,GAEF,CAAC4S,aAAasD,iBAAiBC,oBAAoBjC,aAAa,CAClE,GAEMmD,oBAAoBjC,YACvB9C,CAAyC,YAAA;AAClCgF,UAAAA,YAAYhF,QAAME,cAAczG;AAE7B,aAAA;AAAA,MAACrM,MAAM;AAAA,MAAgBoT,OAAOwE;AAAAA,IAAAA,CAAU,GAE7CpD,iBAAeA,cAAcoD,SAAS;AAAA,KAE5C,CAACpD,aAAa,CAChB,GAEMqD,eAAenC,YAAY,MAAM;AAC5B,aAAA;AAAA,MACP1V,MAAM;AAAA,MACNoT,OAAO/G,QAAQ+I,YAAY/I,OAAO+J,aAAa,IAAI;AAAA,IAAA,CACpD;AAAA,EAAA,GACA,CAACA,eAAehB,aAAa/I,KAAK,CAAC,GAEhCyL,mBAAmBpC,YACtB9C,CAAwC,YAAA;AAClCO,gBACHoC,SAAS;AAAA,MAACvV,MAAM;AAAA,IAAA,CAAc,GAE1BuU,WAASA,QAAQ3B,OAAK,GACtB8B,eAAamD;EAAa,GAGlC,CAAC1E,SAASoB,SAASG,aAAamD,YAAY,CAC9C,GAEME,0BAA0BrC,YAAY,MAAM;AAChDQ,0BAAsBxS,UAAU;AAAA,KAC/B,EAAE,GAECsU,0BAA0BtC,YAAY,MAAM;AAChDQ,0BAAsBxS,UAAU;AAAA,KAC/B,EAAE,GAECuU,yBAAyBvC,YAAY,MAAM;AACtC,aAAA;AAAA,MAAC1V,MAAM;AAAA,IAAa,CAAA,GAC7BgW,SAAStS,UAAU,IACf6J,YAAUA,SAAS,EAAE,GACrBiH,iBAAeA,cAAc,IAAI,GACrCqB,gBAAgBnS,SAASpD,MAAM;AAAA,EAAA,GAC9B,CAACiN,UAAUiH,aAAa,CAAC,GAEtB0D,yBAAyBxC,YAAY,MAAM;AACtC,aAAA;AAAA,MAAC1V,MAAM;AAAA,IAAA,CAAc;AAAA,EAChC,GAAG,EAAE;AAGL6D,YAAU,MAAM;AAEVyR,QAAAA,cAAcW,aAAavS,SAAS;AACtCuS,mBAAavS,UAAU4R,WAEnBA,cAActS,WAChBuS,SAAS;AAAA,QAACvV,MAAM;AAAA,QAAgBqM,OAAOiJ;AAAAA,MAAAA,CAAU,GACjDU,SAAStS,UAAU4R;AAGrB;AAAA,IAAA;AAIEA,kBAAcU,SAAStS,YACzBsS,SAAStS,UAAU4R,aAAa,MAEhCC,SAAS;AAAA,MAACvV,MAAM;AAAA,MAAgBqM,OAAOiJ,aAAa;AAAA,IAAA,CAAK;AAAA,KAE1D,CAACA,SAAS,CAAC,GAGdzR,UAAU,MAAM;AACV,KAACsP,WAAW6C,SAAStS,WACvB6R,SAAS;AAAA,MAACvV,MAAM;AAAA,MAAuBqM,OAAO2J,SAAStS;AAAAA,IAAAA,CAAQ;AAAA,KAEhE,CAACyP,OAAO,CAAC,GAGZtP,UAAU,MAAM;AACd,UAAMsU,cAAcrC,kBAAkBpS;AAEtC,QAAI,CAACyU,YAAa;AAElB,UAAMZ,iBAAef,gBAAgBF,KAAMC,CAAMA,QAAAA,IAAElK,UAAU6G,WAAW;AAExE,QAAIqE,gBAAc;AACVC,YAAAA,gBAAchB,gBAAgB1C,QAAQyD,cAAY,GAClDa,oBAAoBD,YAAY1X,WAAW+W,aAAW;AAE5D,UAAIY,mBAAmB;AACrB,YAAIjZ,UAAUiZ,iBAAiB;AAE7B;AAGF7X,6BAAqB6X,iBAAiB;AAAA,MAAA;AAAA,IACxC;AAAA,EACF,GACC,CAAClF,aAAasD,eAAe,CAAC;AAE3B6B,QAAAA,cAAchC,QAAQ,MAAM;AAC5B,QAAA,CAAChC,WAAW,CAACpU,YAAYoM;AACpB,aAAA;AAAA,QACL,cAAc;AAAA,QACd,SAAW6L;AAAAA,MACb;AAAA,EAAA,GAID,CAACjY,UAAUiY,wBAAwB7D,SAAShI,KAAK,CAAC,GAE/CiM,uBAAuBjC,QAAQ,MACpB5O,OAAO8Q,YACpB9Q,OAAOkH,QAAQnE,OAAO,EAAEhM,IAAI,CAAC,CAACwR,KAAK3D,OAAK,MAClCA,YAAU,IAAU,CAAC2D,KAAK,CAAC,IAC3B3D,YAAU,IAAU,CAAC2D,KAAK,CAAC,IAC3B3D,YAAU,IAAU,CAAC2D,KAAK,CAAC,IAExB,CAACA,KAAM3D,UAAkB,CAAC,CAClC,CACH,GAGC,CAAC7B,OAAO,CAAC,GAENgO,oBAAoBnC,QACxB,MAAM5O,OAAOnJ,OAAOkM,OAAO,EAAEhM,IAAK4Y,CAAM5N,QAAAA,KAAKC,IAAK2N,MAAc,GAAG,CAAC,CAAC,GACrE,CAAC5M,OAAO,CACV,GAEMiO,kBAA+CpC,QACnD,MAAO,OAAO5B,cAAe,WAAWA,aAAaL,cACrD,CAACK,UAAU,CACb,GAEMiE,kBAAkBhD,YACrB9C,CAAyC,YAAA;AACxCiF,oBAEIY,gBAAgBE,WAASF,gBAAgBE,QAAQ/F,OAAK,GAE1DjU,KAAK,MAAMkX,gBAAgBnS,SAASpD,MAAAA,CAAO;AAAA,EAE7C,GAAA,CAACmY,iBAAiBZ,YAAY,CAChC,GAEMe,iBAAiBvC,QACrB,MACE,CAACpW,YAAY,CAACiL,YAAYuJ,aACvB,oBAAA,KAAA,EAAI,eAAakC,UAAU,SAAS2B,sBACnC,UAAC,oBAAA,QAAA,EACC,cAAW,QACX,UAAU3B,UACV,SAAQ,SACR,UACA,MAAMkC,iBACN,MAAK,SACL,SAASL,sBACLC,iBACJ,SAASC,gBAAgB,CAAA,EAE7B,CAAA,IACE1V,QACN,CACE/C,UACA0W,UACApM,UACAmO,iBACAjE,YACA6D,sBACAE,mBACAC,iBACAvN,QAAQ,CAEZ,GAEM4N,aAAazC,QAAQ,MACrBjD,UAAU,OACR/G,UAAU,OACL+I,YAAY/I,OAAO+J,aAAa,IAGlC,KAGFhD,OACN,CAACgD,eAAehD,OAAOgC,aAAa/I,KAAK,CAAC,GAEvC0M,QACH,oBAAA,WAAA,EACC,GAAIxT,MACJ,yBAAuBmR,cACvB,qBAAkB,QAClB,iBAAeC,UACf,aAAWR,WACX,gBAAe,OACf,cAAa,OACb,aAAY,OACZ,IACA,QACA,aACA,gBACA,UACA,UACA,MACA,WAAW9B,WAAW2E,qBACtB,IACA,WAAU,UACV,UAAUrB,mBACV,SAASM,wBACT,SAASH,kBACT,SACA,QACA,QACA,UACA,KAAKjC,iBACL,MAAK,YACL,YAAY,IACZ,QAAQR,UAAUuD,gBAClB,OAAOE,WAAAA,CAEV,GAEKG,uBAAuBvD,YAC1B9C,CAAyC,YAAA;AAEpCA,YAAM5C,QAAQ,SACZqD,eAAawC,gBAAgBnS,SAASpD,MAAM;AAAA,EAAA,GAGpD,CAAC+S,WAAW,CACd,GAEM6F,WAAU7C,QAAQ,MAClBG,gBAAgB9V,WAAW,IAAU,2BAGtC,KACC,EAAA,WAAQ,yBACR,WAAWuY,sBACX,SAAS,GACT,GAAI9E,SACJ,UAAU,IAEV,UAAC,oBAAA,OAAA,EACC,IAAG,MACH,wBAAsB,IACtB,WAAQ,6BACR,KAAK,GACL,IAAIgC,WACJ,KAAKL,mBACL,MAAK,WAEJU,UAAAA,gBAAgBhY,IAAKmV,CAAW,aAAA;AAC/B,UAAMwF,SACJjG,gBAAgB,OAAOS,SAAOtH,UAAU6G,cAAckD,kBAAkBzC;AAE1E,+BACG,oBACC,EAAA,IAAI,GAAGpB,EAAE,WAAWoB,SAAOtH,KAAK,IAEhC,UAAU8K,oBACV,UAAUgC,QACV,OAAOxF,SAAOtH,OAEblC,UAAa8K,aAAAA,aAAatB,QAAM,GAAG;AAAA,MAClC1T,UAAUoU;AAAAA,MACV5B,UAAU0G;AAAAA,MACVzZ,UAAU2T,eAAe8F,SAAS,IAAI;AAAA,IAAA,CACvC,EATIxF,GAAAA,SAAOtH,KAUd;AAAA,EAAA,CAEH,EACH,CAAA,EACF,CAAA,GAED,CACD6G,aACAkD,eACAI,iBACAW,oBACA8B,sBACA1G,IACA4B,SACAgC,WACA9C,aACAgB,SACAY,YAAY,CACb,GAEKmE,UAAU/C,QAAQ,MAClBlB,gBACKA,cACL;AAAA,IACE+D,SAAAA;AAAAA,IACAG,QAAQ,CAAC1C;AAAAA,IACT2C,cAAczD,gBAAgBnS;AAAAA,IAC9B6V,cAAcxB;AAAAA,IACdyB,cAAcxB;AAAAA,EAAAA,GAEhBpC,wBACF,IAGEa,uBAAuB,IAClB,OAIP,oBAAC,WACC,OAAO,IACP,eAAa,IACb,SAAAyC,UACA,oBAAoB1F,0CACpB,qBAAmB,IACnB,cAAcuE,yBACd,cAAcC,yBACd,MAAMrB,UACN,UAAS,QACT,WAAWpD,gCACX,QAAM,IACN,QAAQ,GACR,KAAKqC,0BACL,kBAAkBC,gBAAgBnS,SAC9BoR,GAAAA,QACJ,CAAA,GAEH,CACDoE,UACAvC,UACAF,oBACAsB,yBACAC,yBACAlD,SACAK,aAAa,CACd;AAED;AAAA;AAAA,IAEE,qBAAC,OACC,EAAA,WAAQ,gBACR,QAAQyB,gBACR,SAASI,iBACT,WAAWK,mBACX,KAAK1B,gBAEJoD,UAAAA;AAAAA,MAAAA;AAAAA,MACAK;AAAAA,IAAAA,EACH,CAAA;AAAA;AAEJ;ACnqBO,MAAMK,8BAA8B;AAqBpC,SAASC,YACdxU,OACA;AACM,QAAA;AAAA,IACJO,KAAKgU;AAAAA,IACLpU;AAAAA,IACAC;AAAAA,IACAqU,cAAcC;AAAAA;AAAAA,IAEd3N,KAAK4N;AAAAA,IACLC,OAAO5U,MAAM+G,OAAQ/G,MAAMgH,SAA+B;AAAA,IAC1D6N,OAAO7U,MAAM+G,OAAQ/G,MAAMgH,SAA+B;AAAA,IAC1D/C;AAAAA,IACA6Q;AAAAA;AAAAA,IAEA9N,OAAO+N;AAAAA,IACP,GAAG1U;AAAAA,EACDL,IAAAA,OAEE,CAACiN,MAAM+H,OAAO,IAAIhY,SAAS,EAAK,GAChCiY,mBAAmB7W,OAAiC,IAAI,GACxD8W,oBAAoB9W,OAA8B,IAAI,GAEtD+W,WAAW3E,YAAY,MAAMwE,QAAQ,EAAK,GAAG,CAAE,CAAA,GAC/CI,SAAS5E,YAAY,MAAMwE,QAAQ,EAAI,GAAG,CAAA,CAAE;AAElDK,uBAAqBF,UAAU,MAAM,CAACF,iBAAiBzW,SAAS0W,kBAAkB1W,OAAO,CAAC;AAE1F,QAAM8W,WAAWnE,QAAQ,MAAMhN,SAASC,QAAQjE,QAAQ,EAAEzC,OAAO2G,cAAc,GAAG,CAAClE,QAAQ,CAAC,GAEtFoI,QAAQ4I,QAAQ,MAAM;AAC1B,UAAM3M,MAAM8Q,SAAS9Z;AAEjByI,QAAAA,aAAaO,MAAMP,WAAW;AAC1BsR,YAAAA,eAAejR,KAAKgG,KAAKrG,YAAY,CAAC,GACtCuR,cAAclR,KAAK8F,MAAMnG,YAAY,CAAC;AAE5C,aAAO,CACL,GAAGqR,SAAS1Q,MAAM,GAAG2Q,eAAe,CAAC,GACpC,oBAAA,SAAA,EACC,eAAa,IACb,SACG,oBAAA,OAAA,EAAM,IAAG,MAAK,KAAKV,MAAM,UAAS,QAChCS,UAAS1Q,SAAAA,MAAM2Q,eAAe,GAAG/Q,MAAMgR,WAAW,EACrD,CAAA,GAGF,MACA,SAAS,GACT,WAAU,OACV,QAAM,IACN,KAAKN,mBAEL,UAAC,oBAAA,QAAA,EACC,MAAK,SACL,SAAS,GACT,MAAK,aACDR,mBACJ,SAASzH,OAAOkI,WAAWC,QAC3B,KAAKH,kBACL,UAAUhI,KAAK,CAAA,EAAA,GAdb,QAgBN,GACA,GAAGqI,SAAS1Q,MAAMJ,MAAMgR,WAAW,CAAC;AAAA,IAAA;AAIjCF,WAAAA;AAAAA,EAAAA,GACN,CAACH,UAAUC,QAAQV,mBAAmBG,MAAM5Q,WAAWgJ,MAAMqI,QAAQ,CAAC;AAGvE,SAAA,oBAAC,QACC,IACA,WAAQ,kBACJjV,MACJ,WAAWoV,YAAY;AAAA,IAACrV;AAAAA,EAAU,CAAA,GAClC,MACA,MAECmI,UAAAA,MAAMjP,IAAI,CAACoR,MAAME,cAChB,qBAAC,UACEA,EAAAA,UAAAA;AAAAA,IAAAA,YAAY,KACX,oBAAC,KAAI,EAAA,eAAW,IAAC,IAAG,MACjBkK,UAAAA,aAAc,oBAAA,MAAA,EAAK,OAAK,IAAC,cAAC,CAAA,GAC7B;AAAA,IAED,oBAAA,KAAA,EAAI,IAAG,MAAMpK,UAAK,KAAA,CAAA;AAAA,EAAA,KANNE,SAOf,CACD,GACH;AAEJ;AChIgB8K,SAAAA,oBACd7X,iBACA8X,eACA3W,QACS;AACL,SAAA,CAACnB,mBAAmB,CAAC8X,gBAAsB,KAG7CC,wBAAwB/X,iBAAiBmB,MAAM,KAC/C4W,wBAAwBD,eAAe3W,MAAM;AAEjD;ACcO,MAAM6W,8BAA8B;AAiCpC,SAAAC,WAAA9V,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAiBDC,KAAAsD;AAA4D+V,MAAAA,WAAA5V,UAAA6V,QAAAC,qBAAAnQ,cAAAoQ,QAAAC,iBAAA9I,IAAA+I,gBAAAC,SAAAC,YAAAjW,MAAAvD;AAAAN,WAAAE,MAdhE;AAAA,IAAA6Z,sBAAAR;AAAAA,IAAAS,4BAAAL;AAAAA,IAAA5V,IAAAzD;AAAAA,IAAAqD;AAAAA,IAAAsW,YAAAR;AAAAA,IAAAD;AAAAA,IAAAE;AAAAA,IAAA7I;AAAAA,IAAA+I;AAAAA,IAAAC;AAAAA,IAAAK,QAAAJ;AAAAA,IAAA7W,KAAAqG;AAAAA,IAAA,GAAAzF;AAAAA,EAAA,IAcI3D,IAA4DF,OAAAE,IAAAF,OAAAuZ,WAAAvZ,OAAA2D,UAAA3D,OAAAwZ,QAAAxZ,OAAAyZ,qBAAAzZ,OAAAsJ,cAAAtJ,OAAA0Z,QAAA1Z,OAAA2Z,iBAAA3Z,OAAA6Q,IAAA7Q,OAAA4Z,gBAAA5Z,QAAA6Z,SAAA7Z,QAAA8Z,YAAA9Z,QAAA6D,MAAA7D,QAAAM,OAAAiZ,YAAAvZ,EAAA,CAAA,GAAA2D,WAAA3D,EAAA,CAAA,GAAAwZ,SAAAxZ,EAAA,CAAA,GAAAyZ,sBAAAzZ,EAAA,CAAA,GAAAsJ,eAAAtJ,EAAA,CAAA,GAAA0Z,SAAA1Z,EAAA,CAAA,GAAA2Z,kBAAA3Z,EAAA,CAAA,GAAA6Q,KAAA7Q,EAAA,CAAA,GAAA4Z,iBAAA5Z,EAAA,CAAA,GAAA6Z,UAAA7Z,EAAA,EAAA,GAAA8Z,aAAA9Z,EAAA,EAAA,GAAA6D,OAAA7D,EAAA,EAAA,GAAAM,KAAAN,EAAA,EAAA;AAX9D,QAAA+D,KAAAzD,OAAgCgB,SAAA+X,8BAAhC/Y,IAaF4Z,SAAeC,UAAU,GACzBhB,gBAAsBW,aAAaI,OAAMzY,WAAYqY,UAAU,KAAA,OAAYI,OAAMxc,SACjF2D,kBAAwB+Y,mBAAoB1c,EAAAA,SAC5CuF,MAAYrB,OAAA,IAAkC,GAC9CqY,aAAmBrY,OAAA,IAAkC,GACrDyY,QAAcC,YACd;AAAA,IAAAC;AAAAA,EAAAA,IAAqBF,OACrBG,UAAgB,GAAG3J,EAAE,UACrB4J,kBAAwB9c,CAAAA,CAAQkc,WAAYF,oBAAyB,IACrEe,aAAmB/c,EAAQ+b,UAAWe;AAAe5Y,MAAAA;AAAA7B,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAE2BvB,KAAAA,MAAMoB,IAAGjB,SAAQhC,QAAA6B,MAAAA,KAAA7B,EAAA,EAAA,GAAjGqD,oBAAkEiG,cAAczH,EAAiB;AAACC,MAAAA;AAAA9B,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAGhGtB,KAAAA,MAAMmY,WAAUjY,SAAQhC,QAAA8B,MAAAA,KAAA9B,EAAA,EAAA,GAF1BqD,oBACEoW,qBACA3X,EACF;AAAC,MAAAM,IAAAC;AAAArC,YAAAuZ,aAESnX,KAAAA,MAAA;AACHmX,iBAGDtW,IAAGjB,WACLnD,qBAAqBoE,IAAGjB,OAAQ;AAAA,EAEjCK,GAAAA,KAAA,CAACkX,WAAWtW,GAAG,GAACjD,QAAAuZ,WAAAvZ,QAAAoC,IAAApC,QAAAqC,OAAAD,KAAApC,EAAA,EAAA,GAAAqC,KAAArC,EAAA,EAAA,IAPnBmC,UAAUC,IAOPC,EAAgB;AAACgC,MAAAA;AAAArE,IAAA,EAAA,MAAAqB,mBAAArB,EAAAua,EAAAA,MAAAA,cAAAva,EAAA6Z,EAAAA,MAAAA,WAAA7Z,UAAAmZ,iBAIhB9U,KAAA6M,CAAA,UAAA;AACM,QAAA,CAACqJ,cAAU,CAAKV;AAAO;AAE3B,UAAArX,SAAA5E,SAAAC;AAEI2E,eAAW0W,oBAAoB7X,iBAAiB8X,eAAe3W,MAAM,KAKrE0O,MAAK5C,QAAS,aAChB4C,MAAK0E,eAAgB,GACrB1E,MAAKyJ,gBAAAA,GACLd;EAAS,GAEZ7Z,QAAAqB,iBAAArB,QAAAua,YAAAva,QAAA6Z,SAAA7Z,QAAAmZ,eAAAnZ,QAAAqE,MAAAA,KAAArE,EAAA,EAAA,GAjBL4a,iBACEvW,EAmBF;AAACC,MAAAA;AAAAtE,IAAA,EAAA,MAAAqB,mBAAArB,EAAAua,EAAAA,MAAAA,cAAAva,EAAA4Z,EAAAA,MAAAA,kBAAA5Z,UAAAmZ,iBAGC7U,KAAAiW,cACEX,mBAAciB,CAAA,YAAA;AAEZ,UAAAC,WAAe5J,QAAK1O;AAEhBA,iBAAW0W,oBAAoB7X,iBAAiB8X,eAAe3W,QAAM,KAKzEoX,eAAe;AAAA,EAAA,IACf5Z,QAAAqB,iBAAArB,QAAAua,YAAAva,QAAA4Z,gBAAA5Z,QAAAmZ,eAAAnZ,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA;AAAAyF,MAAAA;AAAAzF,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACJqC,KAAAA,MAAOxC,CAAAA,IAAGjB,OAAA,GAAShC,QAAAyF,MAAAA,KAAAzF,EAAA,EAAA,GAbrB6Y,qBACEvU,IAYAmB,EACF;AAACC,MAAAA;AAAA1F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAGoCsC,KAAAqV,WAAW,GAAC/a,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAAA6F,MAAAA;AAAA7F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAC5ByC,MAAAmV,aAAa,GAAChb,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA;AAAA8F,MAAAA;AAAA9F,IAAA0Z,EAAAA,MAAAA,UAAA1Z,EAAA,EAAA,MAAAwa,WAAAxa,EAAA6Z,EAAAA,MAAAA,WAAA7Z,EAAA,EAAA,MAAAya,mBAAAza,UAAA0a,cAC5B5U,MAAA4U,cACC,oBAAC,OAAe,WAAAO,aAAyB,GAAA,UAAA,YACvC,UAAC,qBAAA,MAAA,EAAW,OAAA,cAAsB,SAAC,GACjC,UAAA;AAAA,IAAA,oBAAC,KAAU,EAAA,MAAC,GAAW,SAAC,GACrBvB,UACC,UAAA,oBAAC,MAASc,EAAAA,IAAAA,SAAe,MAAC,GAAS,QAAA,6BAEnC,CAAA,GAEJ;AAAA,IACCC,uCACE,KAAS,EAAA,MAAA,QACR,UAAC,oBAAA,QAAA,EACY,cAAA,gBACD,UAACZ,CAAAA,SACLqB,MAAAA,WACD,MAAA,SACIrB,SAAM,SACN,SAAA,GAEb,EAAA,CAAA;AAAA,EAAA,EAAA,CAEJ,EACF,CAAA,GACD7Z,QAAA0Z,QAAA1Z,QAAAwa,SAAAxa,QAAA6Z,SAAA7Z,QAAAya,iBAAAza,QAAA0a,YAAA1a,QAAA8F,OAAAA,MAAA9F,EAAA,EAAA;AAAAkG,MAAAA;AAAAlG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAEY8C,MAAAiV,cAAc,GAACnb,QAAAkG,OAAAA,MAAAlG,EAAA,EAAA;AAAAmG,MAAAA;AAAAnG,YAAA2D,YAD5BwC,MAAC,oBAAA,KACY,EAAA,WAAAD,KACL,MAAA,GACG,UAAA,QACA,UAAA,YACJ+T,KAAAA,YACK,UAAA,IAETtW,SACH,CAAA,GAAM3D,QAAA2D,UAAA3D,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AAAAqG,MAAAA;AAAArG,YAAAwZ,UACLnT,MAAAmT,UACE,oBAAA,KAAA,EAAe,WAAA4B,aAAyB,GAAA,UAAA,YACjC,UACR,QAAA,GACDpb,QAAAwZ,QAAAxZ,QAAAqG,OAAAA,MAAArG,EAAA,EAAA;AAAAsG,MAAAA;AAAAtG,IAAA8F,EAAAA,MAAAA,OAAA9F,UAAAmG,OAAAnG,EAAA,EAAA,MAAAqG,OAxCHC,2BAAC,MAAgB,EAAA,WAAAT,KAA0B,WAAA,UAAe,MAAA,GACvDC,UAAAA;AAAAA,IAAAA;AAAAA,IAyBDK;AAAAA,IAUCE;AAAAA,EAAAA,GAKH,GAAOrG,QAAA8F,KAAA9F,QAAAmG,KAAAnG,QAAAqG,KAAArG,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA;AAAAwG,MAAAA;AAAAxG,SAAAA,EAAA+D,EAAAA,MAAAA,MAAA/D,UAAA6D,QAAA7D,EAAA,EAAA,MAAAsG,OA1CTE,0BAAC,MAAS3C,EAAAA,GAAAA,MAAUE,IAAe,WAAA2B,IAAsB,SAAA,QAAYzC,KACnEqD,UA0CF,KAAA,GAAOtG,QAAA+D,IAAA/D,QAAA6D,MAAA7D,QAAAsG,KAAAtG,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA,GA3CPwG;AA2CO;ACzKE6U,MAAAA,gBAAgBC,0BAC3B,6BACA;AAAA,EAAC5Q,SAAS;AAAG,CACf;ACbO,SAAA6Q,YAAA;AAAA,SACEC,WAAAH,aAAwB;AAAC;ACkB3B,MAAMI,yBAAyB;AAgD/B,SAAAC,OAAAlY,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAGL0b,UAAgBJ,UAAAA,GAyBZrb,KAAAsD;AAAmDoY,MAAAA,eAAAC,cAAAlY,UAAAC,WAAAqW,YAAAT,QAAAE,QAAA7I,IAAAiL,YAAAlC,gBAAAC,SAAAhH,SAAAiH,YAAAjW,MAAAkY,QAAAzb,IAAAuB,IAAAC,IAAAM,IAAAC,IAAAgC,IAAAC,IAAA0E;AAAAhJ,WAAAE,MAxBvD;AAAA,IAAA6Z,sBAAAzZ;AAAAA,IAAA0Z,4BAAAnY;AAAAA,IAAAma,SAAAla;AAAAA,IAAAma,YAAA7Z;AAAAA,IAAAuB;AAAAA,IAAAC;AAAAA,IAAAqW;AAAAA,IAAAT;AAAAA,IAAAE;AAAAA,IAAA7I;AAAAA,IAAAiL;AAAAA,IAAAlC;AAAAA,IAAAC;AAAAA,IAAAhH;AAAAA,IAAA/J,SAAAzG;AAAAA,IAAA6X,QAAAJ;AAAAA,IAAAoC,UAAAN;AAAAA,IAAAG;AAAAA,IAAAI,QAAA9X;AAAAA,IAAA0F,OAAAzF;AAAAA,IAAA8X,SAAAP;AAAAA,IAAA7S;AAAAA,IAAA,GAAAnF;AAAAA,EAAAA,IAwBI3D,IAAmDF,OAAAE,IAAAF,OAAA4b,eAAA5b,OAAA6b,cAAA7b,OAAA2D,UAAA3D,OAAA4D,WAAA5D,OAAAia,YAAAja,OAAAwZ,QAAAxZ,OAAA0Z,QAAA1Z,OAAA6Q,IAAA7Q,OAAA8b,YAAA9b,QAAA4Z,gBAAA5Z,QAAA6Z,SAAA7Z,QAAA6S,SAAA7S,QAAA8Z,YAAA9Z,QAAA6D,MAAA7D,QAAA+b,QAAA/b,QAAAM,IAAAN,QAAA6B,IAAA7B,QAAA8B,IAAA9B,QAAAoC,IAAApC,QAAAqC,IAAArC,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAgJ,SAAA4S,gBAAA5b,EAAA,CAAA,GAAA6b,eAAA7b,EAAA,CAAA,GAAA2D,WAAA3D,EAAA,CAAA,GAAA4D,YAAA5D,EAAA,CAAA,GAAAia,aAAAja,EAAA,CAAA,GAAAwZ,SAAAxZ,EAAA,CAAA,GAAA0Z,SAAA1Z,EAAA,CAAA,GAAA6Q,KAAA7Q,EAAA,CAAA,GAAA8b,aAAA9b,EAAA,CAAA,GAAA4Z,iBAAA5Z,EAAA,EAAA,GAAA6Z,UAAA7Z,EAAA,EAAA,GAAA6S,UAAA7S,EAAA,EAAA,GAAA8Z,aAAA9Z,EAAA,EAAA,GAAA6D,OAAA7D,EAAA,EAAA,GAAA+b,SAAA/b,EAAA,EAAA,GAAAM,KAAAN,EAAA,EAAA,GAAA6B,KAAA7B,EAAA,EAAA,GAAA8B,KAAA9B,EAAA,EAAA,GAAAoC,KAAApC,EAAA,EAAA,GAAAqC,KAAArC,EAAA,EAAA,GAAAqE,KAAArE,EAAA,EAAA,GAAAsE,KAAAtE,EAAA,EAAA,GAAAgJ,OAAAhJ,EAAA,EAAA;AAvB/BuZ,QAAAA,YAAAjZ,OAAgBgB,cAAhBhB,IACMqZ,kBAAA9X,OAAuBP,cAAvBO,IACnBwa,WAAAva,OAAgBR,cAAhBQ,IACGwa,iBAAAla,OAAkBd,aAAlBc,IAWZ0G,UAAAzG,OAAWf,aAAXe,IAIQka,aAAAlY,OAAc/C,aAAd+C,IACR0F,QAAAzF,OAAShD,aAATgD,IAMFkY,eAAqBZ,iBAAiBD,QAAOO,YAAa,SAC1DO,cAAoBZ,gBAAgBF,QAAOS,WAAQM,UAAAC,QAEnDX,UAD6BY,wBAAwB,IACjB,KAAWP,UAC/CnC,SAAeC,aACfhB,gBAAsBW,aAAaI,OAAMzY,WAAYqY,UAAU,KAAA,OAAYI,OAAMxc,SACjF2D,kBAAwB+Y,qBAAoB1c,SAC5Cue,aAAmB7W,kBAAkBkX,cAAc,GACnDJ,WAAiB9W,kBAAkBoX,YAAY,GAC/CJ,UAAgBhX,kBAAkBqX,WAAW,GAC7CI,YAAkBjb,OAAA,IAAkC,GACpDkb,aAAmBlb,OAAA,IAAkC,GACrDmb,UAAgBnb,OAAA,IAAkC,GAClDob,oBAA0Bpb,OAAA,IAA+B;AAAC6D,MAAAA;AAAAzF,YAAA6S,WAGxDpN,KAAAyL,CAAA,UAAA;AACE2B,cAAU3B,KAAK;AAEf,UAAA1O,SAAe0O,MAAK1O,QACpBya,cAAoBF,QAAO/a;AAEvBib,QAAAA,eAAeza,WAAWqa,UAAS7a,SAAQ;AAC7C7C,0BAAoB8d,WAAW;AAAC;AAAA,IAAA;AAK9BA,QAAAA,eAAeza,WAAWsa,WAAU9a,SAAQ;AAC9CnD,2BAAqBoe,WAAW;AAAC;AAAA,IAAA;AAK/B/d,kBAAcgS,MAAK1O,MAAO,MAC5Bwa,kBAAiBhb,UAAWkP,MAAK1O;AAAAA,EAAA,GAEpCxC,QAAA6S,SAAA7S,QAAAyF,MAAAA,KAAAzF,EAAA,EAAA;AAtBHkd,QAAAA,cAAoBzX,IA0BpB+U,UAAgB,GAAG3J,EAAE,UAErBsM,sBAA4Bvb,OAAAN,MAAgC;AAACoE,MAAAA;AAAA1F,IAAAqB,EAAAA,MAAAA,mBAAArB,UAAAmZ,iBAKzBzT,KAAAA,MAAA;AAC9ByX,wBAAmBnb,WACrBob,aAAaD,oBAAmBnb,OAAQ,GAG1Cmb,oBAAmBnb,UAAWgP,WAAA,MAAA;AAC5B,YAAAnT,gBAAAD,SAAAC;AAA4C,UAExCA,kBAAkBqb,oBAAoB7X,iBAAiB8X,eAAetb,aAAa,GAAC;AACtF,cAAAid,WAAekC,kBAAiBhb;AAAQ,YAEpC,CAACQ,YAAM,CAAK5E,SAAAyf,KAAAvf,SAAuB0E,QAAM,GAAC;AAE5C,gBAAA8a,gBAAoBP,QAAO/a;AACvBib,2BAAape,qBAAqBoe,aAAW;AAAC;AAAA,QAAA;AAKpDza,iBAAM5D,MAAO;AAAA,MAAA;AAAA,OAAC,CAEd;AAAA,EACLoB,GAAAA,QAAAqB,iBAAArB,QAAAmZ,eAAAnZ,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAtBD,QAAAud,kBAAwB7X;AAsBYG,MAAAA;AAAA7F,YAAA4D,aAQnBiC,MAAA8W,OAAA;AAAA,IAAA/Y;AAAAA,EAAkB,CAAA,GAAC5D,QAAA4D,WAAA5D,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA;AAChB8F,QAAAA,MAAAkW,UAAU,KAAE1a;AAAY4E,MAAAA;AAAAlG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAatC8C,MAAA,oBAAA,OAAA,EAAU2W,KAAAA,WAAqB,UAAA,EAAK,CAAA,GAAA7c,QAAAkG,OAAAA,MAAAlG,EAAA,EAAA;AAAAmG,MAAAA;AAAAnG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAGvB+C,MAAAqX,gBAAgB,GAACxd,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AAAAqG,MAAAA;AAAArG,IAAAuZ,EAAAA,MAAAA,aAAAvZ,EAAAic,EAAAA,MAAAA,cAAAjc,EAAAuc,EAAAA,MAAAA,cAAAvc,EAAA2D,EAAAA,MAAAA,YAAA3D,EAAAia,EAAAA,MAAAA,cAAAja,EAAAwZ,EAAAA,MAAAA,UAAAxZ,EAAA0Z,EAAAA,MAAAA,UAAA1Z,UAAA2Z,mBAAA3Z,EAAA,EAAA,MAAA6Q,MAAA7Q,EAAA,EAAA,MAAA4Z,kBAAA5Z,EAAA,EAAA,MAAA6Z,WAAA7Z,EAAA,EAAA,MAAA8Z,cAAA9Z,EAAA,EAAA,MAAA+b,UAAA/b,EAAA,EAAA,MAAAgJ,QAAAhJ,EAAA,EAAA,MAAA+J,SAO5B1D,MAAC,oBAAA,YAAA,EACuBkT,iCACMI,6CAChBM,YACJT,QACAE,QACJ7I,IACY+I,gBACPC,SACDC,QAAAA,YACAmC,QAAAA,YACHc,KAAAA,SACGhB,QACAQ,QAAS,YACXvT,MACCe,iBAGT,GAAa/J,QAAAuZ,WAAAvZ,QAAAic,YAAAjc,QAAAuc,YAAAvc,QAAA2D,UAAA3D,QAAAia,YAAAja,QAAAwZ,QAAAxZ,QAAA0Z,QAAA1Z,QAAA2Z,iBAAA3Z,QAAA6Q,IAAA7Q,QAAA4Z,gBAAA5Z,QAAA6Z,SAAA7Z,QAAA8Z,YAAA9Z,QAAA+b,QAAA/b,QAAAgJ,MAAAhJ,QAAA+J,OAAA/J,QAAAqG,OAAAA,MAAArG,EAAA,EAAA;AAAAsG,MAAAA;AAAAtG,IAAAqG,EAAAA,MAAAA,OAAArG,UAAA+J,SA3BfzD,MAAC,oBAAA,WAAA,EACY,YAAA,UACA,WAAAH,KACH,WAAA,cACM,eAAA,UACN,SAAA,QACO,gBAAA,UACR4D,OAEP1D,UAAAA,IAAAA,CAmBF,GAAYrG,QAAAqG,KAAArG,QAAA+J,OAAA/J,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA;AAAAwG,MAAAA;AAAAxG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAEZoD,MAAA,oBAAA,OAAA,EAAUsW,KAAAA,YAAsB,UAAA,EAAK,CAAA,GAAA9c,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA;AAAAyG,MAAAA;AAAAzG,YAAAkd,eAAAld,EAAAud,EAAAA,MAAAA,mBAAAvd,EAAA,EAAA,MAAA6Q,MAAA7Q,UAAAwa,WAAAxa,EAAA8b,EAAAA,MAAAA,cAAA9b,EAAA8I,EAAAA,MAAAA,WAAA9I,EAAA,EAAA,MAAAkc,YAAAlc,UAAA6D,QAAA7D,EAAA6F,EAAAA,MAAAA,OAAA7F,EAAA,EAAA,MAAA8F,OAAA9F,UAAAsG,OAAAtG,EAAA,EAAA,MAAAoc,WAjDvC3V,2BAAC,OAAK,EAAA,GACA5C,MACa2W,mBAAM,SACvB,cAAS,IACE,WAAA3U,KACG,gBAAAC,KACN,WAAA,UACA,SAAA,QACJ+K,IACQiL,YACHyB,0BACAL,SAAAA,aACApU,SACCoT,UACL,MAAA,UACIE,SAGTlW,UAAAA;AAAAA,IAAAA;AAAAA,IACAI;AAAAA,IA8BAE;AAAAA,EACF,EAAA,CAAA,GAAQxG,QAAAkd,aAAAld,QAAAud,iBAAAvd,QAAA6Q,IAAA7Q,QAAAwa,SAAAxa,QAAA8b,YAAA9b,QAAA8I,SAAA9I,QAAAkc,UAAAlc,QAAA6D,MAAA7D,QAAA6F,KAAA7F,QAAA8F,KAAA9F,QAAAsG,KAAAtG,QAAAoc,SAAApc,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA;AAAA2G,MAAAA;AAAA,SAAA3G,EAAA8Z,EAAAA,MAAAA,cAAA9Z,UAAAyG,OAnDVE,MAAC,oBAAA,QAAwBmT,EAAAA,iBAAAA,YACvBrT,UAmDF,IAAA,CAAA,GAASzG,QAAA8Z,YAAA9Z,QAAAyG,KAAAzG,QAAA2G,OAAAA,MAAA3G,EAAA,EAAA,GApDT2G;AAoDS;AClNN,SAAA8W,eAAAja,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,CAAA,GACL;AAAA,IAAA0D;AAAAA,IAAAuY;AAAAA,IAAAE;AAAAA,EAAAA,IAAsC5Y;AAAK,MAAAtD,IAAAI;AAAAN,IAAAkc,CAAAA,MAAAA,YAAAlc,SAAAoc,WAGlC9b,KAAA;AAAA,IAAAoK,SAAA;AAAA,IAAAwR;AAAAA,IAAAE;AAAAA,EAAAA,GAINpc,OAAAkc,UAAAlc,OAAAoc,SAAApc,OAAAM,MAAAA,KAAAN,EAAA,CAAA,GAAAE,KAJMI;AADT,QAAAod,eAAyCxd;AAOxC2B,MAAAA;AAAA,SAAA7B,EAAA2D,CAAAA,MAAAA,YAAA3D,SAAA0d,gBAEM7b,KAAA,oBAAA,cAAA,UAAA,EAA+B6b,OAAAA,cAAe/Z,SAAAA,CAAS,GAAyB3D,OAAA2D,UAAA3D,OAAA0d,cAAA1d,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA,GAAhF6B;AAAgF;ACiClF,SAAA8b,WAAAna,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,EAAA,GACL;AAAA,IAAA2d,uCAAA1d;AAAAA,IAAAmB,iBAAAwc;AAAAA,IAAAC,QAAAC;AAAAA,IAAAlN;AAAAA,IAAAmN,MAAAC;AAAAA,IAAApE;AAAAA,IAAAqE;AAAAA,IAAAC,WAAAC;AAAAA,IAAAC,eAAAC;AAAAA,IAAApE,QAAA5Z;AAAAA,IAAA8S;AAAAA,IAAAmL,eAAAC;AAAAA,IAAAC,iBAAAC;AAAAA,IAAAzb,KAAAqG;AAAAA,EAeI9F,IAAAA,OAdqCmb,6BAAAze,OAAkCoB,cAAlCpB,IAS/B0e,oBAAAte,OAAwBgB,cAAxBhB,IAMV,CAAAmQ,MAAA+H,OAAA,IAAwBhY,WAAc,GACtC,CAAAqe,aAAAC,cAAA,IAAsCte,aAAsC,GAC5E,CAAAue,eAAAC,gBAAA,IAA0Cxe,aAAuC;AAACqB,MAAAA;AAAA7B,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACbvB,KAAA,CAAA,GAAE7B,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA;AAAvE,QAAA,CAAAif,cAAAC,oBAAA,IAA6C1e,SAAwBqB,EAAE,GACvEsd,UAAgBvd,OAAgB6O,IAAI;AAAC,MAAA3O,IAAAM;AAAApC,IAAAke,CAAAA,MAAAA,UAAAle,SAAAyQ,QAG3B3O,KAAAA,MAAA;AACJoc,cAAUzN,QAAS0O,CAAAA,QAAOnd,WAC5Bkc,OAAO;AAAA,EAER9b,GAAAA,KAAA,CAAC8b,QAAQzN,IAAI,GAACzQ,OAAAke,QAAAle,OAAAyQ,MAAAzQ,OAAA8B,IAAA9B,OAAAoC,OAAAN,KAAA9B,EAAA,CAAA,GAAAoC,KAAApC,EAAA,CAAA,IAJjBmC,UAAUL,IAIPM,EAAc;AAAC,MAAAC,IAAAgC;AAAArE,IAAA6Z,CAAAA,MAAAA,WAAA7Z,SAAAyQ,QAGRpO,KAAAA,MAAA;AACJwX,eAAYpJ,CAAAA,QAAQ0O,QAAOnd,WAC7B6X,QAAQ;AAAA,EAETxV,GAAAA,KAAA,CAACwV,SAASpJ,IAAI,GAACzQ,OAAA6Z,SAAA7Z,OAAAyQ,MAAAzQ,OAAAqC,IAAArC,OAAAqE,OAAAhC,KAAArC,EAAA,CAAA,GAAAqE,KAAArE,EAAA,CAAA,IAJlBmC,UAAUE,IAIPgC,EAAe;AAAC,MAAAC,IAAAmB;AAAAzF,WAAAyQ,QAETnM,KAAAA,MAAA;AACR6a,YAAOnd,UAAWyO;AAAAA,EAAI,GACrBhL,MAACgL,IAAI,GAACzQ,OAAAyQ,MAAAzQ,QAAAsE,IAAAtE,QAAAyF,OAAAnB,KAAAtE,EAAA,EAAA,GAAAyF,KAAAzF,EAAA,EAAA,IAFTmC,UAAUmC,IAEPmB,EAAM;AAACC,MAAAA;AAAA1F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAE4BsC,KAAAA,MAAA;AAC7BM,YAAAA,OAAU,GACjB8Y,mBAAmB;AAAA,EAAA,GACpB9e,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAHD,QAAAof,oBAA0B1Z;AAGpBG,MAAAA;AAAA7F,YAAAyQ,QAMJ5K,MAAAqL,CAAA,UAAA;AACMT,YAAMS,MAAK0E,eAAgB;AAAA,EAAC,GACjC5V,QAAAyQ,MAAAzQ,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA;AAHH,QAAAqf,kBAAwBxZ;AAKvBC,MAAAA;AAAA9F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAEuC0C,MAAA+U,CAAA,YAAA;AAGlC3J,QAAAA,QAAK5C,QAAS,eAAe4C,QAAK5C,QAAS,WAAW4C,QAAK5C,QAAS,KAAG;AACzE4C,cAAK0E,kBACL4C,UAAY,GACZsG,eAAe,OAAO;AAAC;AAAA,IAAA;AAOrB5N,QAAAA,QAAK5C,QAAS,WAAS;AACzB4C,cAAK0E,kBACL4C,UAAY,GACZsG,eAAe,MAAM;AAAC;AAAA,IAAA;AAAA,EAAA,GAIzB9e,QAAA8F,OAAAA,MAAA9F,EAAA,EAAA;AApBD,QAAAsf,sBAA4BxZ;AAoBtBI,MAAAA;AAAAlG,IAAA+e,EAAAA,MAAAA,iBAAA/e,UAAAif,gBAGJ/Y,MAAAqZ,CAAA,YAAA;AACE,UAAA/c,SAAe0O,QAAK1O;AAEdA,QAAAA,kBAAMC,QAIRsc,EAAkBvc,kBAAAA,WAAWuc,iBAAiBA,cAAajhB,SAAU0E,MAAM,KAAE;AAAA,iBAI5EnD,MAAY4f;AAAY,YACvBzc,WAAWnD,MAAMA,GAAEvB,SAAU0E,MAAM;AAAC;AAK1CgW,gBAAa;AAAA,IAAA;AAAA,EACdxY,GAAAA,QAAA+e,eAAA/e,QAAAif,cAAAjf,QAAAkG,OAAAA,MAAAlG,EAAA,EAAA;AAnBH,QAAAwf,yBAA+BtZ;AAqB9BC,MAAAA;AAAAnG,IAAA+e,EAAAA,MAAAA,iBAAA/e,UAAA2e,8BAEoCxY,MAAAA,MAAA;AACnCqS,cAAa,GACTmG,CACAI,8BAAAA,iBAAeA,cAAangB,MAAO;AAAA,EACxCoB,GAAAA,QAAA+e,eAAA/e,QAAA2e,4BAAA3e,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA;AAJD,QAAAyf,mBAAyBtZ;AAIsBE,MAAAA;AAAArG,YAAAif,gBAG7C5Y,MAAAqZ,CAAA,YAAA;AACE,UAAA5E,WAAe5J,QAAKyO;AAAc,QAE5Bnd,oBAAMC,MAAgB;AAAA,iBAIvBP,QAAY+c;AAAY,YACvB5f,SAAOmD,YAAUnD,KAAEvB,SAAU0E,QAAM;AAAC;AAK1CgW,gBAAa;AAAA,IAAA;AAAA,EAAC,GACfxY,QAAAif,cAAAjf,QAAAqG,OAAAA,MAAArG,EAAA,EAAA;AAfH,QAAA4f,aAAmBvZ;AAiBlBC,MAAAA;AAAAtG,IAAA+e,EAAAA,MAAAA,iBAAA/e,UAAA2e,8BAEmCrY,MAAAA,MAAA;AAClCkS,cAAa,GACTmG,CACAI,8BAAAA,iBAAeA,cAAangB,MAAO;AAAA,EACxCoB,GAAAA,QAAA+e,eAAA/e,QAAA2e,4BAAA3e,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA;AAJD,QAAA6f,kBAAwBvZ;AAIuBE,MAAAA;AAAAxG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAEXoD,MAAA9D,CAAAA,UAClCwc,qBAAoBY,CAAUA,QAAAA,IAAG3K,OAAS9V,CAAAA,IAAE,CAAC,CAAC,GAAC,MAElC6f,qBAAoBa,CAAAA,UAAUD,MAAG5e,OAAA8e,SAAiBA,QAAQ3gB,IAAE,CAAC,IAC3EW,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA;AAJD,QAAAigB,kBAAwBzZ;AAIlBC,MAAAA;AAAAzG,IAAA,EAAA,MAAA+e,iBAAA/e,EAAA,EAAA,MAAA4f,cAAA5f,EAAA,EAAA,MAAA6f,mBAAA7f,EAAAwf,EAAAA,MAAAA,0BAAAxf,EAAAyf,EAAAA,MAAAA,oBAAAzf,EAAA6Q,EAAAA,MAAAA,MAAA7Q,EAAAie,EAAAA,MAAAA,YAAAje,UAAA6e,eAaOpY,MAAAwX,YAAYxV,aAAawV,UAXtC;AAAA,IAAA,mBACqBpN;AAAAA,IAAE,eACJ+O;AAAAA,IAAU,gBACTJ;AAAAA,IAAsB,UAC5BC;AAAAA,IAAgB,aACbI;AAAAA,IAAe,eACbd;AAAAA,IAAakB;AAAAA,IAAApB;AAAAA,EAAAA,CAKyB,GAAC7e,QAAA+e,eAAA/e,QAAA4f,YAAA5f,QAAA6f,iBAAA7f,QAAAwf,wBAAAxf,QAAAyf,kBAAAzf,QAAA6Q,IAAA7Q,QAAAie,UAAAje,QAAA6e,aAAA7e,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA;AAA1D,QAAAge,OAAavX;AAA6CE,MAAAA;AAAA,OAAA;AAAA,QAAA,CAGnDoX,YAAU;AAAE,YAAA;AAAWhQ,YAAAA;AAAAA,IAAAA;AAWdnH,UAAAA,OAAAmX,WAAUva,MAAAuN,YAAmBN;AAAI1J,QAAAA;AAAA/G,MAAA+d,EAAAA,MAAAA,cAAA/d,EAAA,EAAA,MAAAqf,mBAAArf,EAAA6Q,EAAAA,MAAAA,MAAA7Q,EAAA,EAAA,MAAAyQ,QAAAzQ,UAAA4G,QAGxCG,OAAA0B,aAAasV,YAZpB;AAAA,MAAA,WACa;AAAA,MAAYlN;AAAAA,MAAA,SAEZuO;AAAAA,MAAiB,WACfE;AAAAA,MAAmB,aACjBD;AAAAA,MAAe,iBAAA;AAAA,MAAA,iBAEb5O;AAAAA,MAAI,KACduO;AAAAA,MAAgB,UACXpY;AAAAA,IAG6B,CAAA,GAAC5G,QAAA+d,YAAA/d,QAAAqf,iBAAArf,QAAA6Q,IAAA7Q,QAAAyQ,MAAAzQ,QAAA4G,MAAA5G,QAAA+G,QAAAA,OAAA/G,EAAA,EAAA,GAA5C2G,MAAOI;AAAAA,EAAAA;AAfT,QAAA+W,SAAenX;AAgBoE,MAAAC,KAAAG;AAAA/G,YAAA+e,iBAKjFnY,MAAAA,MAAMmY,eACNhY,OAACgY,aAAa,GAAC/e,QAAA+e,eAAA/e,QAAA4G,KAAA5G,QAAA+G,QAAAH,MAAA5G,EAAA,EAAA,GAAA+G,MAAA/G,EAAA,EAAA,IAHjBqD,oBACEiG,cACA1C,KACAG,GACF;AAAC,MAAAmZ,KAAAC;AAAAngB,YAAAoT,WAWO+M,MAAA/M,WAAa,CAAApT,GAAAA,QAAAoT,SAAApT,QAAAmgB,OAAAA,MAAAngB,EAAA,EAAA;AAAAogB,MAAAA;AAAApgB,IAAA6d,EAAAA,MAAAA,8BAAA7d,EAAAoe,EAAAA,MAAAA,wBAAApe,EAAAwe,EAAAA,MAAAA,4BAAAxe,UAAAse,4BAAAte,EAAA,EAAA,MAAA4e,qBAAA5e,EAAA,EAAA,MAAA0e,8BAAA1e,EAAA,EAAA,MAAAmgB,OARZC,MAAA;AAAA,IAAA/e,iBACYwc;AAAAA,IAA0BwC,UACjC;AAAA,IAAMlC,WACLC;AAAAA,IAAoBlE,QACvB0E;AAAAA,IAAiBH,iBACRC;AAAAA,IAA0B3V,QACnCyV;AAAAA,IAAwBzC,QACxBuC;AAAAA,IAAwB,GAC5B6B;AAAAA,EAAAA,GACLngB,QAAA6d,4BAAA7d,QAAAoe,sBAAApe,QAAAwe,0BAAAxe,QAAAse,0BAAAte,QAAA4e,mBAAA5e,QAAA0e,4BAAA1e,QAAAmgB,KAAAngB,QAAAogB,OAAAA,MAAApgB,EAAA,EAAA,GAAAkgB,MATME;AADT,QAAAE,eAAiDJ;AAoBhDK,MAAAA;AAAAvgB,YAAA8d,UAIIyC,MAAAzC,4CAAe,GAAA9d,QAAA8d,QAAA9d,QAAAugB,OAAAA,MAAAvgB,EAAA,EAAA;AAAAwgB,MAAAA;AAAAxgB,SAAAA,EAAA,EAAA,MAAAge,QAAAhe,EAAAyQ,EAAAA,MAAAA,QAAAzQ,EAAAsgB,EAAAA,MAAAA,gBAAAtgB,UAAAugB,OADlBC,MAAA,oBAAC,WAAgB,WAAA,uBAA0BF,GAAAA,cAAuBtC,SAAAA,MAAYvN,MAC3E8P,UACH,IAAA,CAAA,GAAUvgB,QAAAge,MAAAhe,QAAAyQ,MAAAzQ,QAAAsgB,cAAAtgB,QAAAugB,KAAAvgB,QAAAwgB,OAAAA,MAAAxgB,EAAA,EAAA,GAFVwgB;AAEU;AAzMP,SAAAxa,QAAA0P,GAAA;AAAA,SAAA,CA0CaA;AAAC;ACpGd,MAAM+K,2BAA2B;AAyBjC,SAAAC,SAAAld,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GASDC,KAAAsD;AAAuDI,MAAAA,WAAAsM,OAAAnH,QAAAlF,MAAAvD;AAAAN,WAAAE,MAN3D;AAAA,IAAAygB,UAAArgB;AAAAA,IAAAsD;AAAAA,IAAAsM;AAAAA,IAAAnH;AAAAA,IAAA,GAAAlF;AAAAA,EAAAA,IAMI3D,IAAuDF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAAkQ,OAAAlQ,OAAA+I,QAAA/I,OAAA6D,MAAA7D,OAAAM,OAAAsD,YAAA5D,EAAA,CAAA,GAAAkQ,QAAAlQ,EAAA,CAAA,GAAA+I,SAAA/I,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AALzD2gB,QAAAA,WAAArgB,OAAgBgB,cAAhBhB,IAOFsgB,CAAAA,SAAAC,UAAA,IAA8BrgB,SAAkB0P,CAAoB,KAAA;AAAC,MAAArO,IAAAC;AAAA9B,WAAAkQ,SAE3DrO,KAAAA,MAAA;AAAA,QAAA,CACHqO;AAAK,aACD2Q,aAAe;AAGxBC,UAAAA,UAAgB9P,WAAA,MAAA;AACd6P,mBAAe;AAAA,OACd3Q,KAAK;AAAC,WAAA,MAAA;AAGPkN,mBAAa0D,OAAO;AAAA,IAAC;AAAA,EAAA,GAEtBhf,MAACoO,KAAK,GAAClQ,OAAAkQ,OAAAlQ,OAAA6B,IAAA7B,OAAA8B,OAAAD,KAAA7B,EAAA,CAAA,GAAA8B,KAAA9B,EAAA,CAAA,IAZVmC,UAAUN,IAYPC,EAAO;AAACM,MAAAA;AAAApC,IAAA4D,CAAAA,MAAAA,aAAA5D,UAAA+I,UAMI3G,KAAA2e,SAAA;AAAA,IAAAnd;AAAAA,IAAAmF;AAAAA,EAAAA,CAGV,GAAC/I,OAAA4D,WAAA5D,QAAA+I,QAAA/I,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AACa,QAAAqC,KAAAse,WAAW,KAAErf,QACd+C,KAAAuc,UAAU,KAAEtf;AAAYgD,MAAAA;AAAAtE,SAAAA,EAAA,EAAA,MAAA6D,QAAA7D,EAAAoC,EAAAA,MAAAA,MAAApC,EAAAqC,EAAAA,MAAAA,MAAArC,UAAAqE,MARxCC,KAAC,oBAAA,KAAA,EACS,WAAA,YAAU,GACdT,MACO,WAAAzB,IAII,iBAAAC,IACD,gBAAAgC,GAAAA,CACd,GAAArE,QAAA6D,MAAA7D,QAAAoC,IAAApC,QAAAqC,IAAArC,QAAAqE,IAAArE,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA,GATFsE;AASE;AC9DC,MAAM0c,gCAAgC;AAuBtC,SAAAC,aAAAzd,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAODC,KAAAsD;AAAgE,MAAAI,WAAAC,MAAAvD;AAAAN,WAAAE,MAJpE;AAAA,IAAA0D;AAAAA,IAAAK,MAAA3D;AAAAA,IAAA,GAAAuD;AAAAA,EAII3D,IAAAA,IAAgEF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,OAAAsD,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAFlEiE,QAAAA,OAAA3D,OAAQgB,aAARhB;AAAQuB,MAAAA;AAAA7B,IAAA4D,CAAAA,MAAAA,aAAA5D,SAAAiE,QAOKpC,KAAAqf,aAAA;AAAA,IAAAtd;AAAAA,IAAAK;AAAAA,EAAAA,CAGV,GAACjE,OAAA4D,WAAA5D,OAAAiE,MAAAjE,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA;AAAA8B,MAAAA;AAAA,SAAA9B,EAAA6D,CAAAA,MAAAA,QAAA7D,SAAA6B,MALJC,KAAA,oBAAC,UAAQ,EAAA,GACH+B,MACO,WAAAhC,GAAAA,CAIX,GAAA7B,OAAA6D,MAAA7D,OAAA6B,IAAA7B,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GANF8B;AAME;ACvCC,MAAMqf,mCAAmC;AAsBzC,SAAAC,gBAAA5d,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAODC,KAAAsD;AAAsE,MAAAI,WAAAC,MAAAvD;AAAAN,WAAAE,MAJ1E;AAAA,IAAA0D;AAAAA,IAAAK,MAAA3D;AAAAA,IAAA,GAAAuD;AAAAA,EAII3D,IAAAA,IAAsEF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,OAAAsD,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAFxEiE,QAAAA,OAAA3D,OAAQgB,aAARhB;AAAQuB,MAAAA;AAAA7B,IAAA4D,CAAAA,MAAAA,aAAA5D,SAAAiE,QAOKpC,KAAAwf,gBAAA;AAAA,IAAAzd;AAAAA,IAAAK;AAAAA,EAAAA,CAGV,GAACjE,OAAA4D,WAAA5D,OAAAiE,MAAAjE,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA;AAAA8B,MAAAA;AAAA,SAAA9B,EAAA6D,CAAAA,MAAAA,QAAA7D,SAAA6B,MALJC,KAAA,oBAAC,UAAQ,EAAA,GACH+B,MACO,WAAAhC,GAAAA,CAIX,GAAA7B,OAAA6D,MAAA7D,OAAA6B,IAAA7B,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GANF8B;AAME;ACtCC,MAAMwf,iCAAiC;AAqBvC,SAAAC,cAAA/d,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAODC,KAAAsD;AAAkE,MAAAI,WAAAC,MAAAvD;AAAAN,WAAAE,MAJtE;AAAA,IAAA0D;AAAAA,IAAAK,MAAA3D;AAAAA,IAAA,GAAAuD;AAAAA,EAII3D,IAAAA,IAAkEF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,OAAAsD,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAFpEiE,QAAAA,OAAA3D,OAAQgB,aAARhB;AAAQuB,MAAAA;AAAA7B,IAAA4D,CAAAA,MAAAA,aAAA5D,SAAAiE,QAOKpC,KAAA2f,cAAA;AAAA,IAAA5d;AAAAA,IAAAK;AAAAA,EAAAA,CAGV,GAACjE,OAAA4D,WAAA5D,OAAAiE,MAAAjE,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA;AAAA8B,MAAAA;AAAA,SAAA9B,EAAA6D,CAAAA,MAAAA,QAAA7D,SAAA6B,MALJC,KAAA,oBAAC,UAAQ,EAAA,GACH+B,MACO,WAAAhC,GAAAA,CAIX,GAAA7B,OAAA6D,MAAA7D,OAAA6B,IAAA7B,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GANF8B;AAME;ACrCC,MAAM2f,gCAAgC;AAuBtC,SAAAC,aAAAle,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAODC,KAAAsD;AAAgE,MAAAI,WAAAC,MAAAvD;AAAAN,WAAAE,MAJpE;AAAA,IAAA0D;AAAAA,IAAAK,MAAA3D;AAAAA,IAAA,GAAAuD;AAAAA,EAII3D,IAAAA,IAAgEF,OAAAE,IAAAF,OAAA4D,WAAA5D,OAAA6D,MAAA7D,OAAAM,OAAAsD,YAAA5D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAFlEiE,QAAAA,OAAA3D,OAAQgB,aAARhB;AAAQuB,MAAAA;AAAA7B,IAAA4D,CAAAA,MAAAA,aAAA5D,SAAAiE,QAOKpC,KAAA8f,aAAA;AAAA,IAAA/d;AAAAA,IAAAK;AAAAA,EAAAA,CAGV,GAACjE,OAAA4D,WAAA5D,OAAAiE,MAAAjE,OAAA6B,MAAAA,KAAA7B,EAAA,CAAA;AAAA8B,MAAAA;AAAA,SAAA9B,EAAA6D,CAAAA,MAAAA,QAAA7D,SAAA6B,MALJC,KAAA,oBAAC,UAAQ,EAAA,GACH+B,MACO,WAAAhC,GAAAA,CAIX,GAAA7B,OAAA6D,MAAA7D,OAAA6B,IAAA7B,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GANF8B;AAME;AC1CC,MAAM8f,4BAA4B;AAqBlC,SAAAC,SAAAre,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAQDC,KAAAsD;AAAwDG,MAAAA,UAAAE,MAAAvD,IAAAtC;AAAAgC,WAAAE,MAL5D;AAAA,IAAA6D,IAAAzD;AAAAA,IAAAqD;AAAAA,IAAA3F;AAAAA,IAAA,GAAA6F;AAAAA,EAAAA,IAKI3D,IAAwDF,OAAAE,IAAAF,OAAA2D,UAAA3D,OAAA6D,MAAA7D,OAAAM,IAAAN,OAAAhC,aAAA2F,WAAA3D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAAhC,WAAAgC,EAAA,CAAA;AAJ1D+D,QAAAA,KAAAzD,OAA8BgB,SAAAsgB,4BAA9BthB,IAYYuB,KAAA7D,aAAQsD,aAAqBtD;AAAQ8D,MAAAA;AAAA9B,SAAAA,EAAA,CAAA,MAAA+D,MAAA/D,EAAA2D,CAAAA,MAAAA,YAAA3D,EAAA6D,CAAAA,MAAAA,QAAA7D,SAAA6B,MALjDC,KAAC,oBAAA,KAAA,EACS,WAAA,YACJ+B,GAAAA,MACAE,IACC,MAAA,YACK,UAAAlC,IAEF,SAAA,CACV,GAAM7B,OAAA+D,IAAA/D,OAAA2D,UAAA3D,OAAA6D,MAAA7D,OAAA6B,IAAA7B,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GARN8B;AAQM;AClCH,MAAMggB,wBAAwB,MAqB/BC,QAAQ;AAAA,EACZhX,OAAO;AAAA,EACPiX,SAAS;AAAA,EACTC,SAAS;AAAA,EACT9W,MAAM;AACR,GAEM+W,mBAAmB;AAAA,EACvBnX,OAAO;AAAA,EACPiX,SAAS;AAAA,EACTC,SAAS;AAAA,EACT9W,MAAM;AACR,GAEMgX,cAAc;AAAA,EAClBpX,OAAO;AAAA,EACPiX,SAAS;AAAA,EACTC,SAAS;AAAA,EACT9W,MAAM;AACR;AASO,SAAAiX,MAAA5e,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAgBDC,KAAAsD;AAAiD,MAAA6e,UAAAC,aAAAzI,SAAAhW,MAAAqB,QAAA5E,IAAAuB,IAAAkD;AAAA/E,MAAAA,SAAAE,IAAA;AAbrD,UAAA;AAAA,MAAA6D,IAAAjC;AAAAA,MAAAugB,UAAAjgB;AAAAA,MAAAkgB,aAAAjgB;AAAAA,MAAAkgB;AAAAA,MAAA1I,SAAAxV;AAAAA,MAAA0E,QAAAzE;AAAAA,MAAAS,OAAAU;AAAAA,MAAAP,QAAAQ;AAAAA,MAAA8c;AAAAA,MAAA,GAAA3c;AAAAA,IAAAA,IAaI3F;AAbJ4B,SAAAA,KAAAugB,WAAAjgB,KAAAkgB,cAAAjgB,KAAAwX,UAAAxV,KAAAxC,KAAAyC,KAAAS,QAAAU,KAAAP,SAAAQ,KAAA7B,OAAAgC,MAaqD7F,OAAAE,IAAAF,OAAAqiB,UAAAriB,OAAAsiB,aAAAtiB,OAAA6Z,SAAA7Z,OAAA6D,MAAA7D,OAAAkF,QAAAlF,OAAAM,IAAAN,OAAA6B,IAAA7B,OAAA+E;AAAAA,EAAA;AAAAsd,eAAAriB,EAAA,CAAA,GAAAsiB,cAAAtiB,EAAA,CAAA,GAAA6Z,UAAA7Z,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAkF,SAAAlF,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA,GAAA6B,KAAA7B,EAAA,CAAA,GAAA+E,QAAA/E,EAAA,CAAA;AAZnD,QAAA+D,KAAAzD,OAA0BgB,SAAAwgB,wBAA1BxhB,IAMAyI,SAAAlH,OAAUP,aAAVO,IAQF4gB,WAAiBvd,SAAMgd,iBAAoBhd,MAAM,IAAI,WACrDwd,aAAmBxd,SAAMid,YAAejd,MAAM,IAAI,WAClDyd,OAAazd,SAAM6c,MAAS7c,MAAM,IAAI,UAItC0d,iBAF6BhG,wBAAAA,IAEiC,IAAA;AAAA9a,MAAAA;AAAA9B,WAAA4iB,kBAC3C9gB,KAAA8gB,iBAAc;AAAA,IAAAtkB,MAAU;AAAA,IAAQskB;AAAAA,IAAAC,QAAA;AAAA,EAAA,IAAA;AAAA,IAAAN,UAAA;AAAA,EAAA,GAA+CviB,OAAA4iB,gBAAA5iB,QAAA8B,MAAAA,KAAA9B,EAAA,EAAA;AAAlG,QAAA8iB,aAAmBhhB;AAA+EM,MAAAA;AAAApC,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAG7DhB,KAAA,CAAC,UAAU,SAAS,GAACpC,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AAA1D,QAAA+iB,UAAqC3gB;AAAqBC,MAAAA;AAAArC,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACrBf,KAAA,CAAC,WAAW,SAAS,GAACrC,QAAAqC,MAAAA,KAAArC,EAAA,EAAA;AAA3D,QAAAgc,UAAqC3Z;AAAsBgC,MAAAA;AAAArE,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACzBiB,KAAA,CAAC,UAAU,UAAU,GAACrE,QAAAqE,MAAAA,KAAArE,EAAA,EAAA;AAAxD,QAAAgjB,OAAkC3e;AAAsBC,MAAAA;AAAAtE,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAKzCkB,KAAA2e,MAAM,GAACjjB,QAAAsE,MAAAA,KAAAtE,EAAA,EAAA;AAAAyF,MAAAA;AAAAzF,YAAA+E,SAmBXU,KAAAV,SACE,oBAAA,MAAA,EAAW,MAAA,GAAU,QAAA,2BAEtB,GACD/E,QAAA+E,OAAA/E,QAAAyF,MAAAA,KAAAzF,EAAA,EAAA;AAAA0F,MAAAA;AAAA1F,IAAAsiB,EAAAA,MAAAA,eAAAtiB,UAAA8iB,cACApd,KAAA4c,eACE,oBAAA,YAAA,EAAW,OAAI,IAAQ,MAAA,GAAa9K,UAAAA,SAAqBsL,YACvDR,uBACH,GACDtiB,QAAAsiB,aAAAtiB,QAAA8iB,YAAA9iB,QAAA0F,MAAAA,KAAA1F,EAAA,EAAA;AAAA6F,MAAAA;AAAA7F,IAAAyF,EAAAA,MAAAA,MAAAzF,UAAA0F,MAXLG,MAAC,oBAAA,QAAW,MAAC,GAAY,WAAA,QAAgB,YACvC,UAAC,qBAAA,OAAA,EAAW,KAAC,GACVJ,UAAAA;AAAAA,IAAAA;AAAAA,IAKAC;AAAAA,EAAAA,EAKH,CAAA,EACF,CAAA,GAAO1F,QAAAyF,IAAAzF,QAAA0F,IAAA1F,QAAA6F,OAAAA,MAAA7F,EAAA,EAAA;AAAA8F,MAAAA;AAAA9F,IAAA0iB,EAAAA,MAAAA,cAAA1iB,UAAAqiB,YAAAriB,EAAA,EAAA,MAAA6Z,WAEN/T,MAAAuc,YACE,oBAAA,KAAA,EAAa,SAAA,GACZ,UAAC,oBAAA,QAAA,EACI,IAAA,UACGnH,MAAAA,WACD,MAAA,SACI,YACHwH,MAAS,YACN7I,kBACF,OAAA;AAAA,IAAAqJ,eAAgB;AAAA,EAAA,GAAM,GAEjC,GACDljB,QAAA0iB,YAAA1iB,QAAAqiB,UAAAriB,QAAA6Z,SAAA7Z,QAAA8F,OAAAA,MAAA9F,EAAA,EAAA;AAAAkG,MAAAA;AAAAlG,IAAA6F,EAAAA,MAAAA,OAAA7F,UAAA8F,OAAA9F,EAAA,EAAA,MAAA8iB,cA5BH5c,MAAC,qBAAA,YAAA,EAAiB,OAAA,cAAuBsR,UAAAA,SAAqBsL,YAC5Djd,UAAAA;AAAAA,IAAAA;AAAAA,IAeCC;AAAAA,EAAAA,GAaH,GAAa9F,QAAA6F,KAAA7F,QAAA8F,KAAA9F,QAAA8iB,YAAA9iB,QAAAkG,OAAAA,MAAAlG,EAAA,EAAA;AAAAmG,MAAAA;AAAAnG,SAAAA,EAAA,EAAA,MAAA+D,MAAA/D,EAAA,EAAA,MAAAyiB,YAAAziB,EAAA,EAAA,MAAA+I,UAAA/I,EAAA6D,EAAAA,MAAAA,QAAA7D,EAAA2iB,EAAAA,MAAAA,QAAA3iB,EAAAkG,EAAAA,MAAAA,OAAAlG,EAAA8iB,EAAAA,MAAAA,cAAA9iB,UAAA4iB,kBA/Cfzc,MAAC,oBAAA,YAAA,EACKpC,IACO,WAAAO,IACH,WAAA,SACFqe,MACF9e,GAAAA,MACI+e,wBACA7Z,QACA,QAAA,GACF0Z,MAAO,UACN,QAAA,YACGzY,UAAAA,WACD+Y,SACA/G,SACHgH,MACMF,YACH,UAAA,YAET5c,UAAAA,IA8BF,CAAA,GAAalG,QAAA+D,IAAA/D,QAAAyiB,UAAAziB,QAAA+I,QAAA/I,QAAA6D,MAAA7D,QAAA2iB,MAAA3iB,QAAAkG,KAAAlG,QAAA8iB,YAAA9iB,QAAA4iB,gBAAA5iB,QAAAmG,OAAAA,MAAAnG,EAAA,EAAA,GAhDbmG;AAgDa;AAIjB,MAAM6D,YAAY;AAAA,EAChB+Y,SAAS;AAAA,IAACI,GAAG;AAAA,IAAIC,OAAO;AAAA,IAAKC,QAAQ;AAAA,EAAC;AAAA,EACtC1L,QAAQ;AAAA,IAAC2L,SAAS;AAAA,EAAC;AAAA,EACnB1C,SAAUgC,oBACHA,iBAEE;AAAA,IACLU,SAAS;AAAA,IACTR,YAAY;AAAA,MACVS,MAAM;AAAA,MACNC,iBAAiBZ,iBAAiB;AAAA,MAClCL,UAAUK,iBAAiB;AAAA,IAAA;AAAA,EAC7B,IAR0B;AAAA,IAACU,SAAS;AAAA,EAAC;AAAA,EAWzCG,SAAS;AAAA,IACPN,GAAG;AAAA,IACHC,OAAO;AAAA,EACT;AAAA,EACAM,UAAU;AAAA,IACRL,QAAQ;AAAA,IACRD,OAAO;AAAA,EAAA;AAEX,GAGM5L,UAAU;AAAA,EACduL,SAAS;AAAA,IACPY,YAAY;AAAA,EACd;AAAA,EACAhM,QAAQ;AAAA,IACN2L,SAAS;AAAA,EACX;AAAA,EACA1C,SAAS;AAAA,IACP0C,SAAS;AAAA,EAAA;AAEb,GAEMM,aAAaC,OAAOC,OAAOC,IAAI,GAC/BC,aAAaH,OAAOC,OAAOG,IAAI,GAC/BC,aAAaL,OAAOC,OAAOK,IAAI;AClL9B,SAAAC,aAAA;AACEC,SAAAA,qBAAAC,WAAAte,SAAAue,MAIP;AAAC;AALI,SAAAA,SAAA;AAAA,SAAA;AAAA;AAAA,SAAAve,UAAA;AAAA,SAAA;AAAA;AAQP,MAAMse,YAAYA,MAAM,MAAM;AAAC,GCXlBE,eAAelJ,0BAC1B,4BACA,IACF,GCCamJ,8BAA8B;AAiBpC,SAAAC,WAAAlhB,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,EAAA,GAGL;AAAA,IAAA8D,IAAA7D;AAAAA,IAAAyD;AAAAA,IAAAmF,SAAAxI;AAAAA,IAAAqkB;AAAAA,IAAAC;AAAAA,IAAAra,KAAA1I;AAAAA,EAAAA,IAOI2B,OANFO,KAAA7D,OAAgCoB,SAAAmjB,8BAAhCvkB,IAEA4I,UAAAxI,OAAWgB,aAAXhB,IAGAiK,MAAA1I,OAAOP,aAAPO,IAGF;AAAA,IAAAwhB;AAAAA,MAAiB/I,SAAS;AAACxY,MAAAA;AAAA9B,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAKZtB,KAAA+iB,WAAW,GAAC7kB,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA;AAAAoC,MAAAA;AAAApC,WAAAqjB,UAOhBjhB,KAAA;AAAA,IAAAihB;AAAAA,EAAA,GAAQrjB,OAAAqjB,QAAArjB,OAAAoC,MAAAA,KAAApC,EAAA,CAAA;AAAAqC,MAAAA;AAAA,SAAArC,EAAA+D,CAAAA,MAAAA,MAAA/D,EAAA2D,CAAAA,MAAAA,YAAA3D,EAAAuK,CAAAA,MAAAA,OAAAvK,SAAA8I,WAAA9I,EAAA,CAAA,MAAA2kB,YAAA3kB,EAAA,CAAA,MAAA4kB,YAAA5kB,EAAA,CAAA,MAAAoC,MATjBC,KAAC,oBAAA,MAAA,EACK0B,IACO,WAAAjC,IACH,WAAA,iBACCgH,SACC6b,UACAC,UACLra,KACI,YACF,OAAAnI,IAEC,SACV,CAAA,GAAOpC,OAAA+D,IAAA/D,OAAA2D,UAAA3D,OAAAuK,KAAAvK,OAAA8I,SAAA9I,OAAA2kB,UAAA3kB,OAAA4kB,UAAA5kB,OAAAoC,IAAApC,QAAAqC,MAAAA,KAAArC,EAAA,EAAA,GAZPqC;AAYO;ACnDX,IAAIyiB,UAAU;AAGP,SAASC,kBAA0B;AACxC,SAAOrc,OAAOoc,SAAS;AACzB;ACqBO,SAAAE,cAAAxhB,OAAA;AAAAxD,QAAAA,IAAAC,EAAA,EAAA,GACL;AAAA,IAAA0D;AAAAA,IAAAmF;AAAAA,IAAA6b;AAAAA,IAAAC;AAAAA,IAAAra;AAAAA,IAAA6R,SAAAlc;AAAAA,EAAkEsD,IAAAA,OAAf4Y,UAAAlc,OAAWoB,aAAXpB;AAAWI,MAAAA;AAAAN,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACf9C,KAAA,CAAA,GAAEN,OAAAM,MAAAA,KAAAN,EAAA,CAAA;AAAjD,QAAA,CAAA8K,OAAAma,QAAA,IAA0BzkB,SAAqBF,EAAE,GACjD4kB,UAAgBd,WAAW;AAAC,MAAAviB,IAAAC;AAAA9B,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAkDnBtB,KAAA;AAAA,IAAA4I,SAAA;AAAA,IAAAzJ,MA/CPkkB,CAAA,WAAA;AACE,YAAAtU,KAAWsU,OAAMtU,MAAOkU,gBACxBxC,GAAAA,WAAiB4C,OAAM5C,YAAiB;AAExC6C,aAAAA,gBAAA,MAAA;AACEH,iBAAQI,CAAA,cAAA;AAAA,cAOF9C,aAAiB;AAAA,mBACZ8C,UAASnkB,OAAA+hB,CAAmBA,WAAAA,OAAKpS,OAAQA,EAAE;AAQpD,gBAAAyU,UAAAA,MACEF,gBACEH,MAAAA,SAAQM,CAAAA,iBAAmBA,aAAYrkB,OAAAskB,CAAmBvC,YAAAA,QAAKpS,OAAQA,EAAE,CAAC,CAC5E;AASGwU,iBAAAA,CAAAA,GAAAA,UAASnkB,OAAAukB,aAAmBxC,QAAKpS,OAAQA,EAAE,GAAC;AAAA,YAAAyU;AAAAA,YAAAzU;AAAAA,YAAA2R,WAIlCkD,KAAAC,IAAS;AAAA,YAACR,QAAA;AAAA,cAAA,GACTA;AAAAA,cAAM5C;AAAAA,YAAAA;AAAAA,UAAA,CAAA;AAAA,QAAA,CAGvB;AAAA,MACF,CAAA,GAEM1R;AAAAA,IAAAA;AAAAA,EAAE,GAGgB7Q,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GAA3B6B,KAAOC;AAhDT,QAAA6I,QAAiC9I;AAiD3BO,MAAAA;AAAApC,IAAAuK,CAAAA,MAAAA,OAAAvK,EAAAklB,CAAAA,MAAAA,WAAAllB,EAAA8I,CAAAA,MAAAA,WAAA9I,SAAA2kB,YAAA3kB,EAAA,CAAA,MAAA4kB,YAAA5kB,EAAA,CAAA,MAAA8K,SAAA9K,EAAA,CAAA,MAAAoc,WAKDha,KAAA8iB,WACC,oBAAC,iBAAuB9I,SACtB,UAAA,oBAAC,cAAoBtT,SAAmB6b,UAAoBC,UAAera,KACzE,UAAA,oBAAC,mBAAyB,SAAA,IAAY,MAAA,aACnCO,gBAAKhO,IAAAkJ,KAWL,GACH,EACF,CAAA,EACF,CAAA,GACDhG,OAAAuK,KAAAvK,OAAAklB,SAAAllB,OAAA8I,SAAA9I,OAAA2kB,UAAA3kB,OAAA4kB,UAAA5kB,OAAA8K,OAAA9K,OAAAoc,SAAApc,OAAAoC,MAAAA,KAAApC,EAAA,CAAA;AAAAqC,MAAAA;AAAA,SAAArC,EAAA2D,EAAAA,MAAAA,YAAA3D,UAAAoC,MArBHC,KAAA,qBAAA,aAAA,UAAA,EAA8BsI,OAC3BhH,UAAAA;AAAAA,IAAAA;AAAAA,IACAvB;AAAAA,EAAAA,EAoBH,CAAA,GAAwBpC,QAAA2D,UAAA3D,QAAAoC,IAAApC,QAAAqC,MAAAA,KAAArC,EAAA,EAAA,GAtBxBqC;AAsBwB;AA/ErB,SAAA2D,MAAA9F,IAAA;AA+DmB,QAAA;AAAA,IAAAolB,SAAAM;AAAAA,IAAA/U,IAAAgV;AAAAA,IAAAV,QAAAW;AAAAA,IAAAtD;AAAAA,EAAAA,IAAAtiB;AACV,SAAA,oBAAC,SAEW,UAAAilB,SAAM9C,UACH,aAAA8C,SAAM7C,aACVgD,SAAM,WACP,QAAAH,SAAMjgB,QACP,OAAAigB,SAAMpgB,OACH,UAAAogB,SAAM5C,UACLC,aAPL,IAQN;AAAA;AC5FX,SAAAuD,WAAA;AACLpb,QAAAA,QAAc6Q,WAAAgJ,YAAuB;AAAC,MAAA,CAEjC7Z;AAAKhF,UAAAA,IAAAA,MACQ,mCAAmC;AAAA,MAMjD,CAACqgB,SAASrb,KAAK,KAAKA,MAAKD,YAAgB;AAAA/E,UAAAA,IAAAA,MAC3B,iDAAiD;AAG5DgF,SAAAA;AAAK;ACnBEsb,SAAAA,qBACdnb,OACAob,cACA1Q,gBACoB;AACpB,QAAM2Q,MAAMD,aAAa9T,QAAQoD,cAAc,GACzCsK,MAAMoG,aAAa9d,MAAM,GAAG+d,GAAG,GAC/Bne,MAAM8X,IAAI9gB;AAEhB,WAASF,IAAIkJ,MAAM,GAAGlJ,KAAK,GAAGA,KAAK,GAAG;AACpC,UAAMsnB,UAAUtG,IAAIhhB,CAAC,EAAEb,aAAa,eAAe;AAEnD,QAAI,CAACmoB;AACH;AAGIC,UAAAA,WAAWD,QAAQE,MAAM,GAAG;AAElCD,aAASE,IAAI;AAEb,UAAMC,IAAc,CAAE;AAEtB,QAAIvR,WAAW;AAEf,aAASwR,IAAI,GAAGA,IAAIJ,SAASrnB,QAAQynB,KAAK,GAAG;AACzCxlB,QAAAA,KAAKolB,SAASI,CAAC,CAAC;AAEZC,YAAAA,IAAIF,EAAEG,KAAK,GAAG;AAEpB,UAAI,CAAC7b,MAAM4b,CAAC,GAAGzR,UAAU;AACZ,mBAAA;AACX;AAAA,MAAA;AAAA,IACF;AAGEA,QAAAA;AACF,aAAO6K,IAAIhhB,CAAC;AAAA,EAAA;AAIT,SAAA;AACT;AAEgB8nB,SAAAA,qBACd9b,OACAob,cACA1Q,gBACoB;AACd2Q,QAAAA,MAAMD,aAAa9T,QAAQoD,cAAc,GACzCsK,MAAMoG,aAAa9d,MAAM+d,GAAG,GAC5Bne,MAAMke,aAAalnB;AAEzB,WAASF,IAAI,GAAGA,IAAIkJ,KAAKlJ,KAAK,GAAG;AAC3B,QAAA,CAACghB,IAAIhhB,CAAC;AACR;AAGF,UAAMsnB,UAAUtG,IAAIhhB,CAAC,EAAEb,aAAa,eAAe;AAEnD,QAAI,CAACmoB;AACH;AAGIC,UAAAA,WAAWD,QAAQE,MAAM,GAAG;AAElCD,aAASE,IAAI;AAEb,UAAMC,IAAc,CAAE;AAEtB,QAAIvR,WAAW;AAEf,aAASwR,IAAI,GAAGA,IAAIJ,SAASrnB,QAAQynB,KAAK,GAAG;AACzCxlB,QAAAA,KAAKolB,SAASI,CAAC,CAAC;AAEZC,YAAAA,IAAIF,EAAEG,KAAK,GAAG;AAEpB,UAAI,CAAC7b,MAAM4b,CAAC,GAAGzR,UAAU;AACZ,mBAAA;AACX;AAAA,MAAA;AAAA,IACF;AAGEA,QAAAA;AACF,aAAO6K,IAAIhhB,CAAC;AAAA,EAAA;AAIT,SAAA;AACT;AAEO,SAAS+nB,kBAAkBxnB,IAAuB;AAKvD,MAJIA,GAAGpB,aAAa,MAAM,MAAM,cAC9BoB,GAAGT,MAAM,GAGPS,GAAGpB,aAAa,MAAM,MAAM,QAAQ;AACtC,UAAM6oB,aAAaznB,GAAGynB;AAElBA,kBAAcA,sBAAsBla,eACtCka,WAAWloB,MAAM;AAAA,EAAA;AAGvB;AClGamoB,MAAAA,cAAczL,0BACzB,2BACA,IACF,GCWa0L,uBAAuB;AAsB7B,SAAAC,KAAAzjB,OAAA;AAAA,QAAAxD,IAAAC,EAAA,EAAA,GAQDC,KAAAsD;AAA+C,MAAAG,UAAA2F,cAAAiB,KAAAsI,SAAAhP,MAAAvD;AAAAN,WAAAE,MAPnD;AAAA,IAAAyD;AAAAA,IAAA4G;AAAAA,IAAAC,OAAAlK;AAAAA,IAAAuS;AAAAA,IAAA5P,KAAAqG;AAAAA,IAAA,GAAAzF;AAAAA,EAAA,IAOI3D,IAA+CF,OAAAE,IAAAF,OAAA2D,UAAA3D,OAAAsJ,cAAAtJ,OAAAuK,KAAAvK,OAAA6S,SAAA7S,OAAA6D,MAAA7D,OAAAM,OAAAqD,WAAA3D,EAAA,CAAA,GAAAsJ,eAAAtJ,EAAA,CAAA,GAAAuK,MAAAvK,EAAA,CAAA,GAAA6S,UAAA7S,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAJjD,QAAAwK,QAAAlK,OAASgB,aAAThB,IAMF2C,MAAYrB,OAAA,IAAkC,GAC9C,CAAA4T,gBAAA0R,iBAAA,IAA4C1mB,aAAiC,GAC7Ewc,oBAA0Bpb,OAAO4T,cAAc;AAAC,MAAA3T,IAAAC;AAAA9B,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACXtB,KAAA,CAAE9B,GAAAA,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GAAA6B,KAAFC;AAArC,QAAAqlB,OAAuBtlB;AAAqBO,MAAAA;AAAApC,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACoBhB,KAAA,CAAA,GAAEpC,OAAAoC,MAAAA,KAAApC,EAAA,CAAA;AAAlE,QAAA,CAAAkmB,cAAAkB,eAAA,IAAwC5mB,SAAwB4B,EAAE;AAACC,MAAAA;AAAArC,IAAA,CAAA,MAAAmD,OAAAC,IAAA,2BAAA,KACrBf,KAAA,CAAA,GAAErC,OAAAqC,MAAAA,KAAArC,EAAA,CAAA;AAAhD,QAAA,CAAA8K,OAAAma,QAAA,IAA0BzkB,SAAoB6B,EAAE,GAChDglB,WAAiBzlB,OAAOkJ,KAAK;AAACzG,MAAAA;AAAArE,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAEkDiB,KAAAA,MAAMpB,IAAGjB,SAAQhC,QAAAqE,MAAAA,KAAArE,EAAA,EAAA,GAAjGqD,oBAAkEiG,cAAcjF,EAAiB;AAAC,MAAAC,IAAAmB;AAAAzF,YAAAwV,kBAExFlR,KAAAA,MAAA;AACR0Y,sBAAiBhb,UAAWwT;AAAAA,EAAc,GACzC/P,MAAC+P,cAAc,GAACxV,QAAAwV,gBAAAxV,QAAAsE,IAAAtE,QAAAyF,OAAAnB,KAAAtE,EAAA,EAAA,GAAAyF,KAAAzF,EAAA,EAAA,IAFnBmC,UAAUmC,IAEPmB,EAAgB;AAAC,MAAAI,KAAAH;AAAA1F,YAAA8K,SAEVpF,KAAAA,MAAA;AACR2hB,aAAQrlB,UAAW8I;AAAAA,EAAK,GACvBjF,OAACiF,KAAK,GAAC9K,QAAA8K,OAAA9K,QAAA6F,KAAA7F,QAAA0F,OAAAG,MAAA7F,EAAA,EAAA,GAAA0F,KAAA1F,EAAA,EAAA,IAFVmC,UAAUuD,IAEPG,GAAO;AAACC,MAAAA;AAAA9F,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAGT0C,MAAAA,CAAApI,SAAA4pB,QAAArS,UAAAlE,cACEkU,SAAQje,CAAA,OAAA;AAAA,IAAA,GAAaA;AAAAA,IAAC,CAAGmgB,MAAI,GAAA;AAAA,MAAAzpB;AAAAA,MAAAuX;AAAAA,IAAAA;AAAAA,IAAwB,GAEjDlE,YACFmW,kBAAkBxpB,OAAO,GAAC,MAAA;AAI1BunB,aAAQsC,CAAA,QAAA;AACN,YAAAC,WAAA;AAAA,QAAA,GAAqBxgB;AAAAA,MAAC;AAEfwgB,aAAAA,OAAAA,SAASL,MAAI,GAEbK;AAAAA,IAAAA,CACR;AAAA,EAAA,IAEJxnB,QAAA8F,OAAAA,MAAA9F,EAAA,EAAA;AAjBH,QAAAynB,eAAqB3hB;AAmBpBI,MAAAA;AAAAlG,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAE+B8C,MAAAA,CAAAwhB,QAAAC,eAAA;AAC9B1C,aAAQ2C,CAAA,QAAA;AACNC,YAAAA,YAAkB7gB,IAAEmgB,MAAI;AAAC,aAEpBU,YAAmB;AAAA,QAAA,GAEb7gB;AAAAA,QAAC,CAAGmgB,MAAI,GAAA;AAAA,UAAA,GAAOU;AAAAA,UAAS5S,UAAEA;AAAAA,QAAAA;AAAAA,MAAQ,IAFtBjO;AAAAA,IAAAA,CAGxB;AAAA,EAAA,GACFhH,QAAAkG,OAAAA,MAAAlG,EAAA,EAAA;AARD,QAAA8nB,cAAoB5hB;AAQdC,MAAAA;AAKc,QAAAE,MAAAmP,kBAAkB0Q,mBAAuB;AAAA5f,MAAAA;AAAAtG,IAAAwK,EAAAA,MAAAA,SAAAxK,UAAA8K,SAAA9K,EAAA,EAAA,MAAAqG,OAFpDC,MAAA;AAAA,IAAAoE,SAAA;AAAA,IAAA8K,gBAEWnP;AAAAA,IAAyC0hB,OAAA;AAAA,IAAAZ;AAAAA,IAAAM;AAAAA,IAAAK;AAAAA,IAAAZ;AAAAA,IAAA1c;AAAAA,IAAAM;AAAAA,EAAAA,GAQ1D9K,QAAAwK,OAAAxK,QAAA8K,OAAA9K,QAAAqG,KAAArG,QAAAsG,OAAAA,MAAAtG,EAAA,EAAA,GAAAmG,MAVMG;AADT,QAAAoX,eAAuCvX;AAatCK,MAAAA;AAAAxG,YAAAkmB,gBAGC1f,MAAA0K,CAAA,UAAA;AAAA,QACO8L,kBAAiBhb,SAAA;AAElBkP,UAAAA,MAAK5C,QAAS,aAAW;AAC3B4C,cAAK0E,eAAgB;AAErB,cAAAoS,SAAepB,qBACbS,SAAQrlB,SACRkkB,cACAlJ,kBAAiBhb,OACnB;AAEIgmB,mBACFnB,kBAAkBmB,MAAM,GACxBd,kBAAkBc,MAAM;AAAC;AAAA,MAAA;AAMzB9W,UAAAA,MAAK5C,QAAS,WAAS;AACzB4C,cAAK0E,eAAgB;AAErB,cAAAqS,SAAehC,qBACboB,SAAQrlB,SACRkkB,cACAlJ,kBAAiBhb,OACnB;AAEIimB,mBACFpB,kBAAkBoB,MAAM,GACxBf,kBAAkBe,MAAM;AAAC;AAAA,MAAA;AAMzB/W,UAAAA,MAAK5C,QAAS,aAAW;AAC3B4C,cAAK0E,eAAgB;AAErB,cAAAwQ,UAAgBpJ,kBAAiBhb,QAAA/D,aAAsB,eAAe;AAAC,YAAA,CAElEmoB;AAAO;AAEZ8B,cAAAA,cAAkBb,SAAQrlB,QAASokB,OAAO;AAAC,YAAA,CAEtCyB;AAAS;AAAA,YAEVA,YAAS5S;AACXgQ,mBAAQkD,CAAA,QAAA;AACNC,kBAAAA,cAAkBphB,IAAEof,OAAO;AAAC,mBAEvByB,cAAmB;AAAA,cAAA,GAEb7gB;AAAAA,cAAC,CAAGof,OAAO,GAAA;AAAA,gBAAA,GAAOyB;AAAAA,gBAAS5S,UAAA;AAAA,cAAA;AAAA,YAAA,IAFfjO;AAAAA,UAAAA,CAGxB;AAAA,aAAC;AAEFqhB,gBAAAA,WAAiBjC,QAAOE,MAAO,GAAG;AAElC+B,mBAAQ9B,IAAK;AAEb+B,gBAAAA,YAAkBD,SAAQ1B,KAAM,GAAG,GACnC4B,cAAoBD,aAAajB,SAAQrlB,QAASsmB,SAAS;AAEvDC,0BACFA,YAAW7qB,QAAAkB,MACXsoB,GAAAA,kBAAkBqB,YAAW7qB,OAAQ;AAAA,QAAA;AAAC;AAAA,MAAA;AAOxCwT,UAAAA,MAAK5C,QAAS,cAAY;AAC5B4C,cAAK0E,eAAgB;AAErB,cAAA4S,aAAmBxL,kBAAiBhb,QAAA/D,aAAsB,eAAe;AAAC,YAAA,CAErEuqB;AAAU;AAEVnB,iBAAQrlB,QAASwmB,UAAU,GAAAvT,YAC9BgQ,SAAQwD,CAAA,QAAA;AACNC,gBAAAA,cAAkB1hB,IAAEwhB,UAAU;AAAC,iBAE1BX,cAAmB;AAAA,YAAA,GAEb7gB;AAAAA,YAAC,CAAGwhB,UAAU,GAAA;AAAA,cAAA,GAAOX;AAAAA,cAAS5S,UAAA;AAAA,YAAA;AAAA,UAAA,IAFlBjO;AAAAA,QAAAA,CAGxB;AAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAKPhH,QAAAkmB,cAAAlmB,QAAAwG,OAAAA,MAAAxG,EAAA,EAAA;AA7FH,QAAAqR,gBAAsB7K;AA+FrBC,MAAAA;AAAAzG,YAAA6S,WAGCpM,MAAAoU,CAAA,YAAA;AACEqM,sBAAkBhW,QAAK1O,MAAO,GAG9BqQ,UAAU3B,OAAK;AAAA,EAAA,GAChBlR,QAAA6S,SAAA7S,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA;AANH,QAAAkd,cAAoBzW;AAQnBE,MAAAA;AAAA3G,IAAA,EAAA,MAAAmD,OAAAC,IAAA,2BAAA,KAESuD,MAAAA,MAAA;AAAA,QACH1D,CAAAA,IAAGjB;AAAA;AACR,UAAA2mB,gBAAsB5nB,MAAA6nB,KACpB3lB,IAAGjB,QAAA6mB,iBAA0B,sBAAsB,CACrD;AAEAzB,oBAAgBuB,aAAa;AAAA,EAAA,GAC9B3oB,QAAA2G,OAAAA,MAAA3G,EAAA,EAAA;AAAA4G,MAAAA;AAAA5G,YAAA2D,YAAEiD,OAACjD,QAAQ,GAAC3D,QAAA2D,UAAA3D,QAAA4G,OAAAA,MAAA5G,EAAA,EAAA,GAPbmC,UAAUwE,KAOPC,GAAU;AAQF,QAAAG,MAAAwD,OAAOC;AAAK0V,MAAAA;AAAAlgB,IAAA2D,EAAAA,MAAAA,YAAA3D,EAAA,EAAA,MAAAkd,eAAAld,EAAAqR,EAAAA,MAAAA,iBAAArR,EAAA,EAAA,MAAA6D,QAAA7D,UAAA+G,OAJnBmZ,0BAAC,OACI,EAAA,IAAA,MACK,WAAA,QACJrc,GAAAA,MACC,KAAAkD,KACImW,SAAU,aACR7L,0BACNpO,KACA,MAAA,iBAGP,CAAA,GAAQjD,QAAA2D,UAAA3D,QAAAkd,aAAAld,QAAAqR,eAAArR,QAAA6D,MAAA7D,QAAA+G,KAAA/G,QAAAkgB,OAAAA,MAAAlgB,EAAA,EAAA;AAAAmgB,MAAAA;AAAA,SAAAngB,EAAA0d,EAAAA,MAAAA,gBAAA1d,UAAAkgB,OAZVC,MAAA,oBAAA,YAAA,UAAA,EAA6BzC,OAAAA,cAC3BwC,UAAAA,IAYF,CAAA,GAAuBlgB,QAAA0d,cAAA1d,QAAAkgB,KAAAlgB,QAAAmgB,OAAAA,MAAAngB,EAAA,EAAA,GAbvBmgB;AAauB;AC9OpB,SAAA2I,UAAA;AACLC,QAAAA,OAAavN,WAAAuL,WAAsB;AAAC,MAAA,CAE/BgC;AAAIpjB,UAAAA,IAAAA,MACS,6BAA6B;AAGxCojB,SAAAA;AAAI;ACRN,MAgBMC,YAAYC,KAAK,SAAAzlB,OAAA;AAAA,QAAAxD,IAAAC,EAAA,CAAA,GAOxBC,KAAAsD;AAA0D,MAAAG,UAAAE,MAAAvD;AAAAN,WAAAE,MAJ9D;AAAA,IAAAyD;AAAAA,IAAAsR,UAAA3U;AAAAA,IAAA,GAAAuD;AAAAA,EAII3D,IAAAA,IAA0DF,OAAAE,IAAAF,OAAA2D,UAAA3D,OAAA6D,MAAA7D,OAAAM,OAAAqD,WAAA3D,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAM,KAAAN,EAAA,CAAA;AAF5DiV,QAAAA,WAAA3U,OAAgBgB,cAAhBhB,IAIFyoB,OAAaD,QAAAA,GAODjnB,MAACoT;AAAQnT,MAAAA;AAAA,SAAA9B,EAAA2D,CAAAA,MAAAA,YAAA3D,SAAA6D,QAAA7D,EAAA,CAAA,MAAA6B,MAAA7B,EAAA+oB,CAAAA,MAAAA,KAAAve,SAJnB1I,KAAC,oBAAA,OAAA,EACI,IAAA,MACK,WAAA,aACJ+B,GAAAA,MACI,QAAAhC,IACG,WAAAknB,KAAIve,OACV,MAAA,SACA,KAAAue,KAAIve,iBAGX,GAAQxK,OAAA2D,UAAA3D,OAAA6D,MAAA7D,OAAA6B,IAAA7B,EAAA,CAAA,IAAA+oB,KAAAve,OAAAxK,OAAA8B,MAAAA,KAAA9B,EAAA,CAAA,GAVR8B;AAUQ,CAEX,GCtBYonB,4BAA4B;AA+BlC,SAASC,SACd3lB,OACA;AACM,QAAA;AAAA,IACJG;AAAAA,IACAC;AAAAA,IACAqR,UAAUmU,eAAe;AAAA,IACzBvgB,WAAW;AAAA,IACX1K;AAAAA,IACAqU,MAAM6W;AAAAA,IACNxY,IAAIyY;AAAAA,IACJC,SAAS;AAAA,IACTvlB;AAAAA,IACAiT;AAAAA,IACAnO,UAAU;AAAA,IACVC,SAAS;AAAA,IACTgI,WAAW;AAAA,IACXvG,QAAQ;AAAA,IACRgf;AAAAA,IACArlB;AAAAA,IACA,GAAGN;AAAAA,EACDL,IAAAA,OAEEimB,UAAU7nB,OAA2B,IAAI,GACzC8nB,cAAc9nB,OAA8B,IAAI,GAChDmnB,OAAOD,QAAAA,GACP;AAAA,IAAC3B;AAAAA,IAAMM;AAAAA,IAAcK;AAAAA,IAAaZ;AAAAA,EAAiB,IAAI6B,MACvDY,MAAMC,MAAM,GACZ/Y,KAAKyY,UAAUK,KACftB,WAAW1T,QAAQ,MAAMwS,KAAKhS,OAAO,CAACtE,MAAM,EAAE,CAAC,GAAG,CAACA,IAAIsW,IAAI,CAAC,GAC5Df,UAAUiC,SAAS1B,KAAK,GAAG,GAC3BkB,YAAYkB,KAAKje,MAAMsb,OAAO,GAC9B3U,UAAUsX,KAAKvT,mBAAmBiU,QAAQznB,SAC1CiT,WAAW4S,WAAW5S,aAAa3T,SAAY8nB,eAAevB,WAAW5S,YAAY,IACrFjX,WAAW+qB,KAAKvT,kBAAkBuT,KAAKvT,mBAAmBiU,QAAQznB,UAAU,IAAI,IAChF0b,eAAe/I,QACnB,OAAO;AAAA,IAAC,GAAGoU;AAAAA,IAAMhB,OAAOgB,KAAKhB,QAAQ;AAAA,IAAGZ,MAAMkB;AAAAA,EAAAA,IAC9C,CAACA,UAAUU,IAAI,CACjB,GAEM9X,cAAc+C,YACjB9C,CAAqE,UAAA;AAChE+F,eAASA,QAAQ/F,KAAK;AAE1B,UAAM1O,SAAS0O,MAAM1O;AAGnBA,sBAAkBoK,gBACjBpK,OAAOvE,aAAa,SAAS,MAAM,cAClCuE,OAAOqnB,QAAQ,2BAA2B,OAE5C3Y,MAAMyJ,gBAAAA,GACNmN,YAAY1B,SAAS,CAACnR,QAAQ,GAC9BiS,kBAAkBuC,QAAQznB,OAAO;AAAA,EAErC,GACA,CAACiT,UAAUmR,SAASnP,SAAS6Q,aAAaZ,iBAAiB,CAC7D,GAEM7V,gBAAgB2C,YACnB9C,CAAsC,YAAA;AACjCO,eAAWP,QAAM5C,QAAQ,YAChBob,YAAY1nB,WAAWynB,QAAQznB,UAEtC8nB,MAAM;AAAA,EAAA,GAGd,CAACrY,OAAO,CACV;AAEAtP,YAAU,MAAM;AACd,QAAKsnB,QAAQznB;AAENylB,aAAAA,aAAagC,QAAQznB,SAASqmB,SAAS1B,KAAK,GAAG,GAAG1R,UAAUlE,QAAQ;AAAA,KAC1E,CAACkE,UAAUoT,UAAUZ,cAAc1W,QAAQ,CAAC;AAE/C,QAAMyG,WACJ,qBAAC,MAAK,EAAA,KAAKhN,OAAO,SAChB,UAAA;AAAA,IAAA,qBAAC,OACC,OAAO;AAAA,MACLuf,YAAYV,iBAAiB1lB,WAAW,YAAY;AAAA,MACpDqmB,eAAe;AAAA,IAGhBX,GAAAA,UAAAA;AAAAA,MACC,iBAAA,oBAAC,QAAK,OAAc,MAAMxgB,UAAU,QAClC,UAAA,oBAAC,iBAAa,EAChB,CAAA;AAAA,MAED,CAACwgB,iBACA,oBAAC,MAAK,EAAA,OAAc,MAAMxgB,UAAU,QAClC,UAAC,oBAAA,sBAAA,EAAqB,OAAO;AAAA,QAACohB,WAAWhV,WAAW,kBAAkB3T;AAAAA,SAAW,EACnF,CAAA;AAAA,IAAA,GAEJ;AAAA,IACC,oBAAA,KAAA,EAAI,MAAM,GACT,UAAC,oBAAA,MAAA,EAAK,OAAc,MAAMuH,UAAU,cAAa,YAAW,QACzD2gB,gBACH,EACF,CAAA;AAAA,EAAA,GACF;AAGF,SAAIrrB,OAEC,qBAAA,KAAA,EACC,iBAAe4S,WAAW,KAAKzP,QAC/B,gBAAcuP,IACd,iBAAeuV,SACf,WAAQ,YACHviB,GAAAA,MACL,IAAG,MACH,WAAWqmB,SAAS;AAAA,IAACtmB;AAAAA,EAAAA,CAAU,GAC/B,SAASqN,aACT,KAAKwY,SACL,MAAK,QAEL,UAAA;AAAA,IAAA,oBAAC,cACC,iBAAexU,UACf,IAAIsU,QACJ,gBAAcxY,WAAW,KAAKzP,QAC9B,WAAQ,iBACR,MACA,QACA,KAAKooB,aACL,MAAK,YACL,UACA,OAAO;AAAA,MACLS,aAAa,QAAQlc,KAAKzD,MAAM,CAAC,CAAC,MAAMue,KAAKhB,KAAK;AAAA,IAAA,GAGnDvQ,UACHA,UAAA;AAAA,IAEC,oBAAA,YAAY,UAAZ,EAAqB,OAAOkG,cAC1B/Z,UAAY,YAAA,oBAAC,WAAU,EAAA,QAAQ,CAACsR,UAAWtR,SAAS,CAAA,EACvD,CAAA;AAAA,EAAA,GACF,IAKD,qBAAA,KAAA,EACC,iBAAeoN,WAAW,KAAKzP,QAC/B,WAAQ,YACR,gBAAcuP,IACd,iBAAeuV,SACf,GAAKviB,MACL,iBAAeoR,UACf,WAAWiV,SAAS;AAAA,IAACtmB;AAAAA,EAAU,CAAA,GAC/B,SAASqN,aACT,WAAWI,eACX,KAAKoY,SACL,MAAK,YACL,UAEA,UAAA;AAAA,IAAC,oBAAA,YAAA,EACC,IAAG,UACH,gBAAc1Y,WAAW,KAAKzP,QAC9B,WAAQ,iBACR,QACA,OAAO;AAAA,MACL6oB,aAAa,QAAQlc,KAAKzD,MAAM,CAAC,CAAC,MAAMue,KAAKhB,KAAK;AAAA,IAAA,GAGnDvQ,UACHA,UAAA;AAAA,IAEA,oBAAC,YAAY,UAAZ,EAAqB,OAAOkG,cAC1B/Z,UAAAA,YAAa,oBAAA,WAAA,EAAU,UAAqBA,SAAS,CAAA,EACxD,CAAA;AAAA,EAAA,GACF;AAEJ;"}
|