@sanity/ui 2.11.6 → 2.11.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +7 -12
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +7 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +20 -20
- package/src/core/primitives/popover/popover.tsx +1 -26
- package/src/core/primitives/tooltip/tooltip.tsx +5 -13
- package/src/core/utils/getElementRef.ts +26 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useClickOutsideEvent.ts","../src/core/hooks/useCustomValidity.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMatchMedia.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/utils/spanWithTextOverflow.tsx","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.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.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../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/hotkeys/hotkeys.tsx","../src/core/components/menu/menuContext.ts","../src/core/components/menu/helpers.ts","../src/core/components/menu/useMenuController.ts","../src/core/components/menu/menu.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../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/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\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\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity' as string\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\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/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n fontWeight,\n 'padding': '1px 0',\n 'margin': 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n 'fontSize': rem(fontSize),\n 'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n 'letterSpacing': rem(letterSpacing),\n 'transform': `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useState} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): 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.react.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'\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 {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener, onEvent])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\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 {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: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [handleKeyDown])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.JSX.Element {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.JSX.Element {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {styled} from 'styled-components'\n\n/** @internal */\nexport const SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': 0,\n 'opacity': 0,\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\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) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(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 size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\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 </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(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 <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof React.JSX.IntrinsicElements\n}\n\nconst StyledBox = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledText\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <StyledFlex\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {styled, keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst StyledSpinner = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <StyledSpinner data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </StyledSpinner>\n )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-neutral-bg-color': color.badge.neutral?.bg,\n '--card-badge-neutral-dot-color': color.badge.neutral?.dot,\n '--card-badge-neutral-fg-color': color.badge.neutral?.fg,\n '--card-badge-neutral-icon-color': color.badge.neutral?.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-suggest-bg-color': color.badge.suggest?.bg,\n '--card-badge-suggest-dot-color': color.badge.suggest?.dot,\n '--card-badge-suggest-fg-color': color.badge.suggest?.fg,\n '--card-badge-suggest-icon-color': color.badge.suggest?.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </StyledButton>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <StyledCard\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\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 <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst StyledCode = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <StyledCode data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst StyledKBD = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <StyledKBD data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </StyledKBD>\n )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst StyledArrow = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <StyledArrow {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </StyledArrow>\n )\n})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\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\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useImperativeHandle, useMemo, useState} from 'react'\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {Component, PropsWithChildren} from 'react'\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: React.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: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.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 {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\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","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <StyledLayer\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </StyledLayer>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useRef, useSyncExternalStore} from 'react'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\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 // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\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 + space[gap]) - space[gap] : 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 if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\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 <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\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 {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.JSX.Element {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.JSX.Element) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\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 <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\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 <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\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 const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\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 <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = 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 - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.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(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\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 isGroupActive: isGroupActive,\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\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: childRef,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </StyledTooltip>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [onMouseMove, showTooltip])\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {styled, keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\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: React.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 {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\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 {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\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 filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\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?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\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: Ref<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: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\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 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 data-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<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 - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\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 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 <ListBox\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 </ListBox>\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 <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </StyledAutocomplete>\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: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => React.JSX.Element\n","import {styled} from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const StyledBreadcrumbs = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\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\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </StyledBreadcrumbs>\n )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\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'\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 {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\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 {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.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 portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.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}\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 StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.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,\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 <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\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 </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\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: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.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 padding = useArrayProp(paddingProp)\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: React.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 <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\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 width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\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?: React.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): React.JSX.Element {\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst StyledHotkeys = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <StyledHotkeys data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </StyledHotkeys>\n )\n})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n 'space'?: number | number[]\n 'aria-labelledby'?: string\n 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\nconst StyledMenu = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <StyledMenu\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, 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: React.JSX.Element\n id: string\n menu?: React.JSX.Element\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: React.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: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.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) => {\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: MenuProps = {\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 () =>\n buttonProp &&\n cloneElement(buttonProp, {\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 [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\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})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.JSX.Element {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, 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: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, 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 <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\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: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\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: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\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: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {cloneElement, forwardRef, useCallback, useState, Children, isValidElement} from 'react'\nimport {styled} from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\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: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.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})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {styled, keyframes, css} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Flex} from '../../primitives'\nimport {ThemeProps} from '../../styles'\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nconst loadingAnimation = keyframes`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport function rootStyles(\n props: {$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps,\n): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n const loadingBarColor = color.button.default[props.tone].enabled.bg\n\n if (!props.$duration)\n return css`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n\n return css`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n padding-bottom: ${LOADING_BAR_HEIGHT}px;\n &::before {\n content: '';\n position: absolute;\n bottom: 0px;\n height: ${LOADING_BAR_HEIGHT}px;\n background: ${loadingBarColor};\n animation-name: ${loadingAnimation};\n animation-duration: ${props.$duration}ms;\n animation-fill-mode: both;\n }\n\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport {ThemeProps} from '../../styles'\nimport type {ButtonTone} from '../../types'\nimport {rootStyles, TextBox} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\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} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst StyledToast = styled(Card)<{$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps>(\n rootStyles,\n)\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: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.JSX.Element {\n const {closable, description, duration, onClose, radius = 3, title, status, ...restProps} = props\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 return (\n <StyledToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n $duration={duration}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\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 </Flex>\n </StyledToast>\n )\n}\n\nToast.displayName = 'Toast'\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","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst StyledToastProvider = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n // @ts-expect-error fix later\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [1, 0, 0],\n scale: 0.5,\n transition: {duration: prefersReducedMotion ? 0 : 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <StyledToastProvider data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </StyledToastProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\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 {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {Stack} from '../../primitives'\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 {\n space?: number | number[]\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: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.JSX.Element {\n const {children, 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: React.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: React.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 onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\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} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\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 {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | 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: React.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: React.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 padding={padding}>\n <Box\n marginRight={space}\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 <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\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 <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\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 onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","t2","t3","handleEvent","evt_0","document","useDebugValue","useCustomValidity","ref","customValidity","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","Symbol","for","useImperativeHandle","useGlobalKeyDown","onKeyDown","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","jsx","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","accent","childrenProp","restProps","textOverflow","weight","muted","t4","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t5","t6","t7","handleImageError","t8","t9","initialsSize","t10","t11","t12","jsxs","t13","Fragment","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","T0","child","childIndex","cloneElement","String","StyledBox","Box","marginRight","marginX","marginY","paddingX","paddingY","padding","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","StyledText","Text","badgeStyle","verticalAlign","StyledBadge","Badge","mode","_deprecated_mode","StyledFlex","Flex","rotate","keyframes","StyledSpinner","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","neutral","primary","suggest","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","StyledButton","LoadingBox","Button","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","tag","unit","url","variable","codeBaseStyle","StyledCode","pre","Code","languageProp","language","Refractor","hasLanguage","registered","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","findMinBreakpoints","ElementQuery","_media","elementSize","innerWidth","eq","eq_0","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","state_0","nextState_0","_temp2","v_0","v","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","scrollEl","findScrollable","handleScroll","passive","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","_scrollEl","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","PopoverCard","memo","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","StyledSwitch","Representation","Track","Thumb","Switch","StyledTextArea","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","StyledTextInput","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","StyledTooltip","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","StyledAutocomplete","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","currentTarget","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","openOnFocus","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","handleListBoxKeyDown","active","results","hidden","inputElement","Autocomplete","StyledBreadcrumbs","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","dialogStyle","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","StyledDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","labelId","showCloseButton","showHeader","target_0","Dialog","dialog","_positionProp","_zOffsetProp","cardRadius","cardShadow","cardRadiusProp","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","cardElement_0","handleRootClick","DialogProvider","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","a","b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","StyledMenu","Menu","_shouldFocus","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","t31","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","keyframe","animation","skeletonStyle","$visible","$animated","StyledSkeleton","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","StyledToast","Toast","closable","description","cardTone","buttonTone","role","useMounted","ToastContext","toastId","generateToastId","StyledToastProvider","ToastContainer","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","prevState_0","t_0","timeoutId_0","dismiss_0","id_0","params_0","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","StyledTreeItem","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":";;;;;;;AAiNO,MAAMA,mBAAmBC,MAMnBC,kBAAAA,WAAWC,gBAMXC,WAAWC,MAAAA,UAMXC,WAAWC,MAMXC,UAAAA,aAAaC,MAAAA,YAMbC,WAAWC,MAAAA,UAMXC,WAAWC,MAMXC,UAAAA,OAAOC,YAMPC,SAASC,cAMTC,cAAcC,MAAW,WAAA,GClQzBC,cAAuB,CAAA,GAKvBC,eAAsC,CAAA,GAKtCC,0CAA0C,4BAM1CC,uBAKT;AAAA,EACFC,SAAS;AAAA,IACPC,SAAS;AAAA,IACT,CAACH,uCAAuC,GAAa;AAAA,IACrDI,OAAO;AAAA,IACPC,YAAY;AAAA,EACd;AAAA,EACAC,SAAS;AAAA,IACPH,SAAS,CAAC,MAAM,GAAG,CAAC;AAAA,IACpB,CAACH,uCAAuC,GAAa,CAAC,MAAM,MAAM,CAAC;AAAA,IACnEI,OAAO;AAAA,EACT;AAAA,EACAG,MAAM;AAAA;AAAA,IAEJJ,SAAS,CAAC,MAAM,MAAM,CAAC;AAAA,IACvB,CAACH,uCAAuC,GAAa,CAAC,MAAM,GAAG,CAAC;AAAA,IAChEI,OAAO;AAAA,EACT;AAAA,EACAI,YAAY;AAAA,IAACC,UAAU;AAAA,IAAKC,MAAM;AAAA,EAAA;AACpC;ACtCgBC,SAAAA,eAAeC,MAAgBC,OAA+C;AACrFD,SAAAA,KAAKE,OAAkB,CAACC,OAAOC,UACpCD,MAAMC,IAAG,IAAIH,OAENE,QACN,CAAA,CAAE;AACP;AAKO,SAASE,IAAIC,YAAgC;AAClD,SAAIA,eAAe,IAAU,IAEtB,GAAGA,aAAa,EAAE;AAC3B;AAKgBC,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;AAKgBE,SAAAA,cAA0BC,KAA0BC,YAAuB;AACrFD,SAAAA,QAAQE,SAAkBD,cAAc9B,cAErCgC,MAAMC,QAAQJ,GAAG,IAAIA,MAAM,CAACA,GAAG;AACxC;AAKO,SAASK,oBACdC,SACAC,OACAC,eAAyBrC,aACL;AAChB,MAAA,CAACgC,MAAMC,QAAQI,YAAY;AACvB,UAAA,IAAIC,MAAM,uCAAuC;AAGzD,MAAID,aAAaE,WAAW;AACnB,WAAA;AAGH,QAAA;AAAA,IAACjB;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYN,OAAK;AAEjCd,SAAAA,YAAYC,OAAOe,cAAeK,CACvC7B,eAAAA,eAAeuB,OAAOjB,IAAIqB,MAAME,UAAU,CAAC,CAAC,CAC9C;AACF;AC7DgBC,SAAAA,eACdC,SACAR,OACa;AACP,QAAA;AAAA,IAACS;AAAAA,IAAOC;AAAAA,MAAWV,OACnB;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK,GACvC;AAAA,IAACa;AAAAA,IAAQC;AAAAA,IAAOC;AAAAA,EAAWH,IAAAA,KAAKH,OAAO,GACvCO,aAAcL,WAAWI,QAAQJ,OAAO,KAAMI,QAAQE,SAGtDC,cAAcJ,MAAM,CAAC,GAErBK,OAAkB;AAAA,IACtB,UAAY;AAAA,IACZ,YAAcN;AAAAA,IACdG;AAAAA,IACA,SAAW;AAAA,IACX,QAAU;AAAA,IAEV,YAAY;AAAA,MACVI,SAAS;AAAA,MACTC,SAAS;AAAA,MACTC,QAAQ;AAAA,IACV;AAAA,IAEA,WAAW;AAAA,MACTF,SAAS;AAAA,MACTC,SAAS;AAAA,MACTC,QAAQ;AAAA,IACV;AAAA,IAEA,sBAAsB;AAAA,MACpBD,SAAS;AAAA,IACX;AAAA,IAEA,mBAAmB;AAAA,MACjBA,SAAS;AAAA,IAAA;AAAA,EAEb;AAGA,MAAI,CAACX;AAEH,WAAKF,eAAee,WAElBC,QAAQC,KAAK,yCAAyC;AAAA,MAAChB;AAAAA,MAASC;AAAAA,MAAOT;AAAAA,MAAOkB;AAAAA,IAAK,CAAA,GAEnFX,eAAee,SAAS,KAGnB,CAACJ,IAAI;AAGRO,QAAAA,OAAOxC,YAAYC,OAAOuB,OAAQiB,CAAAA,cAAcC,SAASd,MAAMa,SAAS,KAAKT,WAAW,CAAC;AAExF,SAAA,CAACC,MAAM,GAAGO,IAAI;AACvB;AAEO,SAASE,SAASC,OAAgC;AACjD,QAAA;AAAA,IAACC;AAAAA,IAAgBC;AAAAA,IAAiBH,UAAAA;AAAAA,IAAUI;AAAAA,IAAUC;AAAAA,IAAeC;AAAAA,EAAU,IAAIL,OACnFM,YAAYL,iBAAiBC,iBAC7BK,YAAYF,aAAaC,WACzBE,cAAcD,YAAYJ,YAAY,GACtCM,iBAAiBC,KAAKC,MAAOZ,YAAW,QAAS,CAAC,IAAI,IAAI,GAC1Da,oBAAoBL,YAAYE,kBAAkB;AAEjD,SAAA;AAAA,IACL,UAAYtD,IAAI4C,SAAQ;AAAA,IACxB,YAAc,QAAQM,UAAU,MAAMN,SAAQ;AAAA,IAC9C,eAAiB5C,IAAIiD,aAAa;AAAA,IAClC,WAAa,cAAcjD,IAAI+C,eAAe,CAAC;AAAA,IAE/C,YAAY;AAAA,MACVW,WAAW,QAAQ1D,IAAI,IAAImD,SAAS,CAAC;AAAA,IACvC;AAAA,IAEA,WAAW;AAAA,MACTQ,cAAc;AAAA,IAChB;AAAA,IAEA,iCAAiC;AAAA,MAC/Bf,UAAU,QAAQU,cAAc;AAAA,MAChCM,QAAQ5D,IAAIyD,gBAAgB;AAAA,IAC9B;AAAA,IAEA,wBAAwB;AAAA,MACtBb,UAAU,QAAQI,QAAQ;AAAA,MAC1BY,QAAQ5D,IAAIqD,UAAU;AAAA,IAAA;AAAA,EAE1B;AACF;AC3FO,SAASQ,wBAAwB5C,OAA2D;AAC1FO,SAAAA,eAAe,QAAQP,KAAK;AACrC;ACFO,SAAS6C,sBAAsB7C,OAA2D;AACxFO,SAAAA,eAAe,WAAWP,KAAK;AACxC;ACFO,SAAS8C,oBAAoB9C,OAA2D;AACtFO,SAAAA,eAAe,SAASP,KAAK;AACtC;ACFO,SAAS+C,yBACd/C,OACa;AACP,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMgD,QAASC,CAChC,eAAA;AAAA,IAACA;AAAAA,EAAAA,EACT;AACH;ACRO,SAASC,mBAAmBlD,OAA2D;AACrFO,SAAAA,eAAe,QAAQP,KAAK;AACrC;ACDOmD,SAAAA,aAAA1D,KAAAC,YAAA;AAAA0D,QAAAA,IAAAC,uBAAA,CAAA;AAAAC,MAAAA;AAAAF,IAAA1D,CAAAA,MAAAA,cAAA0D,SAAA3D,OAI+D6D,KAAAA,MAAA,CAClE9D,cAAcC,KAAKC,UAAU,GAC7B6D,KAAAC,UAAe/D,OAAOC,UAAU,CAAC,GAClC0D,OAAA1D,YAAA0D,OAAA3D,KAAA2D,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAHD,QAAA,CAAAK,IAAAC,QAAA,IAA4CC,MAAAA,SAAwBL,EAGnE,GAHM,CAAAM,WAAAC,UAAA,IAAAJ,IAKPK,OAAaP,KAAAC,UAAe/D,OAAOC,UAAU;AAEzCoE,SAAAA,SAASD,cAIXH,SAAQ,CAAElE,cAAcC,KAAKC,UAAU,GAAGoE,IAAI,CAAC,GAG1CF;AAAS;ACflB,SAASG,aACPC,SACAC,aACe;AACTC,QAAAA,MAAM,CAACF,OAAO;AAEpB,aAAWG,MAAMF;AACXrE,UAAMC,QAAQsE,EAAE,IAClBD,IAAIE,KAAK,GAAGD,EAAE,IAEdD,IAAIE,KAAKD,EAAE;AAIRD,SAAAA,IAAIG,OAAOC,OAAO;AAC3B;AAiBO,SAASC,gBACdC,UACAP,cAAoCrG,aACpC6G,iBACkC;AAC5B,QAAA,CAACT,SAASU,UAAU,IAAIf,eAA6B,IAAI,GACzD,CAACgB,UAAUC,WAAW,IAAIjB,MAAAA,SAAS,MAAMI,aAAaC,SAASC,WAAW,CAAC,GAC3EY,cAAcC,aAAOH,QAAQ;AAEnCI,SAAAA,MAAAA,UAAU,MAAM;AACd,UAAMC,eAAeH,YAAYI,SAC3BC,eAAenB,aAAaC,SAASC,WAAW;AAElDe,QAAAA,aAAa7E,WAAW+E,aAAa/E,QAAQ;AACnC+E,kBAAAA,YAAY,GACxBL,YAAYI,UAAUC;AAEtB;AAAA,IAAA;AAGF,eAAWf,MAAMa;AACf,UAAI,CAACE,aAAaC,SAAShB,EAAE,GAAG;AAClBe,oBAAAA,YAAY,GACxBL,YAAYI,UAAUC;AAEtB;AAAA,MAAA;AAIJ,eAAWf,QAAMe;AACf,UAAI,CAACF,aAAaG,SAAShB,IAAE,GAAG;AAClBe,oBAAAA,YAAY,GACxBL,YAAYI,UAAUC;AAEtB;AAAA,MAAA;AAAA,KAGH,CAAClB,SAASC,WAAW,CAAC,GAEzBc,gBAAU,MAAM;AACd,QAAI,CAACP,SAAU;AAEf,UAAMY,wBAAyBC,CAAoB,QAAA;AACjD,YAAMC,SAASD,IAAIC;AAEnB,UAAMA,kBAAkBC,QAIpBd,EAAAA,mBAAmB,CAACA,gBAAgBe,SAASF,MAAM,IAIvD;AAAA,mBAAWnB,QAAMQ;AACf,cAAIW,WAAWnB,QAAMA,KAAGqB,SAASF,MAAM;AACrC;AAIJd,iBAASa,GAAG;AAAA,MAAA;AAAA,IACd;AAEAI,WAAAA,OAAOC,iBAAiB,aAAaN,qBAAqB,GAEnD,MAAM;AACJO,aAAAA,oBAAoB,aAAaP,qBAAqB;AAAA,IAC/D;AAAA,KACC,CAACX,iBAAiBD,UAAUG,QAAQ,CAAC,GAEjCD;AACT;AClGOkB,SAAAA,qBAAApB,UAAAlB,IAAAmB,iBAAA;AAAA,QAAArB,IAAAC,qBAAA,EAAA,CAAA,GAELY,cAAAX,OAAgE3D,SAAAkG,UAAhEvC;AAAgEG,MAAAA;AAAAL,IAAAqB,CAAAA,MAAAA,mBAAArB,SAAAa,eAAAb,EAAA,CAAA,MAAAoB,YAOjCf,KAAA4B,CAAA,QAAA;AAAA,QAAA,CACxBb;AAAQ;AAIb,UAAAc,SAAeD,IAAGC;AAAO,QAEnBA,EAAAA,kBAAMC;AAAgB;AAI5B,UAAAO,0BAAgCrB,kBAAe;AAAI,QAE/CqB,2BAA4BA,CAAAA,wBAAuBN,SAAUF,MAAM;AAAC;AAIxEX,UAAAA,WAAiBV,YAAY,EAAC8B,KAAM;AAAC,eAEhC5B,MAAYQ;AAAQ,UAClBR,OAEDmB,WAAWnB,MAAMA,GAAEqB,SAAUF,MAAM;AAAC;AAK1Cd,aAASa,GAAG;AAAA,EAAA,GACbjC,OAAAqB,iBAAArB,OAAAa,aAAAb,OAAAoB,UAAApB,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AA5BD,QAAA4C,UAAgBC,eAAAA,eAAexC,EA4B9B,GAEDyC,cAAoB5B,CAAQE,CAAAA;AAAS,MAAA2B,IAAAC;AAAAhD,IAAA8C,CAAAA,MAAAA,eAAA9C,SAAA4C,WAE3BG,KAAAA,MAAA;AAAA,QAAA,CACHD;AAAW;AAEhBG,UAAAA,cAAAC,CAAyCN,UAAAA,QAAQX,KAAG;AAEpDkB,WAAAA,SAAAb,iBAA0B,aAAaW,WAAW,GAAC,MAAA;AAGjDV,eAAAA,oBAA6B,aAAaU,WAAW;AAAA,IAAC;AAAA,EAAA,GAEvDD,KAAA,CAACF,aAAaF,OAAO,GAAC5C,OAAA8C,aAAA9C,OAAA4C,SAAA5C,OAAA+C,IAAA/C,OAAAgD,OAAAD,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,CAAA,IAVzB2B,gBAAUoB,IAUPC,EAAsB,GAEzBI,MAAchC,cAAAA,WAAW,iBAAiB,eAAe;AAAC;AArDrD,SAAAqB,UAAA;AAAAjI,SAAAA;AAAA;ACZA6I,SAAAA,kBAAAC,KAAAC,gBAAA;AAAAvD,QAAAA,IAAAC,uBAAA,CAAA;AAAAC,MAAAA;AAAAF,WAAAuD,kBAAAvD,EAAAsD,CAAAA,MAAAA,IAAAzB,WAIK3B,KAAAA,MAAA;AACL2B,QAAAA,SAAA2B,kBAA4BD,kBAAkB,EAAE;AAAA,EAAA,GACpDvD,OAAAuD,gBAAAvD,EAAA,CAAA,IAAAsD,IAAAzB,SAAA7B,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAAAK,MAAAA;AAAAL,IAAAuD,CAAAA,MAAAA,kBAAAvD,SAAAsD,OAAEjD,KAAA,CAACkD,gBAAgBD,GAAG,GAACtD,OAAAuD,gBAAAvD,OAAAsD,KAAAtD,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAFxB2B,MAAAA,UAAUzB,IAEPG,EAAqB;AAAC;ACX3B,IAAIoD,kBAAkB,CAAE,GCCpBC,wBAAwB,WAAY;AACpC,SAAOD,gBAAgBE,KAAK,SAAUC,IAAI;AAAE,WAAOA,GAAGC,cAAc9G,SAAS;AAAA,EAAG,CAAC;AACrF,GCFI+G,yBAAyB,WAAY;AACrC,SAAOL,gBAAgBE,KAAK,SAAUC,IAAI;AAAE,WAAOA,GAAGG,eAAehH,SAAS;AAAA,EAAG,CAAC;AACtF,GCHIiH,MAAM,iEACNC,yBAAyB,WAAY;AACrC,MAAIC;AACJ,EAAI,OAAOC,cAAe,aACtBD,QAAQ,IAAIC,WAAW,SAAS;AAAA,IAC5BC,SAASJ;AAAAA,EACb,CAAC,KAGDE,QAAQf,SAASkB,YAAY,OAAO,GACpCH,MAAMI,UAAU,SAAS,IAAO,EAAK,GACrCJ,MAAME,UAAUJ,MAEpB3B,OAAOkC,cAAcL,KAAK;AAC9B,GCdIM;AAAAA,CACH,SAAUA,2BAA0B;AACjCA,EAAAA,0BAAyB,aAAgB,cACzCA,0BAAyB,cAAiB,eAC1CA,0BAAyB,2BAA8B;AAC3D,GAAGA,6BAA6BA,2BAA2B,CAAA,EAAG;ACLvD,IAAIC,SAAS,SAAUC,KAAK;AAAE,SAAOC,OAAOF,OAAOC,GAAG;AAAG,GCC5DE,qBAAsB,2BAAY;AAClC,WAASA,oBAAmBC,YAAYC,WAAW;AAC/C,SAAKD,aAAaA,YAClB,KAAKC,YAAYA,WACjBL,OAAO,IAAI;AAAA,EACf;AACA,SAAOG;AACX,EAAI,GCPAG,kBAAmB,WAAY;AAC/B,WAASA,iBAAgBC,GAAGC,GAAGC,OAAOjH,QAAQ;AAC1C,gBAAK+G,IAAIA,GACT,KAAKC,IAAIA,GACT,KAAKC,QAAQA,OACb,KAAKjH,SAASA,QACd,KAAKkH,MAAM,KAAKF,GAChB,KAAKG,OAAO,KAAKJ,GACjB,KAAKK,SAAS,KAAKF,MAAM,KAAKlH,QAC9B,KAAKqH,QAAQ,KAAKF,OAAO,KAAKF,OACvBT,OAAO,IAAI;AAAA,EACtB;AACAM,SAAAA,iBAAgBQ,UAAUC,SAAS,WAAY;AAC3C,QAAIC,KAAK,MAAMT,IAAIS,GAAGT,GAAGC,IAAIQ,GAAGR,GAAGE,MAAMM,GAAGN,KAAKG,QAAQG,GAAGH,OAAOD,SAASI,GAAGJ,QAAQD,OAAOK,GAAGL,MAAMF,QAAQO,GAAGP,OAAOjH,SAASwH,GAAGxH;AACrI,WAAO;AAAA,MAAE+G;AAAAA,MAAMC;AAAAA,MAAME;AAAAA,MAAUG;AAAAA,MAAcD;AAAAA,MAAgBD;AAAAA,MAAYF;AAAAA,MAAcjH;AAAAA,IAAgB;AAAA,EAC1G,GACD8G,iBAAgBW,WAAW,SAAUC,WAAW;AAC5C,WAAO,IAAIZ,iBAAgBY,UAAUX,GAAGW,UAAUV,GAAGU,UAAUT,OAAOS,UAAU1H,MAAM;AAAA,EACzF,GACM8G;AACX,EAAI,GCrBAa,QAAQ,SAAU1D,QAAQ;AAAE,SAAOA,kBAAkB2D,cAAc,aAAa3D;AAAQ,GACxF4D,WAAW,SAAU5D,QAAQ;AAC7B,MAAI0D,MAAM1D,MAAM,GAAG;AACf,QAAIuD,KAAKvD,OAAO6D,QAAS,GAAEb,QAAQO,GAAGP,OAAOjH,SAASwH,GAAGxH;AACzD,WAAO,CAACiH,SAAS,CAACjH;AAAAA,EACtB;AACA,MAAI+H,KAAK9D,QAAQ+D,cAAcD,GAAGC,aAAaC,eAAeF,GAAGE;AACjE,SAAO,EAAED,eAAeC,gBAAgBhE,OAAOiE,eAAc,EAAGpJ;AACpE,GACIqJ,YAAY,SAAU1B,KAAK;AAC3B,MAAIe;AACJ,MAAIf,eAAe2B;AACf,WAAO;AAEX,MAAIC,SAASb,KAA+Cf,KAAI6B,mBAAmB,QAAQd,OAAO,SAAS,SAASA,GAAGe;AACvH,SAAO,CAAC,EAAEF,SAAS5B,eAAe4B,MAAMD;AAC5C,GACII,oBAAoB,SAAUvE,QAAQ;AACtC,UAAQA,OAAOwE,SAAO;AAAA,IAClB,KAAK;AACD,UAAIxE,OAAO9G,SAAS;AAChB;AAAA,IAER,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,EACf;AACA,SAAO;AACX,GCjCWuL,WAAS,OAAOtE,SAAW,MAAcA,SAAS,CAAE,GCM3DuE,QAAQ,oBAAIC,QAAS,GACrBC,eAAe,eACfC,iBAAiB,gBACjBC,KAAM,gBAAiBC,KAAKN,SAAOO,aAAaP,SAAOO,UAAUC,SAAS,GAC1EC,iBAAiB,SAAUC,OAAO;AAAE,SAAOC,WAAWD,SAAS,GAAG;AAAG,GACrE7I,SAAO,SAAUqG,YAAYC,WAAWyC,aAAa;AACrD,SAAI1C,eAAe,WAAUA,aAAa,IACtCC,cAAc,WAAUA,YAAY,IACpCyC,gBAAgB,WAAUA,cAAc,KACrC,IAAI3C,oBAAoB2C,cAAczC,YAAYD,eAAe,IAAI0C,cAAc1C,aAAaC,cAAc,CAAC;AAC1H,GACI0C,YAAY/C,OAAO;AAAA,EACnBgD,2BAA2BjJ,OAAM;AAAA,EACjCkJ,eAAelJ,OAAM;AAAA,EACrBmJ,gBAAgBnJ,OAAM;AAAA,EACtBoJ,aAAa,IAAI7C,gBAAgB,GAAG,GAAG,GAAG,CAAC;AAC/C,CAAC,GACG8C,oBAAoB,SAAU3F,QAAQ4F,oBAAoB;AAE1D,MADIA,uBAAuB,WAAUA,qBAAqB,KACtDlB,MAAMmB,IAAI7F,MAAM,KAAK,CAAC4F;AACtB,WAAOlB,MAAMoB,IAAI9F,MAAM;AAE3B,MAAI4D,SAAS5D,MAAM;AACf0E,iBAAMqB,IAAI/F,QAAQsF,SAAS,GACpBA;AAEX,MAAIU,KAAKC,iBAAiBjG,MAAM,GAC5BkG,MAAMxC,MAAM1D,MAAM,KAAKA,OAAOmG,mBAAmBnG,OAAO6D,QAAS,GACjEuC,gBAAgB,CAACtB,MAAMkB,GAAGK,cAAc,cACxChB,cAAcR,eAAeE,KAAKiB,GAAGM,eAAe,EAAE,GACtDC,sBAAsB,CAACL,OAAOtB,aAAaG,KAAKiB,GAAGQ,aAAa,EAAE,GAClEC,wBAAwB,CAACP,OAAOtB,aAAaG,KAAKiB,GAAGU,aAAa,EAAE,GACpEC,aAAaT,MAAM,IAAIhB,eAAec,GAAGW,UAAU,GACnDC,eAAeV,MAAM,IAAIhB,eAAec,GAAGY,YAAY,GACvDC,gBAAgBX,MAAM,IAAIhB,eAAec,GAAGa,aAAa,GACzDC,cAAcZ,MAAM,IAAIhB,eAAec,GAAGc,WAAW,GACrDC,aAAYb,MAAM,IAAIhB,eAAec,GAAGgB,cAAc,GACtDC,eAAcf,MAAM,IAAIhB,eAAec,GAAGkB,gBAAgB,GAC1DC,gBAAejB,MAAM,IAAIhB,eAAec,GAAGoB,iBAAiB,GAC5DC,cAAanB,MAAM,IAAIhB,eAAec,GAAGsB,eAAe,GACxDC,oBAAoBT,cAAcF,cAClCY,kBAAkBb,aAAaE,eAC/BY,uBAAuBJ,cAAaJ,cACpCS,qBAAqBX,aAAYI,eACjCQ,+BAAgClB,wBAA4BzG,OAAOgE,eAAe0D,qBAAqB1H,OAAO4H,eAAtD,GACxDC,6BAA8BtB,sBAA0BvG,OAAO+D,cAAc0D,uBAAuBzH,OAAO8H,cAAvD,GACpDC,iBAAiB3B,gBAAgBmB,oBAAoBE,uBAAuB,GAC5EO,kBAAkB5B,gBAAgBoB,kBAAkBE,qBAAqB,GACzEO,eAAe/B,MAAMA,IAAIlD,QAAQkC,eAAec,GAAGhD,KAAK,IAAI+E,iBAAiBF,4BAC7EK,gBAAgBhC,MAAMA,IAAInK,SAASmJ,eAAec,GAAGjK,MAAM,IAAIiM,kBAAkBL,8BACjFQ,iBAAiBF,eAAeV,oBAAoBM,6BAA6BJ,sBACjFW,kBAAkBF,gBAAgBV,kBAAkBG,+BAA+BD,oBACnFW,QAAQ9F,OAAO;AAAA,IACfgD,2BAA2BjJ,OAAKU,KAAKsL,MAAML,eAAeM,gBAAgB,GAAGvL,KAAKsL,MAAMJ,gBAAgBK,gBAAgB,GAAGlD,WAAW;AAAA,IACtIG,eAAelJ,OAAK6L,gBAAgBC,iBAAiB/C,WAAW;AAAA,IAChEI,gBAAgBnJ,OAAK2L,cAAcC,eAAe7C,WAAW;AAAA,IAC7DK,aAAa,IAAI7C,gBAAgBiE,aAAaH,YAAYsB,cAAcC,aAAa;AAAA,EACzF,CAAC;AACDxD,eAAMqB,IAAI/F,QAAQqI,KAAK,GAChBA;AACX,GACIG,mBAAmB,SAAUxI,QAAQyI,aAAa7C,oBAAoB;AACtE,MAAIrC,KAAKoC,kBAAkB3F,QAAQ4F,kBAAkB,GAAGJ,gBAAgBjC,GAAGiC,eAAeC,iBAAiBlC,GAAGkC,gBAAgBF,4BAA4BhC,GAAGgC;AAC7J,UAAQkD,aAAW;AAAA,IACf,KAAKnG,yBAAyBoG;AAC1B,aAAOnD;AAAAA,IACX,KAAKjD,yBAAyBqG;AAC1B,aAAOnD;AAAAA,IACX;AACI,aAAOC;AAAAA,EACf;AACJ,GC3EImD,sBAAuB,2BAAY;AACnC,WAASA,qBAAoB5I,QAAQ;AACjC,QAAIqI,QAAQ1C,kBAAkB3F,MAAM;AACpC,SAAKA,SAASA,QACd,KAAK0F,cAAc2C,MAAM3C,aACzB,KAAKF,gBAAgBjD,OAAO,CAAC8F,MAAM7C,aAAa,CAAC,GACjD,KAAKC,iBAAiBlD,OAAO,CAAC8F,MAAM5C,cAAc,CAAC,GACnD,KAAKF,4BAA4BhD,OAAO,CAAC8F,MAAM9C,yBAAyB,CAAC;AAAA,EAC7E;AACA,SAAOqD;AACX,EAAI,GCXAC,wBAAwB,SAAUC,MAAM;AACxC,MAAIlF,SAASkF,IAAI;AACb,WAAOC;AAIX,WAFIC,QAAQ,GACRC,SAASH,KAAKI,YACXD;AACHD,aAAS,GACTC,SAASA,OAAOC;AAEpB,SAAOF;AACX,GCRIG,8BAA8B,WAAY;AAC1C,MAAIC,kBAAkBL,OAClBM,aAAY,CAAE;AAClB9H,kBAAgB+H,QAAQ,SAAyB5H,IAAI;AACjD,QAAIA,GAAGC,cAAc9G,WAAW,GAGhC;AAAA,UAAI0O,UAAU,CAAE;AAChB7H,SAAGC,cAAc2H,QAAQ,SAAuBE,IAAI;AAChD,YAAIC,QAAQ,IAAIb,oBAAoBY,GAAGxJ,MAAM,GACzC0J,cAAcb,sBAAsBW,GAAGxJ,MAAM;AACjDuJ,gBAAQzK,KAAK2K,KAAK,GAClBD,GAAGG,mBAAmBnB,iBAAiBgB,GAAGxJ,QAAQwJ,GAAGf,WAAW,GAC5DiB,cAAcN,oBACdA,kBAAkBM;AAAAA,MAE1B,CAAC,GACDL,WAAUvK,KAAK,WAAkC;AAC7C4C,WAAG5H,SAAS8P,KAAKlI,GAAGmI,UAAUN,SAAS7H,GAAGmI,QAAQ;AAAA,MACtD,CAAC,GACDnI,GAAGC,cAAcmI,OAAO,GAAGpI,GAAGC,cAAc9G,MAAM;AAAA;AAAA,EACtD,CAAC;AACD,WAASkP,KAAK,GAAGC,cAAcX,YAAWU,KAAKC,YAAYnP,QAAQkP,MAAM;AACrE,QAAIjQ,WAAWkQ,YAAYD,EAAE;AAC7BjQ,aAAU;AAAA,EACd;AACA,SAAOsP;AACX,GC7BIa,kCAAkC,SAAUjB,OAAO;AACnDzH,kBAAgB+H,QAAQ,SAAyB5H,IAAI;AACjDA,OAAGC,cAAcmI,OAAO,GAAGpI,GAAGC,cAAc9G,MAAM,GAClD6G,GAAGG,eAAeiI,OAAO,GAAGpI,GAAGG,eAAehH,MAAM,GACpD6G,GAAGwI,mBAAmBZ,QAAQ,SAAuBE,IAAI;AACrD,MAAIA,GAAGW,eACCtB,sBAAsBW,GAAGxJ,MAAM,IAAIgJ,QACnCtH,GAAGC,cAAc7C,KAAK0K,EAAE,IAGxB9H,GAAGG,eAAe/C,KAAK0K,EAAE;AAAA,IAGrC,CAAC;AAAA,EACL,CAAC;AACL,GCZIY,UAAU,WAAY;AACtB,MAAIpB,QAAQ;AAEZ,OADAiB,gCAAgCjB,KAAK,GAC9BxH,sBAAqB;AACxBwH,YAAQG,4BAA6B,GACrCc,gCAAgCjB,KAAK;AAEzC,SAAIpH,uBAAsB,KACtBG,uBAAwB,GAErBiH,QAAQ;AACnB,GChBIqB,SACAhB,YAAY,CAAE,GACdiB,SAAS,WAAY;AAAE,SAAOjB,UAAUS,OAAO,CAAC,EAAER,QAAQ,SAAUiB,IAAI;AAAE,WAAOA,GAAI;AAAA,EAAE,CAAC;AAAG,GAC3FC,iBAAiB,SAAU1Q,UAAU;AACrC,MAAI,CAACuQ,SAAS;AACV,QAAII,WAAW,GACXC,OAAOzJ,SAAS0J,eAAe,EAAE,GACjCC,SAAS;AAAA,MAAEC,eAAe;AAAA,IAAM;AACpC,QAAIC,iBAAiB,WAAY;AAAE,aAAOR,OAAQ;AAAA,IAAE,CAAC,EAAES,QAAQL,MAAME,MAAM,GAC3EP,UAAU,WAAY;AAAEK,WAAKM,cAAc,GAAGC,OAAOR,WAAWA,aAAaA,UAAU;AAAA,IAAI;AAAA,EAC/F;AACApB,YAAUvK,KAAKhF,QAAQ,GACvBuQ,QAAS;AACb,GCZIa,sBAAsB,SAAUX,IAAI;AACpCC,iBAAe,WAA0B;AACrCW,0BAAsBZ,EAAE;AAAA,EAC5B,CAAC;AACL,GCFIa,WAAW,GACXC,aAAa,WAAY;AAAE,SAAO,CAAC,CAACD;AAAU,GAC9CE,eAAe,KACfC,iBAAiB;AAAA,EAAEC,YAAY;AAAA,EAAMX,eAAe;AAAA,EAAMY,WAAW;AAAA,EAAMC,SAAS;AAAK,GACzFC,SAAS,CACT,UACA,QACA,iBACA,gBACA,kBACA,sBACA,SACA,WACA,WACA,aACA,aACA,YACA,QACA,OAAO,GAEPC,OAAO,SAAUC,SAAS;AAC1B,SAAIA,YAAY,WAAUA,UAAU,IAC7BC,KAAKC,IAAG,IAAKF;AACxB,GACIG,YAAY,IACZC,YAAa,WAAY;AACzB,WAASA,aAAY;AACjB,QAAIC,QAAQ;AACZ,SAAKC,UAAU,IACf,KAAKjN,WAAW,WAAY;AAAE,aAAOgN,MAAME,SAAU;AAAA,IAAG;AAAA,EAC5D;AACAH,SAAAA,WAAU5I,UAAUgJ,MAAM,SAAUR,SAAS;AACzC,QAAIK,QAAQ;AAEZ,QADIL,YAAY,WAAUA,UAAUP,eAChCU,YAGJA;AAAAA,kBAAY;AACZ,UAAIM,QAAQV,KAAKC,OAAO;AACxBX,0BAAoB,WAAY;AAC5B,YAAIqB,sBAAsB;AAC1B,YAAI;AACAA,gCAAsBnC,QAAS;AAAA,QACnC,UACQ;AAGJ,cAFA4B,YAAY,IACZH,UAAUS,QAAQV,KAAM,GACpB,CAACP,WAAU;AACX;AAEJ,UAAIkB,sBACAL,MAAMG,IAAI,GAAI,IAETR,UAAU,IACfK,MAAMG,IAAIR,OAAO,IAGjBK,MAAMM,MAAO;AAAA,QAErB;AAAA,MACJ,CAAC;AAAA;AAAA,EACJ,GACDP,WAAU5I,UAAU+I,WAAW,WAAY;AACvC,SAAKK,KAAM,GACX,KAAKJ,IAAK;AAAA,EACb,GACDJ,WAAU5I,UAAU0H,UAAU,WAAY;AACtC,QAAImB,QAAQ,MACR3B,KAAK,WAAY;AAAE,aAAO2B,MAAMrC,YAAYqC,MAAMrC,SAASkB,QAAQ9J,SAASyL,MAAMnB,cAAc;AAAA,IAAI;AACxGtK,aAASyL,OAAOnC,GAAI,IAAG9F,SAAOrE,iBAAiB,oBAAoBmK,EAAE;AAAA,EACxE,GACD0B,WAAU5I,UAAUmJ,QAAQ,WAAY;AACpC,QAAIN,QAAQ;AACZ,IAAI,KAAKC,YACL,KAAKA,UAAU,IACf,KAAKtC,WAAW,IAAIiB,iBAAiB,KAAK5L,QAAQ,GAClD,KAAK6L,QAAS,GACdY,OAAOrC,QAAQ,SAAUqD,MAAM;AAAE,aAAOlI,SAAOrE,iBAAiBuM,MAAMT,MAAMhN,UAAU,EAAI;AAAA,IAAG,CAAC;AAAA,EAErG,GACD+M,WAAU5I,UAAUoJ,OAAO,WAAY;AACnC,QAAIP,QAAQ;AACZ,IAAK,KAAKC,YACN,KAAKtC,YAAY,KAAKA,SAAS+C,WAAY,GAC3CjB,OAAOrC,QAAQ,SAAUqD,MAAM;AAAE,aAAOlI,SAAOpE,oBAAoBsM,MAAMT,MAAMhN,UAAU,EAAI;AAAA,IAAG,CAAC,GACjG,KAAKiN,UAAU;AAAA,EAEtB,GACMF;AACX,EAAI,GACAY,YAAY,IAAIZ,UAAW,GAC3Ba,cAAc,SAAUC,GAAG;AAC3B,GAAC3B,YAAY2B,IAAI,KAAKF,UAAUL,MAAO,GACvCpB,YAAY2B,GACZ,CAAC3B,YAAYyB,UAAUJ,KAAM;AACjC,GC/FIO,sBAAsB,SAAUhN,QAAQ;AACxC,SAAO,CAAC0D,MAAM1D,MAAM,KACb,CAACuE,kBAAkBvE,MAAM,KACzBiG,iBAAiBjG,MAAM,EAAElE,YAAY;AAChD,GACImR,oBAAqB,WAAY;AACjC,WAASA,mBAAkBjN,QAAQyI,aAAa;AAC5C,SAAKzI,SAASA,QACd,KAAKyI,cAAcA,eAAenG,yBAAyB4K,aAC3D,KAAKvD,mBAAmB;AAAA,MACpBhH,YAAY;AAAA,MACZC,WAAW;AAAA,IACd;AAAA,EACL;AACAqK,SAAAA,mBAAkB5J,UAAU8G,WAAW,WAAY;AAC/C,QAAI7N,QAAOkM,iBAAiB,KAAKxI,QAAQ,KAAKyI,aAAa,EAAI;AAI/D,WAHIuE,oBAAoB,KAAKhN,MAAM,MAC/B,KAAK2J,mBAAmBrN,QAExB,KAAKqN,iBAAiBhH,eAAerG,MAAKqG,cACvC,KAAKgH,iBAAiB/G,cAActG,MAAKsG;AAAAA,EAInD,GACMqK;AACX,EAAI,GC7BAE,uBAAwB,2BAAY;AACpC,WAASA,sBAAqBC,gBAAgBtT,UAAU;AACpD,SAAK6H,gBAAgB,CAAE,GACvB,KAAKE,iBAAiB,CAAE,GACxB,KAAKqI,qBAAqB,CAAE,GAC5B,KAAKL,WAAWuD,gBAChB,KAAKtT,WAAWA;AAAAA,EACpB;AACA,SAAOqT;AACX,EAAI,GCLAE,cAAc,oBAAI1I,QAAS,GAC3B2I,sBAAsB,SAAUpD,oBAAoBlK,QAAQ;AAC5D,WAASuN,IAAI,GAAGA,IAAIrD,mBAAmBrP,QAAQ0S,KAAK;AAChD,QAAIrD,mBAAmBqD,CAAC,EAAEvN,WAAWA;AACjC,aAAOuN;AAGf,SAAO;AACX,GACIC,2BAA4B,WAAY;AACxC,WAASA,4BAA2B;AAAA,EAAA;AAEpCA,SAAAA,0BAAyBC,UAAU,SAAUL,gBAAgBtT,UAAU;AACnE,QAAI4T,SAAS,IAAIP,qBAAqBC,gBAAgBtT,QAAQ;AAC9DuT,gBAAYtH,IAAIqH,gBAAgBM,MAAM;AAAA,EACzC,GACDF,0BAAyBzC,UAAU,SAAUqC,gBAAgBpN,QAAQ2N,SAAS;AAC1E,QAAID,SAASL,YAAYvH,IAAIsH,cAAc,GACvCQ,mBAAmBF,OAAOxD,mBAAmBrP,WAAW;AAC5D,IAAIyS,oBAAoBI,OAAOxD,oBAAoBlK,MAAM,IAAI,MACzD4N,oBAAoBrM,gBAAgBzC,KAAK4O,MAAM,GAC/CA,OAAOxD,mBAAmBpL,KAAK,IAAImO,kBAAkBjN,QAAQ2N,WAAWA,QAAQE,GAAG,CAAC,GACpFf,YAAY,CAAC,GACbD,UAAUT,SAAU;AAAA,EAE3B,GACDoB,0BAAyBM,YAAY,SAAUV,gBAAgBpN,QAAQ;AACnE,QAAI0N,SAASL,YAAYvH,IAAIsH,cAAc,GACvCW,QAAQT,oBAAoBI,OAAOxD,oBAAoBlK,MAAM,GAC7DgO,kBAAkBN,OAAOxD,mBAAmBrP,WAAW;AAC3D,IAAIkT,SAAS,MACTC,mBAAmBzM,gBAAgBuI,OAAOvI,gBAAgB0M,QAAQP,MAAM,GAAG,CAAC,GAC5EA,OAAOxD,mBAAmBJ,OAAOiE,OAAO,CAAC,GACzCjB,YAAY,EAAE;AAAA,EAErB,GACDU,0BAAyBZ,aAAa,SAAUQ,gBAAgB;AAC5D,QAAIlB,QAAQ,MACRwB,SAASL,YAAYvH,IAAIsH,cAAc;AAC3CM,WAAOxD,mBAAmBgE,MAAO,EAAC5E,QAAQ,SAAUE,IAAI;AAAE,aAAO0C,MAAM4B,UAAUV,gBAAgB5D,GAAGxJ,MAAM;AAAA,IAAG,CAAC,GAC9G0N,OAAO/L,cAAcmI,OAAO,GAAG4D,OAAO/L,cAAc9G,MAAM;AAAA,EAC7D,GACM2S;AACX,EAAI,GC7CAW,iBAAkB,WAAY;AAC9B,WAASA,gBAAerU,UAAU;AAC9B,QAAIsU,UAAUvT,WAAW;AACrB,YAAM,IAAIwT,UAAU,gFAAgF;AAExG,QAAI,OAAOvU,YAAa;AACpB,YAAM,IAAIuU,UAAU,+FAA+F;AAEvHb,6BAAyBC,QAAQ,MAAM3T,QAAQ;AAAA,EACnD;AACAqU,SAAAA,gBAAe9K,UAAU0H,UAAU,SAAU/K,QAAQ2N,SAAS;AAC1D,QAAIS,UAAUvT,WAAW;AACrB,YAAM,IAAIwT,UAAU,2FAA2F;AAEnH,QAAI,CAACnK,UAAUlE,MAAM;AACjB,YAAM,IAAIqO,UAAU,sFAAsF;AAE9Gb,6BAAyBzC,QAAQ,MAAM/K,QAAQ2N,OAAO;AAAA,EACzD,GACDQ,gBAAe9K,UAAUyK,YAAY,SAAU9N,QAAQ;AACnD,QAAIoO,UAAUvT,WAAW;AACrB,YAAM,IAAIwT,UAAU,6FAA6F;AAErH,QAAI,CAACnK,UAAUlE,MAAM;AACjB,YAAM,IAAIqO,UAAU,wFAAwF;AAEhHb,6BAAyBM,UAAU,MAAM9N,MAAM;AAAA,EAClD,GACDmO,gBAAe9K,UAAUuJ,aAAa,WAAY;AAC9CY,6BAAyBZ,WAAW,IAAI;AAAA,EAC3C,GACDuB,gBAAeG,WAAW,WAAY;AAClC,WAAO;AAAA,EACV,GACMH;AACX,EAAI;AChCSI,MAAAA,kBACX,OAAOtN,WAAa,OAAe,OAAOd,SAAW,OAAeA,OAAOgO,iBACvEhO,OAAOgO,iBACPK,gBCqCOC,uBAAuBC,2BAA2B;AAE/D,SAASC,kCAAwD;AACxD,SAAA;AAAA,IACLC,UAAUlQ,SAASmQ,YAAY;AAC7B,YAAMzB,iBAAiB,IAAImB,gBAAgB,CAAC,CAAC9E,KAAK,MAAM;AAC3C,mBAAA;AAAA,UACTqF,cAAcrF,MAAM/D;AAAAA,UACpBqJ,QAAQ;AAAA,YACN/L,OAAOyG,MAAMjE,cAAc,CAAC,EAAE7C;AAAAA,YAC9B5G,QAAQ0N,MAAMjE,cAAc,CAAC,EAAE5C;AAAAA,UACjC;AAAA,UACA/G,SAAS;AAAA,YACPmH,OAAOyG,MAAM/D,YAAY1C;AAAAA,YACzBjH,QAAQ0N,MAAM/D,YAAY3J;AAAAA,UAAAA;AAAAA,QAC5B,CACD;AAAA,MAAA,CACF;AAEcgP,aAAAA,eAAAA,QAAQrM,OAAO,GAEvB,MAAM;AACX0O,uBAAeU,UAAUpP,OAAO,GAChC0O,eAAeR,WAAW;AAAA,MAC5B;AAAA,IAAA;AAAA,EAEJ;AACF;AAEA,SAAS8B,6BAAmD;AAC1D,QAAMM,eAAmBrK,oBAAAA,QACnBsK,GAAAA,uCAAuBtK,QAA+C;AAErE,SAAA;AAAA,IACLiK,UAAUlQ,SAASmQ,YAAY;AAC7B,YAAMK,cAAcD,iBAAiBnJ,IAAIpH,OAAO,KAAK,CAAE;AAEnDyQ,UAAAA,UAAUH,aAAalJ,IAAIpH,OAAO;AAEtC,aAAKuQ,iBAAiBpJ,IAAInH,OAAO,MAC/BuQ,iBAAiBlJ,IAAIrH,SAASwQ,WAAW,GAKzCC,UAHiBR,gCAGEC,EAAAA,UAAUlQ,SAAU0Q,CAAgB,gBAAA;AACrD,mBAAWC,OAAOH;AAChBG,cAAID,WAAW;AAAA,MAElB,CAAA,IAGHF,YAAYpQ,KAAK+P,UAAU,GAEpB,MAAM;AAGLS,cAAAA,MAAMJ,YAAYjB,QAAQY,UAAU;AAEtCS,cAAM,MACRJ,YAAYpF,OAAOwF,KAAK,CAAC,GAGvBJ,YAAYrU,WAAW,KAErBsU,WAASA,QAAQ;AAAA,MAEzB;AAAA,IAAA;AAAA,EAEJ;AACF;AC5GO,SAAAI,eAAA7Q,SAAA;AAAAZ,QAAAA,IAAAC,uBAAA,CAAA,GACL,CAAAzB,OAAAkT,OAAA,IAAwBnR,MAAAA,aAAiC;AAAC,MAAAL,IAAAG;AAAA,SAAAL,SAAAY,WAEhDV,KAAAA,MAAA;AACHU,QAAAA;AAEE+P,aAAAA,qBAAAG,UAA+BlQ,SAAS8Q,OAAO;AAAA,EACrDrR,GAAAA,MAACO,OAAO,GAACZ,OAAAY,SAAAZ,OAAAE,IAAAF,OAAAK,OAAAH,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,IAJZ2B,MAAAA,UAAUzB,IAIPG,EAAS,GAEL7B;AAAI;ACRN,SAAAmT,eAAA/Q,SAAA;AACe6Q,SAAAA,eAAe7Q,OAAO,GAExBoQ,gBAAsB;AAAA;ACCnC,SAAAY,gBAAAtO,KAAA;AAAA,QAAAtD,IAAAC,qBAAAA,EAAA,CAAA,GACL4R,WAAiBnQ,aAAA,IAAqB;AAACxB,MAAAA;AAAAF,SAAAA,EAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEd7R,KAAAA,MAAM2R,SAAQhQ,SAAS7B,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAAhDgS,0BAAoB1O,KAAKpD,EAAuB,GAEzC2R;AAAQ;ACXV,SAAAI,iBAAAC,WAAA;AAAAlS,QAAAA,IAAAC,uBAAA,CAAA;AAAAC,MAAAA;AAAAF,WAAAkS,aACgChS,KAAAgE,CAAAA,UAA0BgO,UAAUhO,KAAK,GAAClE,OAAAkS,WAAAlS,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAA/EmS,QAAAA,gBAAsBtP,8BAAe3C,EAA0C;AAAC,MAAAG,IAAA0C;AAAA/C,WAAAmS,iBAEtE9R,KAAAA,MAAA;AACR+R,UAAAA,UAAAC,CAA0CF,YAAAA,cAAcjO,OAAK;AAE7D5B,WAAAA,OAAAA,iBAAwB,WAAW8P,OAAO,GAAC,MAE9B/P,OAAAE,oBAA2B,WAAW6P,OAAO;AAAA,EAAC,GAC1DrP,MAACoP,aAAa,GAACnS,OAAAmS,eAAAnS,OAAAK,IAAAL,OAAA+C,OAAA1C,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,IANlB2B,gBAAUtB,IAMP0C,EAAe;AAAC;ACNLuP,SAAAA,cACdC,kBACAC,oBACS;AACH,QAAA;AAAA,IAAC1B,WAAAA;AAAAA,IAAW2B;AAAAA,EAAW,IAAIC,cAAQ,MAAM;AAKzCC,QAAAA;AAEJ,UAAMC,gBAAgBA,OACfD,sBAGHA,oBAAoBtQ,OAAOwQ,WAAWN,gBAAgB,IAGjDI;AAGF,WAAA;AAAA,MACL7B,WAAYgC,CAA4C,kBAAA;AACtD,cAAMD,aAAaD,cAAc;AAEtBtQ,eAAAA,WAAAA,iBAAiB,UAAUwQ,aAAa,GAE5C,MAAMD,WAAWtQ,oBAAoB,UAAUuQ,aAAa;AAAA,MACrE;AAAA,MACAL,aAAaA,MAAMG,gBAAgBG;AAAAA,IACrC;AAAA,EAAA,GACC,CAACR,gBAAgB,CAAC;AAErBnP,SAAAA,MAAAA,cAAcmP,gBAAgB,GAEvBS,MAAqBlC,qBAAAA,YAAW2B,aAAaD,kBAAiB;AACvE;ACpCA,SAASS,iBAAiB;AACpB,MAAA,OAAOC,aAAe,IAAoBA,QAAAA;AAC1C,MAAA,OAAO7Q,SAAW,IAAoBA,QAAAA;AACtC,MAAA,OAAO8Q,OAAS,IAAoBA,QAAAA;AACpC,MAAA,OAAOxM,SAAW,IAAoBA,QAAAA;AAEpC,QAAA,IAAI7J,MAAM,2CAA2C;AAC7D;AAEO,MAAMsW,cAAcH,eAAe;ACL1BI,SAAAA,0BAId3X,MACA4X,cACsB;AAChBC,QAAAA,SAASzB,OAAOC,IAAIrW,IAAG;AAK7B,SAAI,OAAOyH,WAAa,MACfqQ,MAA2BF,cAAAA,YAAY,KAGhDF,YAAYG,MAAM,IAAIH,YAAYG,MAAM,KAAKC,MAAAA,cAAiBF,YAAY,GAEnEF,YAAYG,MAAM;AAC3B;AC1BaE,MAAAA,eAAeJ,0BAC1B,4BACA,IACF;ACgBO,SAAAK,cAAA9W,OAAA;AAAA,QAAAoD,IAAAC,qBAAAA,EAAA,EAAA,GACL0T,cAAoBC,MAAAA,WAAAH,YAAuB,GAC3C;AAAA,IAAAI;AAAAA,EAAAA,IAAmBjX,OACnBkX,SAAelX,MAAKkX,WAAYH,aAAWG,UAAY,UACvDC,YAAkBnX,MAAKD,UAAWgX,aAAWhX,SAAA,OAC7CqX,OAAapX,MAAKoX,SAAUL,aAAWK,QAAU;AAAU9T,MAAAA;AAAA,OAAA;AAAA,QAAA,CAGpD6T,WAAS;AAAE,WAAA;AAAWE,YAAAA;AAAAA,IAAAA;AAAA5T,QAAAA;AAAAL,MAAA+T,CAAAA,MAAAA,aAAA/T,SAAA8T,UAAA9T,EAAA,CAAA,MAAAgU,QAEpB3T,MAAA;AAAA,MAAA6T,SAAA;AAAA,MAAAvX,OAEEoX;AAAAA,MAASD;AAAAA,MAAAE;AAAAA,IAAAA,GAGjBhU,OAAA+T,WAAA/T,OAAA8T,QAAA9T,OAAAgU,MAAAhU,OAAAK,OAAAA,MAAAL,EAAA,CAAA,GALDE,KAAOG;AAAAA,EAAAA;AAHT,QAAA8T,eAA+CjU;AASlBG,MAAAA;AAAA,OAAA;AAAA,QAAA,CAGtB0T,WAAS;AAAE,WAAA;AAAWK,YAAAA;AAAAA,IAAAA;AAAArR,QAAAA;AAAA/C,MAAA+T,CAAAA,MAAAA,aAAA/T,SAAA8T,UAAA9T,EAAA,CAAA,MAAAgU,QAEpBjR,MAAAsR,qBAAeN,WAAWD,QAAQE,IAAI,GAAChU,OAAA+T,WAAA/T,OAAA8T,QAAA9T,OAAAgU,MAAAhU,OAAA+C,OAAAA,MAAA/C,EAAA,CAAA,GAA9CK,KAAO0C;AAAAA,EAAAA;AAHT,QAAApG,UAA4B0D;AAIC,MAAA,CAExB1D,SAAK;AAAAoG,QAAAA;AAAA,WAAA/C,EAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACDhP,MAAsDuR,2BAAA,IAAA,SAAjD,UAA2C,8CAAA,CAAA,GAAMtU,OAAA+C,OAAAA,MAAA/C,EAAA,CAAA,GAAtD+C;AAAAA,EAAAA;AAAsDA,MAAAA;AAAA/C,IAAA6T,CAAAA,MAAAA,YAAA7T,UAAArD,WAK3DoG,KAACuR,2BAAAA,IAAAC,iBAAAA,eAA2B5X,EAAAA,OAAAA,SAAe,SAAE,CAAA,GAAsBqD,OAAA6T,UAAA7T,QAAArD,SAAAqD,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA;AAAAgD,MAAAA;AAAA,SAAAhD,EAAA+C,EAAAA,MAAAA,MAAA/C,UAAAmU,gBADrEnR,KAAAsR,2BAAAA,IAAA,aAAA,UAAA,EAA8BH,OAAAA,cAC5BpR,UAAAA,GACF,CAAA,GAAwB/C,QAAA+C,IAAA/C,QAAAmU,cAAAnU,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA,GAFxBgD;AAEwB;AAI5B0Q,cAAcc,cAAc;ACrDrB,SAAAC,eAAA;AACLlZ,QAAAA,QAAcqY,iBAAAH,YAAuB;AAAC,MAAA,CAEjClY;AAAKuB,UAAAA,IAAAA,MACQ,uCAAuC;AAGlDvB,SAAAA;AAAK;ACEP,SAAAmZ,mBAAA9X,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAA4T;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,EAAAA,IAAiCpX,OACjC+X,OAAaF,gBAGYvU,KAAA4T,UAAUa,KAAIb;AAAOzT,MAAAA;AAAAL,SAAAA,EAAA6T,CAAAA,MAAAA,YAAA7T,SAAA2U,KAAAhY,SAAAqD,EAAAE,CAAAA,MAAAA,MAAAF,SAAAgU,QAA5C3T,KAAAiU,2BAAAA,IAAC,iBAAsB,QAAApU,IAA8B,OAAAyU,KAAIhY,OAAcqX,MAC7D,UACV,GAAgBhU,OAAA6T,UAAA7T,EAAA,CAAA,IAAA2U,KAAAhY,OAAAqD,OAAAE,IAAAF,OAAAgU,MAAAhU,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAFhBK;AAEgB;AAIpBqU,mBAAmBF,cAAc;ACrB1B,SAAAI,WAAA;AAAA,SACEC,0BAAe;AAAC;AAMlB,SAAAC,cAAA;AAAA,QAAA9U,IAAAC,qBAAAA,EAAA,CAAA,GACcC,KAAA2U,iBAAAA,SAAe;AAAUxU,MAAAA;AAAA,SAAAL,SAAAE,MAArCG,KAAApD,kBAAYiD,EAAyB,GAACF,OAAAE,IAAAF,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAtCK;AAAsC;ACE/C,SAAS0U,eAAejZ,OAAiBmU,OAA2B;AAC9DA,SAAAA,UAAU,IACL,0BAA0BnU,MAAMmU,KAAK,IAAI,CAAC,QAG/CA,UAAUnU,MAAMiB,SACX,0BAA0BjB,MAAMmU,QAAQ,CAAC,CAAC,QAG5C,0BAA0BnU,MAAMmU,QAAQ,CAAC,CAAC,uBAAuBnU,MAAMmU,KAAK,IAAI,CAAC;AAC1F;AAEA,SAAS+E,kBAAkBlZ,OAA8B;AACvD,QAAMmZ,WAAWnZ,MAAMiB;AACnBU,MAAAA;AAKJ,QAAMyX,WAAWA,MAAM;AACrB,QAAI,CAACzX,OAAO;AACVA,cAAQ,CAAE;AAEV,eAASwS,QAAQgF,UAAUhF,QAAQ,IAAIA,SAAS,GAAG;AAC3CkF,cAAAA,aAAaJ,eAAejZ,OAAOmU,KAAK;AAE9CxS,cAAMuD,KAAK;AAAA,UAACiP;AAAAA,UAAOmF,IAAI/S,OAAOwQ,WAAWsC,UAAU;AAAA,QAAA,CAAE;AAAA,MAAA;AAAA,IACvD;AAGK1X,WAAAA;AAAAA,EACT;AA8BO,SAAA;AAAA,IAACgV,aA5BYA,MAAM;AACb,iBAAA;AAAA,QAACxC;AAAAA,QAAOmF;AAAAA,WAAOF,SAAS;AAC7BE,YAAAA,GAAGrC,QAAgB9C,QAAAA;AAGlB,aAAA;AAAA,IACT;AAAA,IAsBqBa,WApBFgC,CAA8B,kBAAA;AAC/C,YAAMuC,aAA6B,CAAE;AAE1B,iBAAA;AAAA,QAACD;AAAAA,MAAE,KAAKF,YAAY;AAC7B,cAAMI,eAAeA,MAAM;AACrBF,aAAGrC,WAASD,cAAc;AAAA,QAChC;AAEGxQ,WAAAA,iBAAiB,UAAUgT,YAAY,GAE1CD,WAAWrU,KAAK,MAAMoU,GAAG7S,oBAAoB,UAAU+S,YAAY,CAAC;AAAA,MAAA;AAGtE,aAAO,MAAM;AACX,mBAAWC,aAAaF;AACZ,oBAAA;AAAA,MAEd;AAAA,IAAA;AAAA,EAG4B;AAChC;AASA,SAAS7C,oBAAoB;AACpB,SAAA;AACT;AAMO,SAAAgD,gBAAA;AAAAxV,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAnE;AAAAA,MAAgBgZ,YAAY;AAAC,MAAA5U,IAAAG;AAAAL,WAAAlE,SACDuE,KAAA2U,kBAAkBlZ,KAAK,GAACkE,OAAAlE,OAAAkE,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAAE,KAAxBG;AAA5B,QAAAoV,QAAcvV;AAAgD,SAEvD8S,MAAAA,qBAAqByC,MAAK3E,WAAY2E,MAAKhD,aAAAD,iBAA+B;AAAC;ACtF7E,SAAAkD,eAAAxV,IAAA;AAAuD,SACrDoS,cAAc,gCADQpS,OAA+B3D,SAAAkG,UAA/BvC,EACyC;AAAC;AADlE,SAAAuC,UAAA;AAAA,SAAA;AAAA;ACAA,SAAAkT,wBAAAzV,IAAA;AAAgE,SAC9DoS,cAAc,oCADiBpS,OAA+B3D,SAAAkG,UAA/BvC,EACoC;AAAC;AADtE,SAAAuC,UAAA;AAAA,SAAA;AAAA;ACRA,SAASmT,wBAEd;AACA,SAAO,CAAC3E,QAAQhI,WAAWE,aAAaE,cAAcE,UAAU;AAClE;AAEA,SAAS0H,OAAOrU,OAAgD;AACxD,QAAA;AAAA,IAACiZ;AAAAA,IAAM/Z;AAAAA,EAAK,IAAImB,kBAAYL,MAAMD,KAAK,GACvCmZ,cAAc,GAAGD,KAAK5E,QAAQ/L,SAAS,CAAC;AAE9C,SAAOrJ,YAAYC,OAAOc,MAAMmZ,SAAUxa,WACxCA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAAC0V,QAAQ6E;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAAC7E,QAAQ;AAAA,IAAA;AAAA,EAAC,CAC3D;AACF;AAEA,SAAShI,UAAUrM,OAAgD;AAC3D,QAAA;AAAA,IAACiZ;AAAAA,IAAM/Z;AAAAA,EAAK,IAAImB,kBAAYL,MAAMD,KAAK,GACvCmZ,cAAc,GAAGD,KAAK5E,QAAQ/L,SAAS,CAAC;AAE9C,SAAOrJ,YAAYC,OAAOc,MAAMoZ,YAAaza,WAC3CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAAC0N,WAAW6M;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAAC7M,WAAW;AAAA,IAAA;AAAA,EAAC,CACjE;AACF;AAEA,SAASE,YAAYvM,OAAgD;AAC7D,QAAA;AAAA,IAACiZ;AAAAA,IAAM/Z;AAAAA,EAAK,IAAImB,kBAAYL,MAAMD,KAAK,GACvCmZ,cAAc,GAAGD,KAAK5E,QAAQ/L,SAAS,CAAC;AAE9C,SAAOrJ,YAAYC,OAAOc,MAAMqZ,cAAe1a,WAC7CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAAC4N,aAAa2M;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAAC3M,aAAa;AAAA,IAAA;AAAA,EAAC,CACrE;AACF;AAEA,SAASE,aAAazM,OAAgD;AAC9D,QAAA;AAAA,IAACiZ;AAAAA,IAAM/Z;AAAAA,EAAK,IAAImB,kBAAYL,MAAMD,KAAK,GACvCmZ,cAAc,GAAGD,KAAK5E,QAAQ/L,SAAS,CAAC;AAE9C,SAAOrJ,YAAYC,OAAOc,MAAMsZ,eAAgB3a,WAC9CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAAC8N,cAAcyM;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACzM,cAAc;AAAA,IAAA;AAAA,EAAC,CACvE;AACF;AAEA,SAASE,WAAW3M,OAAgD;AAC5D,QAAA;AAAA,IAACiZ;AAAAA,IAAM/Z;AAAAA,EAAK,IAAImB,kBAAYL,MAAMD,KAAK,GACvCmZ,cAAc,GAAGD,KAAK5E,QAAQ/L,SAAS,CAAC;AAE9C,SAAOrJ,YAAYC,OAAOc,MAAMuZ,aAAc5a,WAC5CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACgO,YAAYuM;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACvM,YAAY;AAAA,IAAA;AAAA,EAAC,CACnE;AACF;AChDA,MAAM6M,eAAwB;AAAA,EAC5B,mCAAmC;AAAA,IACjCC,WAAW;AAAA,EAAA;AAEf,GAEMC,aAAkD;AAAA,EACtDvY,SAAS;AAAA,EACTkT,QAAQ;AACV,GAEMsF,aAAa;AAAA,EACjBC,SAAS;AAAA,EACTC,MAAM;AACR;AAEO,SAASC,WAAsB;AAC7BN,SAAAA;AACT;AAEO,SAASO,qBAEd;AACA,SAAO,CACLC,0BACAC,0BACAC,4BACAC,yBAAyB;AAE7B;AAEA,SAASA,0BAA0Bna,OAA6C;AACxE,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMoa,UAAWhZ,CAAa,aAAA;AAAA,IACtD,mBAAmB;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EAAO,EAC3B;AACJ;AAEA,SAAS4Y,yBAAyBha,OAA6C;AACvE,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMqa,SAAUC,CAAY,YAAA;AAAA,IACpD3O,WAAW+N,WAAWY,MAAM;AAAA,EAAA,EAC5B;AACJ;AAEA,SAASL,yBAAyBja,OAA6C;AACvE,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMua,SAAUlZ,CAAY,YAAA;AAAA,IACpDA,QAAQsY,WAAWtY,MAAM;AAAA,EAAA,EACzB;AACJ;AAEA,SAAS6Y,2BAA2Bla,OAA6C;AACzE,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMwa,WAAYC,CAAc,cAAA;AAAA,IACxDA;AAAAA,EAAAA,EACA;AACJ;AC9DA,MAAMjB,eAAwB;AAAA,EAC5B,oBAAoB;AAAA,IAClBpY,SAAS;AAAA,EAAA;AAEb;AAEO,SAASsZ,sBAEd;AACA,SAAO,CACLlB,cACAmB,0BACAC,wBACAC,yBACAC,4BACAC,4BAA4B;AAEhC;AAEO,SAASJ,yBACd3a,OACa;AACP,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMgD,QAASgY,CAChC,WAAA;AAAA,IAACC,YAAYD;AAAAA,EAAAA,EACrB;AACH;AAEA,SAASJ,uBAAuB5a,OAA8C;AACtE,QAAA;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMkb,MAAOC,CAAS,SAAA;AAAA,IAC9CA,KAAKA,MAAMpc,IAAIqB,MAAM+a,GAAG,CAAC,IAAIxb;AAAAA,EAAAA,EAC7B;AACJ;AAEO,SAASkb,wBAAwB7a,OAA2D;AAC3F,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMob,OAAQC,CAC/B,UAAA;AAAA,IAACC,UAAUD;AAAAA,EAAAA,EACnB;AACH;AAEO,SAASP,2BACd9a,OACa;AACP,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMub,UAAWC,CAClC,aAAA;AAAA,IAACC,gBAAgBD;AAAAA,EAAAA,EACzB;AACH;AAEO,SAAST,6BACd/a,OACa;AACP,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM0b,YAAaC,CACpC,eAAA;AAAA,IAACC,eAAeD;AAAAA,EAAAA,EACxB;AACH;AC9DA,MAAMnC,eAAwB;AAAA,EAC5BqC,UAAU;AAAA,EACVC,WAAW;AACb;AAEO,SAASC,gBAEd;AACO,SAAA,CAACvC,cAAYwC,uBAAuB;AAC7C;AAEO,SAASA,wBACdhc,OACa;AACP,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAKC,MAAMic,QAEJhd,YAAYC,OAAOc,MAAMic,OAAQC,CAAU,UAAA;AAAA,IAACA;AAAAA,IAAM,IAFhCte;AAG3B;ACvBO,SAASue,qBAAqB9H,SAAgD;AACnF,SAAO,eAAeA,QAAO/L,KAAK,MAAM+L,QAAO+H,KAAK;AACtD;AAEO,SAASC,eAAeC,MAIpB;AACH,QAAA;AAAA,IAACpb;AAAAA,IAAMmT,QAAAA;AAAAA,IAAQkI;AAAAA,EAAAA,IAAaD,MAC5BE,uBAAuBD,UAAUE,SAASF,UAAUjU,OACpDoU,sBAAsB,IAAIH,UAAUE,QACpCE,UAAUzb,OAAOA,KAAK0b,KAAK;AAEjC,SAAO,CACLF,sBAAsB,KAAK,eAAeA,mBAAmB,mCAC7DrI,WAAU8H,qBAAqB9H,OAAM,GACrCqI,sBAAsB,KAAK,SAAS,IAAIA,mBAAmB,MAAMC,OAAO,IACxEH,uBAAuB,KAAK,SAASA,oBAAoB,iCAAiC,EAEzFnY,OAAOC,OAAO,EACduY,KAAK,GAAG;AACb;ACnBA,MAAMC,WAAW;AAAA,EACf,oBAAoB;AAAA,IAClB1b,SAAS;AAAA,EACX;AAAA,EACA,mCAAmC;AAAA,IACjCqY,WAAW;AAAA,EAAA;AAEf,GAEMsD,mBAAmB;AAAA,EACvBC,MAAM;AAAA,EACNC,KAAK;AAAA,EACLC,KAAK;AAAA,EACLC,IAAI;AACN,GAEMC,iBAAiB;AAAA,EACrBJ,MAAM;AAAA,EACNC,KAAK;AAAA,EACLC,KAAK;AAAA,EACLC,IAAI;AACN;AAEO,SAASE,sBAEd;AACO,SAAA,CACLP,UACAQ,6BACAC,6BACAC,6BACAC,4BACAC,yBACAC,wBACAC,yBACAC,uBAAuB;AAE3B;AAEA,SAASP,4BAA4Btd,OAA8C;AAC3E,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM8d,WAAYC,CAAc,cAAA;AAAA,IACxDC,cAAcD;AAAAA,EAAAA,EACd;AACJ;AAEA,SAASR,4BAA4Bvd,OAA8C;AAC3E,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMie,WAAYC,CAAc,cAAA;AAAA,IACxDC,cAAcD,YAAYd,eAAec,QAAQ;AAAA,EAAA,EACjD;AACJ;AAEA,SAASV,4BAA4Bxd,OAA8C;AAC3E,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMoe,WAAYC,CAAc,cAAA;AAAA,IACxDC,iBAAiBD,YAAYtB,iBAAiBsB,QAAQ;AAAA,EAAA,EACtD;AACJ;AAEA,SAASZ,2BAA2Bzd,OAA8C;AAC1E,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMue,UAAWC,CAAa,aAAA;AAAA,IACtDC,qBAAqBD,WAAW,UAAUA,OAAO;AAAA,EAAA,EACjD;AACJ;AAEA,SAASd,wBAAwB1d,OAA8C;AACvE,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM0e,OAAQC,CAAU,UAAA;AAAA,IAChDC,kBAAkBD,QAAQ,UAAUA,IAAI;AAAA,EAAA,EACxC;AACJ;AAEA,SAAShB,uBAAuB3d,OAA8C;AACtE,QAAA;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMkb,MAAOC,CAAS,SAAA;AAAA,IAC9C0D,SAAS1D,MAAMpc,IAAIqB,MAAM+a,GAAG,CAAC,IAAIxb;AAAAA,EAAAA,EACjC;AACJ;AAEA,SAASie,wBAAwB5d,OAA8C;AACvE,QAAA;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAM8e,OAAQC,CAAU,UAAA;AAAA,IAChDC,WAAWD,OAAOhgB,IAAIqB,MAAM2e,IAAI,CAAC,IAAIpf;AAAAA,EAAAA,EACrC;AACJ;AAEA,SAASke,wBAAwB7d,OAA8C;AACvE,QAAA;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMif,OAAQC,CAAU,UAAA;AAAA,IAChDC,QAAQD,OAAOngB,IAAIqB,MAAM8e,IAAI,CAAC,IAAIvf;AAAAA,EAAAA,EAClC;AACJ;ACrGO,SAASyf,0BAEd;AACA,SAAO,CACLC,4BACAC,iCACAC,+BACAC,+BACAC,oCACAC,gCAAgC;AAEpC;AAEA,MAAMC,gBAAgB;AAAA,EACpB3C,MAAM;AAAA,EACN4C,MAAM;AACR,GAEMC,mBAAmB;AAAA,EACvB7C,MAAM;AAAA,EACN4C,MAAM;AACR;AAEA,SAASP,2BAA2Brf,OAAkD;AAC9E,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM8f,MAAOC,CACjC,QAAA,OAAOA,OAAQ,WACV;AAAA,IAACC,SAAS,QAAQD,GAAG,WAAWA,GAAG;AAAA,EAAA,IAGrC;AAAA,IAACC,SAASL,cAAcI,GAAG;AAAA,EAAA,CACnC;AACH;AAEA,SAAST,gCAAgCtf,OAAkD;AACnF,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMigB,WAAYC,CAAc,cAAA;AAAA,IACxDC,cAAcD;AAAAA,EAAAA,EACd;AACJ;AAEA,SAASX,8BAA8Bvf,OAAkD;AACjF,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMogB,SAAUC,CAAY,YAAA;AAAA,IAACC,YAAYD;AAAAA,EAAAA,EAAQ;AAC7E;AAEA,SAASb,8BAA8Bxf,OAAkD;AACjF,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMugB,SAAUC,CACpC,WAAA,OAAOA,UAAW,WACb;AAAA,IAACC,YAAY,QAAQD,MAAM,WAAWA,MAAM;AAAA,EAAA,IAG9C;AAAA,IAACC,YAAYZ,iBAAiBW,MAAM;AAAA,EAAA,CAC5C;AACH;AAEA,SAASf,mCAAmCzf,OAAkD;AACtF,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM0gB,cAAeC,CAAiB,iBAAA;AAAA,IAC9DC,iBAAiBD;AAAAA,EAAAA,EACjB;AACJ;AAEA,SAASjB,iCAAiC1f,OAAkD;AACpF,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM6gB,YAAaC,CAAe,eAAA;AAAA,IAC1DC,eAAeD;AAAAA,EAAAA,EACf;AACJ;ACpEO,SAASE,4BACdhhB,OACa;AACP,QAAA;AAAA,IAACihB;AAAAA,IAAWC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAUC;AAAAA,MAAUrhB,OACvD;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,kBAAYL,MAAMD,KAAK,GAC9CuhB,MAAMhf,KAAK4a,IAAIkE,SAASjhB,QAAQkhB,OAAOlhB,QAAQ8gB,UAAU9gB,MAAM,GAC/DohB,WAAqB,CAAA,GACrBC,SAAmB,IACnBC,YAAsB,CAAE;AAE9B,WAAS5O,IAAI,GAAGA,IAAIyO,KAAKzO,KAAK;AAC5B4O,cAAU5O,CAAC,IAAIoO,UAAUpO,CAAC,MAAMlT,SAAY8hB,UAAU5O,IAAI,CAAC,IAAIoO,UAAUpO,CAAC,GAC1E0O,SAAS1O,CAAC,IAAIuO,SAASvO,CAAC,MAAMlT,SAAY4hB,SAAS1O,IAAI,CAAC,IAAIuO,SAASvO,CAAC,GACtE2O,OAAO3O,CAAC,IAAIwO,OAAOxO,CAAC,MAAMlT,SAAY6hB,OAAO3O,IAAI,CAAC,IAAIwO,OAAOxO,CAAC;AAGhE,SAAO5T,YAAYC,OAAOqiB,UAAU,CAACG,GAAG7O,MAAM;AAC5C,UAAMjR,QAAOjB,KAAKghB,KAAK9gB,MAAM4gB,UAAU5O,CAAC,CAAC,KAAKlS,KAAKghB,KAAK9gB,MAAM,CAAC,GACzD+gB,SAAShgB,MAAKK,aAAaL,MAAKC,iBAAiBD,MAAKE,iBACtD+f,IAAIzhB,MAAMmhB,SAAS1O,CAAC,CAAC,GACrBiP,IAAI1hB,MAAMohB,OAAO3O,CAAC,CAAC,GAEnBkP,SAAS;AAAA,MACb9V,YAAYlN,IAAI8iB,IAAIjgB,MAAKC,cAAc;AAAA,MACvCqK,cAAcnN,IAAI8iB,CAAC;AAAA,MACnB1V,eAAepN,IAAI8iB,IAAIjgB,MAAKE,eAAe;AAAA,MAC3CsK,aAAarN,IAAI8iB,CAAC;AAAA,IACpB;AAEA,WAAIV,eAAYY,OAAO7V,eAAenN,IAAI8iB,IAAID,SAASE,CAAC,IACpDZ,cAAWa,OAAO3V,cAAcrN,IAAI8iB,IAAID,SAASE,CAAC,IAE/CC;AAAAA,EAAAA,CACR;AACH;AAsBO,SAASC,qCACdhiB,OAKa;AACb,SAAOghB,4BAA4B;AAAA,IAAC,GAAGhhB;AAAAA,IAAOmhB,YAAY;AAAA,EAAA,CAAK;AACjE;AC/CA,MAAMc,aAAaC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAQZ,SAASC,qBAA6C;AACpDF,SAAAA;AACT;AAEO,SAASG,mBACdpiB,OACwB;AAClB,QAAA;AAAA,IAACqiB;AAAAA,IAASC;AAAAA,IAAO5hB;AAAAA,MAAWV,OAC5B;AAAA,IAACoc;AAAAA,IAAOzb;AAAAA,EAAAA,IAAQN,MAAYL,YAAAA,MAAMD,KAAK;AAEtCmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAQUvhB,KAAKghB,KAAK/gB,MAAM;AAAA,mBACfF,WAAWC,KAAKghB,KAAK7gB,QAAQJ,OAAO,KAAMC,KAAKghB,KAAK7gB,QAAQE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBA2BlEqhB,OAAO,iBAAiBC,KAAK;AAAA,0BACxBlG,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA,mCACrBtG,MAAMmG,MAAMC,QAAQC,QAAQE,WAAW;AAAA;AAAA;AAAA;AAAA,4BAI9CvG,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA,qCACrBtG,MAAMmG,MAAMC,QAAQC,QAAQE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKhDvG,MAAMmG,MAAMC,QAAQI,SAASF,EAAE;AAAA,qCACtBtG,MAAMmG,MAAMC,QAAQI,SAASD,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKjDvG,MAAMmG,MAAMM,QAAQJ,QAAQC,EAAE;AAAA,qCACrBtG,MAAMmG,MAAMM,QAAQJ,QAAQE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKhDvG,MAAMmG,MAAMC,QAAQM,SAASJ,EAAE;AAAA,qCACtBtG,MAAMmG,MAAMC,QAAQM,SAASH,WAAW;AAAA;AAAA;AAAA;AAI7E;AAEO,SAASI,uBAAuB/iB,OAA2D;AAC1F,QAAA;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAE7C,SAAOd,YAAYC,OAAOc,MAAMihB,WAAYvf,CAAc,cAAA;AAClDE,UAAAA,QAAOjB,KAAKghB,KAAK9gB,MAAMa,SAAS,KAAKf,KAAKghB,KAAK9gB,MAAM,CAAC;AAErD,WAAA;AAAA,MACLc,UAAU5C,IAAI6C,MAAKD,QAAQ;AAAA,MAC3BM,YAAYL,MAAKK,aAAaL,MAAKD;AAAAA,IACrC;AAAA,EAAA,CACD;AACH;AAEO,SAASqhB,6BACdhjB,OACwB;AAClB,QAAA;AAAA,IAACijB;AAAAA,IAAYC;AAAAA,IAAYb;AAAAA,IAASC;AAAAA,IAAOa;AAAAA,MAA6BnjB,OACtE;AAAA,IAACoc;AAAAA,IAAOmG;AAAAA,EAAAA,IAASliB,MAAYL,YAAAA,MAAMD,KAAK;AAEvCmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,8BAeqBe,aAAa,IAAItjB,MAAS;AAAA,iCACvBsjB,aAAa,IAAItjB,MAAS;AAAA,+BAC5BujB,aAAa,IAAIvjB,MAAS;AAAA,kCACvBujB,aAAa,IAAIvjB,MAAS;AAAA;AAAA,qBAEvC0iB,OAAO,iBAAiBC,KAAK;AAAA,yBACzBlG,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA,yBAC9BR,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA;AAAA;AAAA;AAAA,8BAIzBvG,qBAAqB;AAAA,IACzCC,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKiB8T,MAAMmG,MAAMM,QAAQJ,QAAQ7F,EAAE;AAAA,2BAC9BR,MAAMmG,MAAMM,QAAQJ,QAAQC,EAAE;AAAA;AAAA;AAAA,gCAGzBvG,qBAAqB;AAAA,IACzCC,OAAOA,MAAMmG,MAAMM,QAAQJ,QAAQpO;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAOoB6a,4BAClBxjB,SACA0c,eAAe;AAAA,IACbhI,QAAQ;AAAA,MAAC+H,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,MAAQ/L,OAAOia,MAAMlO,OAAO/L;AAAAA,IAAK;AAAA,IAC7EiU,WAAWgG,MAAMZ,KAAKpF;AAAAA,EAAAA,CACvB,CAAC;AAAA;AAAA;AAAA;AAAA,gCAIgB4G,4BAClBxjB,SACA0c,eAAe;AAAA,IAACE,WAAWgG,MAAMZ,KAAKpF;AAAAA,EAAAA,CAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMpCH,MAAMmG,MAAMC,QAAQI,SAAShG,EAAE;AAAA,2BAC/BR,MAAMmG,MAAMC,QAAQI,SAASF,EAAE;AAAA,6BAC7BtG,MAAMmG,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA,gCAG5BvG,qBAAqB;AAAA,IACzCC,OAAOA,MAAMmG,MAAMC,QAAQI,SAASvO;AAAAA,IACpC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKe8T,MAAMmG,MAAMM,QAAQD,SAAShG,EAAE;AAAA,2BAC/BR,MAAMmG,MAAMM,QAAQD,SAASF,EAAE;AAAA,6BAC7BtG,MAAMmG,MAAMM,QAAQD,SAASF,EAAE;AAAA;AAAA;AAAA,gCAG5BvG,qBAAqB;AAAA,IACzCC,OAAOA,MAAMmG,MAAMM,QAAQD,SAASvO;AAAAA,IACpC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMe8T,MAAMmG,MAAMC,QAAQM,SAASlG,EAAE;AAAA,2BAC/BR,MAAMmG,MAAMC,QAAQM,SAASJ,EAAE;AAAA;AAAA;AAAA;AAAA,2BAI/BtG,MAAMmG,MAAMM,QAAQC,SAASlG,EAAE;AAAA,2BAC/BR,MAAMmG,MAAMM,QAAQC,SAASJ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAM7BtG,MAAMmG,MAAMC,QAAQY,QAAQxG,EAAE;AAAA,6BAC9BR,MAAMmG,MAAMC,QAAQY,QAAQV,EAAE;AAAA;AAAA;AAAA;AAAA,6BAI9BtG,MAAMmG,MAAMM,QAAQO,QAAQxG,EAAE;AAAA,6BAC9BR,MAAMmG,MAAMM,QAAQO,QAAQV,EAAE;AAAA;AAAA;AAAA;AAAA,gCAI3BvG,qBAAqB;AAAA,IACzCC,OAAOA,MAAMmG,MAAMC,QAAQY,QAAQ/O;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA,gCAIoB6T,qBAAqB;AAAA,IACzCC,OAAOA,MAAMmG,MAAMM,QAAQO,QAAQ/O;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKZ;ACjQO,SAAS+a,sBACdrjB,OACe;AACT,QAAA;AAAA,IAACD,OAAAA;AAAAA,EAAAA,IAASC;AAEhB,SAAO,CACLF,oBAAoBC,QAAO,CAAC,QAAQ,GAAGC,MAAMsjB,OAAO,GACpDxjB,oBAAoBC,QAAO,CAAC,cAAc,aAAa,GAAGC,MAAMujB,QAAQ,GACxEzjB,oBAAoBC,QAAO,CAAC,aAAa,cAAc,GAAGC,MAAMwjB,QAAQ,GACxE1jB,oBAAoBC,QAAO,CAAC,WAAW,GAAGC,MAAMyjB,UAAU,GAC1D3jB,oBAAoBC,QAAO,CAAC,aAAa,GAAGC,MAAM0jB,YAAY,GAC9D5jB,oBAAoBC,QAAO,CAAC,cAAc,GAAGC,MAAM2jB,aAAa,GAChE7jB,oBAAoBC,QAAO,CAAC,YAAY,GAAGC,MAAM4jB,WAAW,CAAC,EAC7Dvf,OAAOC,OAAO;AAClB;ACdO,SAASuf,uBACd7jB,OACe;AACT,QAAA;AAAA,IAACD,OAAAA;AAAAA,EAAAA,IAASC;AAEhB,SAAO,CACLF,oBAAoBC,QAAO,CAAC,SAAS,GAAGC,MAAMohB,QAAQ,GACtDthB,oBAAoBC,QAAO,CAAC,eAAe,cAAc,GAAGC,MAAM8jB,SAAS,GAC3EhkB,oBAAoBC,QAAO,CAAC,cAAc,eAAe,GAAGC,MAAM+jB,SAAS,GAC3EjkB,oBAAoBC,QAAO,CAAC,YAAY,GAAGC,MAAMgkB,WAAW,GAC5DlkB,oBAAoBC,QAAO,CAAC,cAAc,GAAGC,MAAMikB,aAAa,GAChEnkB,oBAAoBC,QAAO,CAAC,eAAe,GAAGC,MAAMkkB,cAAc,GAClEpkB,oBAAoBC,QAAO,CAAC,aAAa,GAAGC,MAAMmkB,YAAY,CAAC,EAC/D9f,OAAOC,OAAO;AAClB;ACdO,SAAS8f,sBAAsBpkB,OAA6D;AAC3F,QAAA;AAAA,IAACd;AAAAA,IAAOmlB;AAAAA,EAAAA,IAAUhkB,MAAYL,YAAAA,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMskB,SAAU3lB,CAAU,UAAA;AAClD,QAAI4lB,eAA2B;AAE/B,WAAI,OAAO5lB,SAAU,aACnB4lB,eAAexlB,IAAIslB,OAAO1lB,KAAK,CAAC,IAG9BA,UAAU,WACZ4lB,eAAe,WAGV;AAAA,MAACA;AAAAA,IAAY;AAAA,EAAA,CACrB;AACH;ACdA,SAASC,YAAYC,QAAwBrI,OAAe;AACnD,SAAA,GAAGqI,OAAOplB,IAAIN,GAAG,EAAE8d,KAAK,GAAG,CAAC,IAAIT,KAAK;AAC9C;AAEA,SAASsI,YAAYD,QAA4BE,eAAuB,GAAc;AAChF,MAAA,CAACF,OAAe5mB,QAAAA;AAEd+mB,QAAAA,UAAU,SAAS7lB,IAAI4lB,YAAY,CAAC,qCACpCE,QAAQL,YAAYC,OAAOI,OAAO,gCAAgC,GAClEC,WAAWN,YAAYC,OAAOK,UAAU,mCAAmC,GAC3EC,UAAUP,YAAYC,OAAOM,SAAS,kCAAkC;AAEvE,SAAA;AAAA,IAACC,WAAW,GAAGJ,OAAO,KAAKC,KAAK,KAAKC,QAAQ,KAAKC,OAAO;AAAA,EAAE;AACpE;AAEO,SAASE,sBAAsBjlB,OAA6D;AAC3F,QAAA;AAAA,IAACiZ;AAAAA,IAAM/Z;AAAAA,IAAOulB;AAAAA,EAAAA,IAAUpkB,MAAYL,YAAAA,MAAMD,KAAK;AAErD,SAAOd,YAAYC,OAAOc,MAAMklB,SAAU7R,CACxCqR,UAAAA,YAAYD,OAAOpR,KAAK,GAAG4F,KAAKwL,OAAOG,OAAO,CAChD;AACF;ACzBaO,MAAAA,uBAAuBC,iBAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAM9C;ACLM,SAASC,eACdxlB,OACwB;AAClB,QAAA;AAAA,IAACylB;AAAAA,IAASC;AAAAA,MAAU1lB,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAYL,YAAAA,MAAMD,KAAK;AAE/BmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA,MAGHuD,WACFvD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECwD,UACFxD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgBvhB,KAAKglB,KAAK/kB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBrC;AChBA,MAAMglB,cAAqBC,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAK3BziB,qBAAqBC,0BAA0ByiB,cAAc,GAOnDM,QAAQC,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA2iB,QAAAhL,OAAAiL,cAAAC,WAAA5iB,IAAAG,IAAA0iB,cAAAC;AAAAhjB,WAAApD,SAI9B;AAAA,IAAAgmB;AAAAA,IAAAhL;AAAAA,IAAA/D,UAAAgP;AAAAA,IAAAI,OAAA/iB;AAAAA,IAAA1B,MAAA6B;AAAAA,IAAA0iB;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EASIlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAA4iB,QAAA5iB,OAAA4X,OAAA5X,OAAA6iB,cAAA7iB,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+iB,cAAA/iB,OAAAgjB,WAAAJ,SAAA5iB,EAAA,CAAA,GAAA4X,QAAA5X,EAAA,CAAA,GAAA6iB,eAAA7iB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+iB,eAAA/iB,EAAA,CAAA,GAAAgjB,SAAAhjB,EAAA,CAAA;AALPijB,QAAAA,QAAA/iB,OAAa3D,cAAb2D,IACA1B,QAAA6B,OAAQ9D,aAAR8D;AAMF,MAAAwT,WAAegP;AAAY,MAEvBE,iBAAiB,YAAU;AAAAhgB,QAAAA;AAAA/C,aAAA6T,YAClB9Q,MAACuR,2BAAA,IAAA,sBAAA,WAA+B,CAAA,GAAuBtU,OAAA6T,UAAA7T,QAAA+C,OAAAA,MAAA/C,EAAA,EAAA,GAAlE6T,WAAWA;AAAAA,EAAAA,OAAH;AAAA9Q,QAAAA;AAAA/C,cAAA6T,YAEG9Q,MAAuBuR,2BAAA,IAAA,QAAA,EAAT,SAAE,CAAA,GAAOtU,QAAA6T,UAAA7T,QAAA+C,OAAAA,MAAA/C,EAAA,EAAA,GAAlC6T,WAAWA;AAAAA,EAAAA;AAQD,QAAA9Q,KAAAhD,aAAa6X,KAAK,GAEnB5U,KAAAjD,aAAavB,KAAI;AAAC0kB,MAAAA;AAAA,SAAAljB,EAAA,EAAA,MAAA4iB,UAAA5iB,EAAA,EAAA,MAAA6T,YAAA7T,EAAA,EAAA,MAAAijB,SAAAjjB,EAAAsD,EAAAA,MAAAA,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAA+C,EAAAA,MAAAA,MAAA/C,EAAAgD,EAAAA,MAAAA,MAAAhD,UAAAgjB,UAN3BE,oCAAC,aACS,EAAA,WAAA,SAAO,GACXJ,WACKF,SAAK,QACN,QAAA7f,IACAkgB,eACD,OAAAjgB,IACEggB,SAAAA,QACJ1f,KAEG,SAAA,CACV,GAActD,QAAA4iB,QAAA5iB,QAAA6T,UAAA7T,QAAAijB,OAAAjjB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAgjB,QAAAhjB,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA,GAXdkjB;AAWc,CAEjB;AACDR,MAAMlO,cAAc;ACxEb,MAAM2O,cAAc;AAAA,EACzBxO,MAAMyO;AAAAA,EACNC,OAAOC;AAAAA,EACPC,UAAUC;AAAAA,EACVC,QAAQC;AAAAA,EACRC,UAAUC;AAAAA,EACVC,OAAOC;AACT;AAEA,SAASR,mBAA8B;AAC9B,SAAA;AAAA,IACL,UAAY;AAAA,IACZ,WAAa;AAAA,IACb,QAAU;AAAA,IACV,SAAW;AAAA,IACX,YAAc;AAAA,IACd,WAAa;AAAA,IACb,MAAQ;AAAA,IACR,OAAS;AAAA,IACT,KAAO;AAAA,IACP,QAAU;AAAA,IAEV,WAAW;AAAA,MACT,OAAS;AAAA,MACT,QAAU;AAAA,MACV,UAAY;AAAA,MACZ,KAAO;AAAA,MACP,MAAQ;AAAA,MACR,WAAa;AAAA,MAEb,mBAAmB;AAAA,QACjBtlB,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA,IAEA,sCAAsC;AAAA,MACpC+lB,WAAW;AAAA,MACXlpB,SAAS;AAAA,IACX;AAAA,IAEA,mCAAmC;AAAA,MACjCA,SAAS;AAAA,MACTkpB,WAAW;AAAA,IACb;AAAA,IAEA,sCAAsC;AAAA,MACpClpB,SAAS;AAAA,MACTkpB,WAAW;AAAA,IAAA;AAAA,EAEf;AACF;AAEO,SAASX,gBAAgBxmB,OAAqD;AAC7E,QAAA;AAAA,IAAConB;AAAAA,MAAUpnB,OACX;AAAA,IAACqnB;AAAAA,EAAAA,IAAUhnB,MAAYL,YAAAA,MAAMD,KAAK;AAEjC,SAAA;AAAA,IACL,qBAAqB,qBAAqBqnB,MAAM;AAAA,IAChD,qBAAqB,qBAAqBA,MAAM;AAAA,IAEhD,iBAAmB;AAAA,IACnB,UAAY;AAAA,IACZ,WAAa;AAAA,IACb,YAAc;AAAA,IACd,WAAa;AAAA,IAEb,6BAA6B;AAAA,MAC3BnpB,SAAS;AAAA,IACX;AAAA,IAEA,SAAS;AAAA,MACP,mBAAmB;AAAA,QACjBmD,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA;AAAA,IAGA,uBAAuB;AAAA,MACrB,qBAAuB;AAAA,MACvB,YAAc;AAAA,MACd,QAAU;AAAA,MACV,SAAW;AAAA,MACX,QAAU;AAAA,MACV,MAAQ;AAAA,MACR,OAAS;AAAA,MACT,SAAW;AAAA,MAEX,WAAW;AAAA,QACT4jB,WAAW3I,eAAe;AAAA,UAACE,WAAW8K,OAAO9K;AAAAA,QAAU,CAAA;AAAA,MACzD;AAAA,MAEA,+BAA+B;AAAA,QAC7ByI,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EAEJ;AACF;AAEO,SAASsC,0BACdtnB,OACa;AACP,QAAA;AAAA,IAACqnB;AAAAA,IAAQnoB;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAASA,UAAA;AAC/C,UAAM2lB,aAAaF,OAAOxmB,MAAMe,KAAI,KAAKylB,OAAOxmB,MAAM,CAAC;AAEhD,WAAA;AAAA,MACL,OAAS9B,IAAIwoB,WAAW3lB,IAAI;AAAA,MAC5B,QAAU7C,IAAIwoB,WAAW3lB,IAAI;AAAA,MAC7B,cAAgB7C,IAAIwoB,WAAW3lB,OAAO,CAAC;AAAA,MAEvC,SAAS;AAAA,QACP0G,OAAOvJ,IAAIwoB,WAAW3lB,IAAI;AAAA,QAC1BP,QAAQtC,IAAIwoB,WAAW3lB,IAAI;AAAA,QAC3B2iB,cAAcxlB,IAAIwoB,WAAW3lB,OAAO,CAAC;AAAA,MAAA;AAAA,IAEzC;AAAA,EAAA,CACD;AACH;AAEO,SAASslB,mBAA8B;AACrC,SAAA;AAAA,IACLM,UAAU;AAAA,EACZ;AACF;AAEO,SAASR,sBAAiC;AACxC,SAAA;AAAA,IACL,OAAS;AAAA,IACT,QAAU;AAAA,IACV,OAAS;AAAA,IACT,YAAc;AAAA,IACd,gBAAkB;AAAA,IAClB,eAAiB;AAAA,IACjB,WAAa;AAAA,IACb,cAAgB;AAAA,IAEhB,mBAAmB;AAAA,MACjB5lB,SAAS;AAAA,IAAA;AAAA,EAEb;AACF;AAEA,SAASwlB,sBAAiC;AACjC,SAAA;AAAA,IACLa,aAAa;AAAA,IACbZ,QAAQ;AAAA,EACV;AACF;AAEA,SAASC,oBAA+B;AAC/B,SAAA;AAAA,IACL,aAAe;AAAA,IACf,QAAU;AAAA,IAEV,6BAA6B;AAAA,MAC3BY,iBAAiB;AAAA,MACjBC,eAAe;AAAA,IAAA;AAAA,EAEnB;AACF;ACrIA,MAAMC,eAAsB/B,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAC7B+B,2BACAf,YAAYxO,IAAI,GAGZ8P,UAAQzC,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAACgB,EAAAA,YAAYE,KAAK,GAEpCqB,WAAW1C,iCAAAA,OAAO2C,QAAOzC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAACgB,EAAAA,YAAYI,QAAQ,GAE9CqB,SAAS5C,iCAAAA,OAAO2C,QAAOzC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAACgB,EAAAA,YAAYM,MAAM,GAE1CoB,WAAW7C,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAACgB,EAAAA,YAAYQ,QAAQ,GAE1CmB,gBAAuBpC,wCAAAA,KAAK,EAACR,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAC,EAAA;AAAA,EAClCnJ,OAAO;AACT,CAAC,GAEK+L,cAAqB3c,wCAAAA,IAAG8Z,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAACgB,EAAAA,YAAYU,KAAK,GAOnCmB,SAASrC,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAAglB,MAAAA,4BAAAC,kBAAAC,mBAAAC,QAAAzB,UAAA0B,kBAAAvC,WAAAwC,KAAAplB,IAAAG,IAAA0C,IAAAwiB;AAAAvlB,WAAApD,SAI/B;AAAA,IAAAqoB;AAAAA,IAAAO,IAAAJ;AAAAA,IAAApM,OAAA9Y;AAAAA,IAAAolB;AAAAA,IAAAC;AAAAA,IAAA5B;AAAAA,IAAA0B;AAAAA,IAAAI,eAAAN;AAAAA,IAAAD;AAAAA,IAAAQ,QAAArlB;AAAAA,IAAA7B,MAAAuE;AAAAA,IAAA,GAAA+f;AAAAA,EAAAA,IAaIlmB,OAAKoD,OAAApD,OAAAoD,OAAAilB,4BAAAjlB,OAAAklB,kBAAAllB,OAAAmlB,mBAAAnlB,OAAAolB,QAAAplB,OAAA2jB,UAAA3jB,OAAAqlB,kBAAArlB,OAAA8iB,WAAA9iB,OAAAslB,KAAAtlB,OAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAulB,UAAAN,6BAAAjlB,EAAA,CAAA,GAAAklB,mBAAAllB,EAAA,CAAA,GAAAmlB,oBAAAnlB,EAAA,CAAA,GAAAolB,SAAAplB,EAAA,CAAA,GAAA2jB,WAAA3jB,EAAA,CAAA,GAAAqlB,mBAAArlB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAslB,MAAAtlB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,GAAAulB,QAAAvlB,EAAA,EAAA;AAVP,QAAAgZ,QAAA9Y,OAAc3D,SAAN,SAAR2D,IAOAwlB,SAAArlB,OAAiB9D,SAAR,WAAT8D,IACMslB,WAAA5iB,OAAYxG,aAAZwG,IAGR;AAAA,IAAAkhB;AAAAA,EAAAA,IAAiBnP,eACjB0Q,KAAWI,yBAAAC,mBAA2BT,MAAM,IAAIA,SAAS,OACzD5mB,QAAauB,aAAa4lB,QAAQ,GAIlCG,YADmB7B,OAAMxmB,MAAOe,MAAYylB,CAAAA,CAAAA,KAAAA,OAAMxmB,MAAS,CAAA,GAChCe,MAC3BunB,UAAgBD,WAAY,GAE5BE,YAAkBC,MAAAA,MAAAA,GAClBR,CAAAA,eAAAS,gBAAA,IAA0C3lB,MACxC2kB,SAAAA,oBAAoBC,qBAAqB,QAC3C,GAEA,CAAAgB,aAAAC,cAAA,IAAsC7lB,iBAAuB,GAE7D8lB,UAAgB,gBAAgBL,SAAS;AAAE,MAAAhjB,IAAAkgB;AAAAljB,IAAAylB,EAAAA,MAAAA,iBAAAzlB,UAAAmlB,qBAEjCniB,KAAAA,MAAA;AAAA,QACJyiB,kBAAkBN;AAAiB;AAGvC,UAAAmB,MAAYjZ,sBAAA,MAA4B6Y,iBAAiBf,iBAAiB,CAAC;AAE9DoB,WAAAA,MAAAA,qBAAqBD,GAAG;AAAA,EACpCpD,GAAAA,KAAA,CAACuC,eAAeN,iBAAiB,GAACnlB,QAAAylB,eAAAzlB,QAAAmlB,mBAAAnlB,QAAAgD,IAAAhD,QAAAkjB,OAAAlgB,KAAAhD,EAAA,EAAA,GAAAkjB,KAAAljB,EAAA,EAAA,IAPrC2B,MAAAA,UAAUqB,IAOPkgB,EAAkC;AAAC,MAAAsD,IAAAC;AAAAzmB,YAAAslB,OAE5BkB,KAAAA,MAAA;AACJlB,WAAKc,iBAAoB;AAAA,EAAC,GAC7BK,MAACnB,GAAG,GAACtlB,QAAAslB,KAAAtlB,QAAAwmB,IAAAxmB,QAAAymB,OAAAD,KAAAxmB,EAAA,EAAA,GAAAymB,KAAAzmB,EAAA,EAAA,IAFR2B,gBAAU6kB,IAEPC,EAAK;AAACC,MAAAA;AAAA1mB,YAAAqlB,oBAE4BqB,KAAAA,MAAA;AACnCN,qBAAmB,GAEff,oBACFA,iBAAgBvoB,IAAAA,MAAW,kCAAkC,CAAC;AAAA,EAAC,GAElEkD,QAAAqlB,kBAAArlB,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA;AAND,QAAA2mB,mBAAyBD;AAMH,MAAAE,IAAAC;AAAA7mB,YAAAxB,SAIlBqoB,KAAAroB,MAAIvC,IAAAwG,OAMH,GAACzC,QAAAxB,OAAAwB,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA,GAAA4mB,KANFC;AAFJ,QAAAC,eAAqBF,IAeRG,aAAOvB,MAAO,WAAWA,KAAEjpB;AAAYyqB,MAAAA;AAAAhnB,YAAAgZ,SAWhDgO,qCAACvC,SACC,EAAA,UAAAnQ,2BAAA,IAKM,OALK,EAAA,OAAA,MAAY,QAAA,KAAY,SAAA,YAAgB,MAAA,QACjD,UAAAA,2BAAAA,IAGE,QAFE,EAAA,GAAA,gGACI0E,MAAAA,MAEV,CAAA,EAAA,CAAA,GACF,GAAQhZ,QAAAgZ,OAAAhZ,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA;AAAAinB,MAAAA;AAAAjnB,IAAAilB,EAAAA,MAAAA,8BAAAjlB,EAAA+lB,EAAAA,MAAAA,WAAA/lB,EAAA8lB,EAAAA,MAAAA,YAAA9lB,UAAA2mB,oBAAA3mB,EAAA,EAAA,MAAAmmB,eAAAnmB,EAAA,EAAA,MAAAqmB,WAAArmB,EAAA,EAAA,MAAAslB,OAEP2B,MAACd,CAAAA,eAAeb,OACd4B,2BAAAA,KAAA,aAAA,EAAqB,SAAOpB,OAAAA,QAAQ,IAAIA,QAAQ,IAAS,MAAA,QACxD,UAAA;AAAA,IAAAxR,2BAAAA,IAAA,QAAA,EACE,yCAAA,WAAa+R,EAAAA,IAAM,SAAuB,qBAAA,qBAA0B,OAAA,KAAW,QAAA,KAC7E,yCAAA,SACQf,EAAAA,MAAE,KACF,OAAA,KACC,QAAA,KAEEqB,SAAe,iBAE5B,CAAA,EAAA,CAAA,EACF,CAAA;AAAA,IAEArS,2BAAAA,cAAYyR,EAAAA,IAAAA,SAAaA,IAAAA,SAAYA,YAAe,cAAQM,OAAO,IAAG,CAAA;AAAA,KAEpEpB,8BACC3Q,2BAAAA,IAAA,UAAA,EACKyR,IAAM,SACNA,IAAM,SACNA,IAAM,SACNA,IAAM,SACG,cAAA;IAIjBzR,2BAAAA,IAAC,QACKyR,EAAAA,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACS,cAAA,qBAEjB,CAAA;AAAA,EAAA,EAAA,CAAA,GACD/lB,QAAAilB,4BAAAjlB,QAAA+lB,SAAA/lB,QAAA8lB,UAAA9lB,QAAA2mB,kBAAA3mB,QAAAmmB,aAAAnmB,QAAAqmB,SAAArmB,QAAAslB,KAAAtlB,QAAAinB,OAAAA,MAAAjnB,EAAA,EAAA;AAAAmnB,MAAAA;AAAAnnB,IAAA,EAAA,MAAAmmB,eAAAnmB,EAAA2jB,EAAAA,MAAAA,YAAA3jB,EAAA8mB,EAAAA,MAAAA,gBAAA9mB,UAAAslB,OAEA6B,OAAChB,eAAgBb,CAAAA,QAAQ3B,YAEtBrP,2BAAAA,IAAA8S,WAAAA,UAAA,EAAA,UAAA9S,2BAAA,IAAC,UACC,EAAA,UAAAA,2BAAAA,IAAC,eAA0B,EAAA,aAAA,QAAawS,MAAW,cAAU,QAAA,UACnD,UACV,SAAA,CAAA,EACF,CAAA,EAAW,CAAA,GAEd9mB,QAAAmmB,aAAAnmB,QAAA2jB,UAAA3jB,QAAA8mB,cAAA9mB,QAAAslB,KAAAtlB,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA;AAAAqnB,MAAAA;AAAA,SAAArnB,UAAAylB,iBAAAzlB,EAAAwlB,EAAAA,MAAAA,MAAAxlB,EAAA,EAAA,MAAAgZ,SAAAhZ,UAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAAxB,EAAAA,MAAAA,SAAAwB,EAAA,EAAA,MAAA0lB,UAAA1lB,UAAA+mB,OAAA/mB,EAAAgnB,EAAAA,MAAAA,OAAAhnB,EAAA,EAAA,MAAAinB,OAAAjnB,UAAAmnB,OAAAnnB,EAAA,EAAA,MAAAulB,SAlEH8B,sCAAC,cACK7B,EAAAA,IACK,WAAAuB,KACD,WAAA,UACJjE,GAAAA,WACI9J,QAAI,OACLxa,OAAAA,OACK+mB,cAAAA,OACSE,uBAAY,eACpBC,eAAAA,QACRpiB,KACEiiB,OAEPyB,UAAAA;AAAAA,IAAAA;AAAAA,IASCC;AAAAA,IAoCAE;AAAAA,EASH,EAAA,CAAA,GAAennB,QAAAylB,eAAAzlB,QAAAwlB,IAAAxlB,QAAAgZ,OAAAhZ,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAxB,OAAAwB,QAAA0lB,QAAA1lB,QAAA+mB,KAAA/mB,QAAAgnB,KAAAhnB,QAAAinB,KAAAjnB,QAAAmnB,KAAAnnB,QAAAulB,OAAAvlB,QAAAqnB,OAAAA,MAAArnB,EAAA,EAAA,GAnEfqnB;AAmEe,CAElB;AACDrC,OAAOxQ,cAAc;AA5IY,SAAA/R,QAAAic,GAAA;AA4DrBA,SAAAA,MAAO,IAAA,IACPA,MAAO,IAAA,IACPA,MAAO,IAAA,IAAA;AAAA;AC7GnB,SAAS4I,kCAAkC1qB,OAA2C;AAC9E,QAAA;AAAA,IAACqnB;AAAAA,IAAQnoB;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAASA,UAAA;AACzC2lB,UAAAA,aAAaF,OAAOxmB,MAAMe,KAAI;AAEpC,WAAK2lB,aAEE;AAAA,MACLhD,cAAcxlB,IAAIwoB,WAAW3lB,OAAO,CAAC;AAAA,MACrCia,UAAU9c,IAAIwoB,WAAW3lB,IAAI;AAAA,MAC7BP,QAAQtC,IAAIwoB,WAAW3lB,IAAI;AAAA,IAAA,IALL/D;AAAAA,EAAAA,CAOzB;AACH;AAEA,SAAS8sB,wBAAwB3qB,OAAmB;AAC5C,QAAA;AAAA,IAACI;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAEhCmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAWQnjB,IAAIqB,MAAM,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM9B;AAEA,MAAMwqB,sBAA6B/E,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CACpCmF,EAAAA,mCACAC,uBAAuB,GAgBZE,gBAAgB9E,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA,GAItC;AAAA,IAAAynB;AAAAA,IAAAlpB,MAAA0B;AAAAA,EAAAA,IAAoCtD,OACpC4B,QAAauB,aADOG,OAAY3D,aAAZ2D,EACc;AAAC,MAAAG,IAAA0C;AAAA/C,WAAAxB,SAI/BuE,KAAAvE,MAAIvC,IAAAwG,OAMH,GAACzC,OAAAxB,OAAAwB,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GAAAK,KANF0C;AAFJ,QAAAxE,YAAiB8B;AAUhB2C,MAAAA;AAAAhD,IAAA0nB,CAAAA,MAAAA,SAAA1nB,SAAAzB,aAIGyE,KAACsR,2BAAAA,IAAA,OAAA,EAAS,IAAA,QAAa/V,MAAAA,WAAiB,QAAA,0BAExC,CAAA,GAAQyB,OAAA0nB,OAAA1nB,OAAAzB,WAAAyB,OAAAgD,MAAAA,KAAAhD,EAAA,CAAA;AAAAkjB,MAAAA;AAAA,SAAAljB,EAAAsD,CAAAA,MAAAA,OAAAtD,SAAAxB,SAAAwB,EAAA,CAAA,MAAAgD,MAHVkgB,KAAA5O,2BAAA,IAAC,uBAA2B9V,OAAGA,OAAW,WAAA,iBAAqB8E,KAC7DN,UAGF,IAAA,GAAsBhD,OAAAsD,KAAAtD,OAAAxB,OAAAwB,OAAAgD,IAAAhD,OAAAkjB,MAAAA,KAAAljB,EAAA,CAAA,GAJtBkjB;AAIsB,CAEzB;AACDuE,cAAcjT,cAAc;AA3BY,SAAA/R,QAAAic,GAAA;AAU5BA,SAAAA,MAAO,IAAA,IACPA,MAAO,IAAA,IACPA,MAAO,IAAA,IAAA;AAAA;ACpEnB,MAAMiJ,cAAc7I,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAYpB,SAAS8I,mBAAmB;AACnBD,SAAAA;AACT;AAEA,SAASE,+BAA+BjrB,OAA2C;AAC3E,QAAA;AAAA,IAACqnB;AAAAA,IAAQnoB;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAASA,UAAA;AACzC2lB,UAAAA,aAAaF,OAAOxmB,MAAMe,KAAI;AAEpC,WAAK2lB,aAEE;AAAA,MACL,iBAAiB;AAAA,QACf2D,YAAYnsB,IAAIwoB,WAAW4D,QAAQ;AAAA,MAAA;AAAA,IACrC,IALsBttB;AAAAA,EAAAA,CAOzB;AACH;AAEA,MAAMutB,oBAA2BvF,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAClC0F,EAAAA,gCACAD,gBAAgB,GAiBLK,cAActF,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA4iB,MAAAA,cAAAC,WAAA5iB,IAAAG;AAAAL,WAAApD,SAIpC;AAAA,IAAAiX,UAAAgP;AAAAA,IAAAqF,WAAAhoB;AAAAA,IAAA1B,MAAA6B;AAAAA,IAAA,GAAAyiB;AAAAA,EAAAA,IAKIlmB,OAAKoD,OAAApD,OAAAoD,OAAA6iB,cAAA7iB,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,OAAAwiB,eAAA7iB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA;AAHI,QAAAmoB,gBAAAjoB,OAAiB3D,aAAjB2D,IACLylB,WAAAtlB,OAAY9D,aAAZ8D,IAGRwT,WAAsCuU,MAAAA,SAAAC,QAAiBxF,YAAY,EAAC5hB,OAAAqnB,MAAsB,cAAA,GAC1FJ,YAAkBhpB,KAAA4a,IAASqO,gBAAgB,GAC3C3pB,QAAauB,aAAa4lB,QAAQ,GAElCzH,MAAYrK,SAAQ9W,QACpBwrB,eAAqBL,YAAa,GAClCM,aAAmBtK,MAAMqK,cACzBE,kBAAwBD,aAAU,IAAO3U,SAAQzD,MAAOoY,YAAYtK,GAAG,IAAIrK,UAGxE6U,KAAAV,mBAA0BjlB,KAAa,eACrCC,KAAAkb,QAAG,oCAGI,OADJ,EAAA,UAAA5J,2BAAA,IAAC,eAAqB4J,EAAAA,OAAE,KAAS1f,MAAAA,MAAI,CAAA,EACvC,CAAA,GAGD0kB,KAAAhF,QAAS,KAAIsK,aAAc,KAC1BlU,2BAAA,IAEM,SADJ,UAACA,2BAAA,IAAA,eAAA,EAAqBkU,OAAS,YAAShqB,MAAAA,MAAI,CAAA,GAC9C;AACDgoB,MAAAA;AAAAxmB,WAAAxB,SAEoBgoB,KAAAA,CAAAmC,OAAAC,eACnBtU,2BAAAA,WAA+BuU,EAAAA,UAAAA,MAAAA,aAAaF,OAAK;AAAA,IAAAnqB,MAAAA;AAAAA,EAAAA,CAAQ,EAA/CsqB,GAAAA,OAAOF,UAAU,CAAgC,GAC5D5oB,OAAAxB,OAAAwB,OAAAwmB,MAAAA,KAAAxmB,EAAA,CAAA;AAFAymB,QAAAA,KAAAgC,gBAAexsB,IAAKuqB,EAEpB;AAACE,MAAAA;AAAA,SAAA1mB,EAAA0oB,CAAAA,MAAAA,MAAA1oB,EAAAsD,CAAAA,MAAAA,OAAAtD,EAAA8iB,CAAAA,MAAAA,aAAA9iB,UAAAxB,SAAAwB,EAAA,EAAA,MAAAgD,MAAAhD,EAAA,EAAA,MAAAkjB,MAAAljB,EAAA,EAAA,MAAAymB,MAfJC,KAACQ,2BAAA,KAAA,MAA0B,WAAAnkB,IAAa,GAAK+f,WAAgBxf,KAAY9E,OAAGA,OACzEwE,UAAAA;AAAAA,IAAAA;AAAAA,IAMAkgB;AAAAA,IAMAuD;AAAAA,EAAAA,EAGH,CAAA,GAAoBzmB,OAAA0oB,IAAA1oB,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,QAAAxB,OAAAwB,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAymB,IAAAzmB,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GAhBpB0mB;AAgBoB,CAEvB;AACDuB,YAAYzT,cAAc;AC9D1B,MAAMuU,YAAmBtG,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAO1BzL,EAAAA,UACAiC,eACAhC,oBACAqF,yBACAiE,uBACAQ,sBAAsB,GASXuI,MAAMrG,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAAmd,MAAAA,QAAAM,WAAAH,aAAAzE,MAAA7a,QAAAqB,cAAAwoB,YAAAmB,aAAA5pB,WAAA6pB,SAAAC,SAAA9R,UAAAtO,eAAAC,aAAAF,cAAAD,YAAAugB,UAAAC,UAAAvG,WAAAnG,KAAAM,QAAAH,UAAA5F,QAAAhX,IAAAG,IAAA0C,IAAAC;AAAAhD,WAAApD,SAI5B;AAAA,IAAA4oB,IAAAtlB;AAAAA,IAAAkd;AAAAA,IAAAG;AAAAA,IAAAG;AAAAA,IAAA1f,SAAAqC;AAAAA,IAAAyY;AAAAA,IAAA7a;AAAAA,IAAAsB,QAAAwD;AAAAA,IAAAmmB;AAAAA,IAAAC;AAAAA,IAAA9pB;AAAAA,IAAA4pB;AAAAA,IAAA3pB;AAAAA,IAAAwoB;AAAAA,IAAAzQ;AAAAA,IAAAiS,SAAAtmB;AAAAA,IAAAomB;AAAAA,IAAAC;AAAAA,IAAAxgB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA2T;AAAAA,IAAAG;AAAAA,IAAAG;AAAAA,IAAA/F;AAAAA,IAAA,GAAA4L;AAAAA,EAAA,IA4BIlmB,OAAKoD,OAAApD,OAAAoD,OAAAod,QAAApd,OAAA0d,WAAA1d,OAAAud,aAAAvd,OAAA8Y,MAAA9Y,OAAA/B,QAAA+B,OAAAV,cAAAU,OAAA8nB,YAAA9nB,OAAAipB,aAAAjpB,OAAAX,WAAAW,QAAAkpB,SAAAlpB,QAAAmpB,SAAAnpB,QAAAqX,UAAArX,QAAA+I,eAAA/I,QAAAgJ,aAAAhJ,QAAA8I,cAAA9I,QAAA6I,YAAA7I,QAAAopB,UAAAppB,QAAAqpB,UAAArpB,QAAA8iB,WAAA9iB,QAAA2c,KAAA3c,QAAAid,QAAAjd,QAAA8c,UAAA9c,QAAAkX,QAAAlX,QAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,OAAAoa,SAAApd,EAAA,CAAA,GAAA0d,YAAA1d,EAAA,CAAA,GAAAud,cAAAvd,EAAA,CAAA,GAAA8Y,OAAA9Y,EAAA,CAAA,GAAA/B,SAAA+B,EAAA,CAAA,GAAAV,eAAAU,EAAA,CAAA,GAAA8nB,aAAA9nB,EAAA,CAAA,GAAAipB,cAAAjpB,EAAA,CAAA,GAAAX,YAAAW,EAAA,CAAA,GAAAkpB,UAAAlpB,EAAA,EAAA,GAAAmpB,UAAAnpB,EAAA,EAAA,GAAAqX,WAAArX,EAAA,EAAA,GAAA+I,gBAAA/I,EAAA,EAAA,GAAAgJ,cAAAhJ,EAAA,EAAA,GAAA8I,eAAA9I,EAAA,EAAA,GAAA6I,aAAA7I,EAAA,EAAA,GAAAopB,WAAAppB,EAAA,EAAA,GAAAqpB,WAAArpB,EAAA,EAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAA2c,MAAA3c,EAAA,EAAA,GAAAid,SAAAjd,EAAA,EAAA,GAAA8c,WAAA9c,EAAA,EAAA,GAAAkX,SAAAlX,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,GAAAgD,KAAAhD,EAAA,EAAA;AA3BH,QAAAolB,SAAAllB,OAAc3D,SAAL,QAAT2D,IAIJlC,UAAAqC,OAAiB9D,SAAP,UAAV8D,IAGAd,SAAAwD,OAAUxG,aAAVwG,IAQAumB,UAAAtmB,OAAWzG,aAAXyG,IAgBWkgB,YAAOkC,UAAW,WAAWA,SAAM7oB,QAGnCiqB,KAAAzmB,aAAaqd,MAAM,GACdqJ,KAAA1mB,aAAawd,WAAW,GAC1BmJ,KAAA3mB,aAAa2d,SAAS,GACxBkJ,KAAA7mB,aAAa/B,OAAO,GACvB6oB,KAAA9mB,aAAa+Y,IAAI,GACfiO,MAAAhnB,aAAa9B,MAAM,GACnB+oB,MAAAjnB,aAAaR,MAAM,GAClB0nB,MAAAlnB,aAAampB,OAAO,GACpB/B,MAAApnB,aAAaopB,OAAO,GAClB9B,MAAAtnB,aAAaV,SAAS,GACpBkqB,MAAAxpB,aAAakpB,WAAW,GACvBO,MAAAzpB,aAAaT,YAAY,GAC3BmqB,MAAA1pB,aAAa+nB,UAAU,GACzB4B,MAAA3pB,aAAasX,QAAQ,GACtBsS,MAAA5pB,aAAaupB,OAAO,GACnBM,MAAA7pB,aAAaqpB,QAAQ,GACrBS,MAAA9pB,aAAaspB,QAAQ,GACnBS,MAAA/pB,aAAa8I,UAAU,GACrBkhB,MAAAhqB,aAAa+I,YAAY,GACxBkhB,MAAAjqB,aAAagJ,aAAa,GAC5BkhB,MAAAlqB,aAAaiJ,WAAW,GAChCkhB,MAAAnqB,aAAa4c,GAAG,GACXwN,MAAApqB,aAAa+c,QAAQ,GACvBsN,MAAArqB,aAAakd,MAAM,GACnBoN,MAAAtqB,aAAamX,MAAM;AAACoT,MAAAA;AAAA,SAAAtqB,EAAAolB,EAAAA,MAAAA,UAAAplB,EAAApD,EAAAA,MAAAA,MAAAiX,YAAA7T,EAAAsD,EAAAA,MAAAA,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAA+mB,EAAAA,MAAAA,OAAA/mB,EAAAgnB,EAAAA,MAAAA,OAAAhnB,EAAAinB,EAAAA,MAAAA,OAAAjnB,EAAA,EAAA,MAAAmnB,OAAAnnB,EAAA,EAAA,MAAAqnB,OAAArnB,EAAA,EAAA,MAAAupB,OAAAvpB,EAAA,EAAA,MAAAwpB,OAAAxpB,EAAA,EAAA,MAAAypB,OAAAzpB,EAAA,EAAA,MAAA0pB,OAAA1pB,EAAA,EAAA,MAAA2pB,OAAA3pB,EAAA,EAAA,MAAA4pB,OAAA5pB,EAAA6pB,EAAAA,MAAAA,OAAA7pB,EAAA8pB,EAAAA,MAAAA,OAAA9pB,EAAA+pB,EAAAA,MAAAA,OAAA/pB,EAAAgqB,EAAAA,MAAAA,OAAAhqB,EAAAiqB,EAAAA,MAAAA,OAAAjqB,EAAAkqB,EAAAA,MAAAA,OAAAlqB,EAAAmqB,EAAAA,MAAAA,OAAAnqB,UAAAoqB,OAAApqB,EAAA,EAAA,MAAAqqB,OAAArqB,EAAA,EAAA,MAAAkjB,MAAAljB,EAAA,EAAA,MAAAwmB,MAAAxmB,EAAA,EAAA,MAAAymB,MAAAzmB,EAAA,EAAA,MAAA0mB,MAAA1mB,EAAA,EAAA,MAAA4mB,MAAA5mB,EAAA,EAAA,MAAA6mB,MA5B/ByD,MAAChW,2BAAA,IAAA,WAAA,EACU,WAAA4O,IACD,WAAA,UACJJ,WACK,SAAA0D,IACK,cAAAC,IACF,YAAAC,IACF,UAAAE,IACH,OAAAC,IACE,SAAAE,KACA,SAAAC,KACC,UAAAC,KACA,UAAAE,KACE,YAAAE,KACE,cAAAkC,KACC,eAAAC,KACF,aAAAC,KACF,WAAAC,KACD,UAAAC,KACC,WAAAC,KACA,WAAAC,KACE,aAAAC,KACE,eAAAC,KACC,gBAAAC,KACF,cAAAC,KACR,MAAAC,KACK,WAAAC,KACF,SAAAC,KACA,SAAAC,KACLjF,IAAK,QACJ9hB,KAEJ1G,gBAAKiX,SACR,CAAA,GAAY7T,QAAAolB,QAAAplB,EAAA,EAAA,IAAApD,MAAAiX,UAAA7T,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAA+mB,KAAA/mB,QAAAgnB,KAAAhnB,QAAAinB,KAAAjnB,QAAAmnB,KAAAnnB,QAAAqnB,KAAArnB,QAAAupB,KAAAvpB,QAAAwpB,KAAAxpB,QAAAypB,KAAAzpB,QAAA0pB,KAAA1pB,QAAA2pB,KAAA3pB,QAAA4pB,KAAA5pB,QAAA6pB,KAAA7pB,QAAA8pB,KAAA9pB,QAAA+pB,KAAA/pB,QAAAgqB,KAAAhqB,QAAAiqB,KAAAjqB,QAAAkqB,KAAAlqB,QAAAmqB,KAAAnqB,QAAAoqB,KAAApqB,QAAAqqB,KAAArqB,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,IAAAzmB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAA6mB,IAAA7mB,QAAAsqB,OAAAA,MAAAtqB,EAAA,EAAA,GAjCZsqB;AAiCY,CAEf;AACDtB,IAAIxU,cAAc;AC7HX,SAAS+V,cACd3tB,OACwB;AAClB,QAAA;AAAA,IAACylB;AAAAA,IAASC;AAAAA,MAAU1lB,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAYL,YAAAA,MAAMD,KAAK;AAE/BmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA,MAGHuD,WACFvD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECwD,UACFxD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgBvhB,KAAKglB,KAAK/kB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBA8BhBD,KAAKghB,KAAK7gB,QAAQ8sB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkB3C;ACxCA,MAAMC,aAAoBhI,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAC3BriB,oBACAH,0BACA4qB,aAAa,GAQFG,OAAO/H,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA2X,OAAAiL,cAAAC,WAAA5iB,IAAAG,IAAA0C,IAAAggB,cAAAC;AAAAhjB,WAAApD,SAI7B;AAAA,IAAAgmB,QAAA1iB;AAAAA,IAAA0X;AAAAA,IAAA/D,UAAAgP;AAAAA,IAAAI,OAAA5iB;AAAAA,IAAA7B,MAAAuE;AAAAA,IAAAggB;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EASIlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAA4X,OAAA5X,OAAA6iB,cAAA7iB,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,IAAA/C,OAAA+iB,cAAA/iB,OAAAgjB,WAAApL,QAAA5X,EAAA,CAAA,GAAA6iB,eAAA7iB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,GAAA+iB,eAAA/iB,EAAA,CAAA,GAAAgjB,SAAAhjB,EAAA,CAAA;AARP,QAAA4iB,SAAA1iB,OAAc3D,cAAd2D,IAGA+iB,QAAA5iB,OAAa9D,cAAb8D,IACA7B,QAAAuE,OAAQxG,aAARwG;AAMF,MAAA8Q,WAAegP;AAAY,MAEvBE,iBAAiB,YAAU;AAAA/f,QAAAA;AAAAhD,aAAA6T,YAClB7Q,MAACsR,2BAAA,IAAA,sBAAA,WAA+B,CAAA,GAAuBtU,OAAA6T,UAAA7T,QAAAgD,OAAAA,MAAAhD,EAAA,EAAA,GAAlE6T,WAAWA;AAAAA,EAAAA;AAQD,QAAA7Q,KAAAjD,aAAa6X,KAAK,GAGnBsL,KAAAnjB,aAAavB,KAAI;AAACgoB,MAAAA;AAAAxmB,YAAA6T,YAGzB2S,KAAuBlS,2BAAAA,IAAA,UAAT,UAAE,GAAOtU,QAAA6T,UAAA7T,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAA,SAAAzmB,EAAA,EAAA,MAAA4iB,UAAA5iB,EAAA,EAAA,MAAAijB,SAAAjjB,EAAA,EAAA,MAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAAgD,EAAAA,MAAAA,MAAAhD,EAAAkjB,EAAAA,MAAAA,MAAAljB,EAAAwmB,EAAAA,MAAAA,MAAAxmB,UAAAgjB,UAVzByD,oCAAC,YACS,EAAA,WAAA,QAAM,GACV3D,WACKF,SAAK,QACN,QAAA5f,IACAigB,QAAAA,OACH3f,KACE,OAAA4f,IACEF,iBAETwD,UAAAA,IACF,GAAaxmB,QAAA4iB,QAAA5iB,QAAAijB,OAAAjjB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAgjB,QAAAhjB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAXbymB;AAWa,CAEhB;AACDiE,KAAKlW,cAAc;AC5EZ,SAASmW,WAAW/tB,OAAmC;AACtD,QAAA;AAAA,IAACsiB;AAAAA,EAAAA,IAAStiB;AAET,SAAA;AAAA,IACL,mBAAmB,oBAAoBsiB,KAAK;AAAA,IAC5C,mBAAmB,oBAAoBA,KAAK;AAAA,IAE5C,iBAAmB;AAAA,IACnB,QAAU;AAAA,IAEV,mBAAmB;AAAA,MACjBlhB,SAAS;AAAA,MACT4sB,eAAe;AAAA,IAAA;AAAA,EAEnB;AACF;ACIA,MAAMC,cAAc7I,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAC7BnB,EAAAA,uBACA2J,UAAU,GAQCG,QAAQnI,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA4T,UAAAiP,WAAA5iB,IAAAG,IAAA0C,IAAAC;AAAAhD,MAAAA,SAAApD,OAAA;AAI9B,UAAA;AAAA,MAAAiX,UAAAqP;AAAAA,MAAA3kB,UAAAioB;AAAAA,MAAAuE,MAAAC;AAAAA,MAAA1B,SAAA7C;AAAAA,MAAAxF,QAAAyF;AAAAA,MAAA1S,MAAA4S;AAAAA,MAAA,GAAAC;AAAAA,IAAAA,IASIjqB;AATJiX,eAAAqP,KAAAhjB,KAAAsmB,KAAAnmB,KAAAomB,KAAA1jB,KAAA2jB,KAAA1jB,KAAA4jB,IAAA9D,YAAA+D,IASS7mB,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,IAAA/C,OAAAgD;AAAAA,EAAA;AAAAhD,eAAAA,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,CAAA;AAPPzB,QAAAA,YAAA2B,OAAY3D,aAAZ2D,IAGAopB,UAAAjpB,OAAW9D,aAAX8D,IACA4gB,SAAAle,OAAexG,SAAN,SAATwG,IACAiR,OAAAhR,OAAgBzG,SAAT,YAAPyG,IASWkgB,KAAAnjB,aAAakhB,MAAM,GACnBuF,KAAAzmB,aAAaupB,OAAO;AAAC7C,MAAAA;AAAAzmB,IAAA6T,CAAAA,MAAAA,YAAA7T,SAAAzB,aAG9BkoB,KAACnS,2BAAAA,IAAA,MAAW/V,EAAAA,MAAAA,WAAkB,SAAA,CAAE,GAAOyB,OAAA6T,UAAA7T,OAAAzB,WAAAyB,OAAAymB,MAAAA,KAAAzmB,EAAA,CAAA;AAAA0mB,MAAAA;AAAA,SAAA1mB,UAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAAkjB,EAAAA,MAAAA,MAAAljB,EAAA,EAAA,MAAAwmB,MAAAxmB,UAAAymB,MAAAzmB,EAAA,EAAA,MAAAgU,QARzC0S,KAACpS,2BAAAA,IAAA,aAAA,EACS,WAAA,SACJwO,GAAAA,WACG9O,OAAG,MACD,SAAAkP,IACA,SAAAsD,IACJljB,KAELmjB,UAAAA,GACF,CAAA,GAAczmB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,IAAAzmB,QAAAgU,MAAAhU,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GATd0mB;AASc,CAEjB;AACDoE,MAAMtW,cAAc;ACtCpB,MAAMyW,aAAajJ,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAC5BxJ,EAAAA,eACArB,mBAAmB,GAQR4T,OAAOvI,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA2X,OAAA4N,IAAAzN,KAAAK,SAAA0K,WAAA5iB,IAAA+X;AAAAjY,WAAApD,SAI7B;AAAA,IAAAgb;AAAAA,IAAA4N;AAAAA,IAAAjN,WAAArY;AAAAA,IAAA6X;AAAAA,IAAAK;AAAAA,IAAAH;AAAAA,IAAA,GAAA6K;AAAAA,EAAyElmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAA4X,OAAA5X,OAAAwlB,IAAAxlB,OAAA+X,KAAA/X,OAAAoY,SAAApY,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAiY,SAAAL,QAAA5X,EAAA,CAAA,GAAAwlB,KAAAxlB,EAAA,CAAA,GAAA+X,MAAA/X,EAAA,CAAA,GAAAoY,UAAApY,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAiY,OAAAjY,EAAA,CAAA;AAA5DuY,QAAAA,YAAArY,OAAiB3D,SAAL,QAAZ2D,IAMNG,KAAAN,aAAa6X,KAAK,GACd7U,KAAAhD,aAAawY,SAAS,GAC5BvV,KAAAjD,aAAagY,GAAG,GACZmL,KAAAnjB,aAAaqY,OAAO,GACvBoO,KAAAzmB,aAAakY,IAAI;AAACwO,MAAAA;AAAAzmB,SAAAA,EAAA,CAAA,MAAAwlB,MAAAxlB,EAAA,CAAA,MAAAsD,OAAAtD,EAAA,EAAA,MAAA8iB,aAAA9iB,EAAAK,EAAAA,MAAAA,MAAAL,EAAA+C,EAAAA,MAAAA,MAAA/C,EAAAgD,EAAAA,MAAAA,MAAAhD,EAAAkjB,EAAAA,MAAAA,MAAAljB,UAAAwmB,MAP3BC,KAAAnS,+BAAC,cACS,WAAA,QAAM,GACVwO,WACI,QAAAziB,IACI,YAAA0C,IACN,MAAAC,IACI,UAAAkgB,IACH,OAAAsD,IACMhB,aAAC,IACTliB,KACL,GAAAtD,OAAAwlB,IAAAxlB,OAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAVFymB;AAUE,CAEL;AACDyE,KAAK1W,cAAc;ACvCnB,MAAM2W,WAASC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAUTC,gBAAgBrJ,iBAAAA,OAAO0I,IAAI,EAACxI,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,6BAEjBgJ,QAAM,4BASVG,UAAU3I,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA;AAAAC,MAAAA;AAAAF,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAM5B7R,KAACoU,2BAAA,IAAAiX,MAAA,aAAA,CAAc,CAAA,GAAAvrB,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAAAK,MAAAA;AAAA,SAAAL,EAAApD,CAAAA,MAAAA,SAAAoD,SAAAsD,OADjBjD,KAACiU,2BAAA,IAAA,eAAA,EAAsB,WAAA,cAAc1X,OAAY0G,KAC/CpD,UACF,GAAA,CAAA,GAAgBF,OAAApD,OAAAoD,OAAAsD,KAAAtD,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAFhBK;AAEgB,CAEnB;AACDirB,QAAQ9W,cAAc;ACtCf,SAASgX,gBACd1tB,MACAkb,OACAyS,YAAY,IACD;AACJ,SAAA;AAAA;AAAA,IAGL,yBAAyB3tB,KAAK4tB;AAAAA,IAE9B,2BAA2B5tB,KAAKqb;AAAAA,IAEhC,+BAA+Brb,KAAKujB,OAAOG;AAAAA,IAC3C,6BAA6B1jB,KAAKujB,OAAOI;AAAAA,IACzC,gCAAgC3jB,KAAKujB,OAAOK;AAAAA,IAC5C,+BAA+B5jB,KAAKujB,OAAOM;AAAAA;AAAAA,IAI3C,0BAA0B3I,MAAM4J,OAAOtD;AAAAA,IAEvC,+BAA+BtG,MAAMiL,OAAO0H,KAAKnS;AAAAA,IACjD,+BAA+BR,MAAMiL,OAAO0H,KAAKrM;AAAAA,IACjD,+BAA+BtG,MAAMiL,OAAO2H,KAAKpS;AAAAA,IACjD,+BAA+BR,MAAMiL,OAAO2H,KAAKtM;AAAAA,IACjD,iCAAiCtG,MAAMiL,OAAO4H,OAAOrS;AAAAA,IACrD,iCAAiCR,MAAMiL,OAAO4H,OAAOvM;AAAAA,IACrD,kCAAkCtG,MAAMiL,OAAO6H,QAAQtS;AAAAA,IACvD,kCAAkCR,MAAMiL,OAAO6H,QAAQxM;AAAAA,IACvD,8BAA8BtG,MAAMiL,OAAO8H,IAAIvS;AAAAA,IAC/C,8BAA8BR,MAAMiL,OAAO8H,IAAIzM;AAAAA,IAC/C,iCAAiCtG,MAAMiL,OAAO+H,OAAOxS;AAAAA,IACrD,iCAAiCR,MAAMiL,OAAO+H,OAAO1M;AAAAA,IACrD,iCAAiCtG,MAAMiL,OAAOgI,OAAOzS;AAAAA,IACrD,iCAAiCR,MAAMiL,OAAOgI,OAAO3M;AAAAA,IACrD,gCAAgCtG,MAAMiL,OAAOiI,MAAM1S;AAAAA,IACnD,gCAAgCR,MAAMiL,OAAOiI,MAAM5M;AAAAA,IACnD,+BAA+BtG,MAAMiL,OAAOkI,KAAK3S;AAAAA,IACjD,+BAA+BR,MAAMiL,OAAOkI,KAAK7M;AAAAA,IAEjD,mBAAmBtG,MAAMQ;AAAAA,IACzB,mBAAmBiS,YACf,4BAA4BzS,MAAMQ,EAAE,YAAYR,MAAMiK,MAAMzJ,EAAE,aAC9Djd;AAAAA,IAEJ,uBAAuByc,MAAM/H;AAAAA,IAE7B,iCAAiC+H,MAAMoT,MAAMhN,QAAQ5F;AAAAA,IACrD,kCAAkCR,MAAMoT,MAAMhN,QAAQiN;AAAAA,IACtD,iCAAiCrT,MAAMoT,MAAMhN,QAAQE;AAAAA,IACrD,mCAAmCtG,MAAMoT,MAAMhN,QAAQkN;AAAAA,IACvD,iCAAiCtT,MAAMoT,MAAMG,SAAS/S;AAAAA,IACtD,kCAAkCR,MAAMoT,MAAMG,SAASF;AAAAA,IACvD,iCAAiCrT,MAAMoT,MAAMG,SAASjN;AAAAA,IACtD,mCAAmCtG,MAAMoT,MAAMG,SAASD;AAAAA,IACxD,iCAAiCtT,MAAMoT,MAAMI,QAAQhT;AAAAA,IACrD,kCAAkCR,MAAMoT,MAAMI,QAAQH;AAAAA,IACtD,iCAAiCrT,MAAMoT,MAAMI,QAAQlN;AAAAA,IACrD,mCAAmCtG,MAAMoT,MAAMI,QAAQF;AAAAA,IACvD,iCAAiCtT,MAAMoT,MAAMK,SAASjT;AAAAA,IACtD,kCAAkCR,MAAMoT,MAAMK,SAASJ;AAAAA,IACvD,iCAAiCrT,MAAMoT,MAAMK,SAASnN;AAAAA,IACtD,mCAAmCtG,MAAMoT,MAAMK,SAASH;AAAAA,IACxD,kCAAkCtT,MAAMoT,MAAMM,SAASlT;AAAAA,IACvD,mCAAmCR,MAAMoT,MAAMM,SAASL;AAAAA,IACxD,kCAAkCrT,MAAMoT,MAAMM,SAASpN;AAAAA,IACvD,oCAAoCtG,MAAMoT,MAAMM,SAASJ;AAAAA,IACzD,iCAAiCtT,MAAMoT,MAAMO,QAAQnT;AAAAA,IACrD,kCAAkCR,MAAMoT,MAAMO,QAAQN;AAAAA,IACtD,iCAAiCrT,MAAMoT,MAAMO,QAAQrN;AAAAA,IACrD,mCAAmCtG,MAAMoT,MAAMO,QAAQL;AAAAA,IACvD,kCAAkCtT,MAAMoT,MAAMQ,SAASpT;AAAAA,IACvD,mCAAmCR,MAAMoT,MAAMQ,SAASP;AAAAA,IACxD,kCAAkCrT,MAAMoT,MAAMQ,SAAStN;AAAAA,IACvD,oCAAoCtG,MAAMoT,MAAMQ,SAASN;AAAAA,IAEzD,wBAAwBtT,MAAMuJ,KAAK/I;AAAAA,IACnC,wBAAwBR,MAAMuJ,KAAKjD;AAAAA,IAEnC,mBAAmBtG,MAAMsG;AAAAA,IAEzB,qBAAqBtG,MAAMsT;AAAAA,IAE3B,uBAAuBtT,MAAM6T,IAAIrT;AAAAA,IACjC,2BAA2BR,MAAM6T,IAAI5b;AAAAA,IACrC,uBAAuB+H,MAAM6T,IAAIvN;AAAAA,IAEjC,wBAAwBtG,MAAM8T,KAAKxN;AAAAA,IAEnC,yBAAyBtG,MAAMiK,MAAMzJ;AAAAA,IACrC,yBAAyBR,MAAMiK,MAAM3D;AAAAA,IAErC,8BAA8BtG,MAAM+T,SAASC;AAAAA,IAC7C,4BAA4BhU,MAAM+T,SAASE;AAAAA;AAAAA,IAI3C,oBAAoBjU,MAAMiK,MAAMzJ;AAAAA,IAChC,qBAAqBR,MAAM8T,KAAKxN;AAAAA,IAChC,8BAA8BtG,MAAM/H;AAAAA,IACpC,8BAA8B+H,MAAM/H;AAAAA,EACtC;AACF;AClGO,SAASic,iBACdtwB,OACwB;AAClB,QAAA;AAAA,IAACuwB;AAAAA,MAAUvwB,OACX;AAAA,IAACnB;AAAAA,EAAAA,IAASwB,MAAYL,YAAAA,MAAMD,KAAK;AAEhCmiB,SAAAA,iBAAAA;AAAAA,MACHrjB,OAAO2xB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBbD,WAAW,UACbrO,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAIC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcL;AAEA,SAASuO,oBAAoBC,YAA4C;AACvE,SAAOA,WAAWrsB,OAAOC,OAAO,EAAEuY,KAAK,GAAG;AAC5C;AAKO,SAAS8T,kBACd3wB,OACa;AACP,QAAA;AAAA,IAAC4wB;AAAAA,MAAS5wB,OACV;AAAA,IAACwwB;AAAAA,IAAQpU,OAAOyU;AAAAA,IAAWhyB;AAAAA,EAAK,IAAIwB,kBAAYL,MAAMD,KAAK,GAC3D0kB,SAASzkB,MAAM4wB,UAAU,SACzBzC,OAAO0C,UAAUL,OAAOI,KAAK,KAAKC,UAAUL,OAAOhO,SACnDpG,QAAQ+R,KAAKnuB,MAAMsiB,KAAK,KAAK6L,KAAK3L,SAClCnO,UAAS;AAAA,IACb/L,OAAOkoB,OAAOnc,OAAO/L;AAAAA,IACrB8T,OAAO;AAAA,KAGH0U,mBAAmBnxB;AAEzB,SAAO,CACLivB,gBAAgBiC,WAAWzU,MAAMqG,OAAO,GACxC;AAAA,IACE,iBAAmB;AAAA,IACnB,OAAS;AAAA,IACT,WAAatG,qBAAqB9H,OAAM;AAAA,IACxC,uCAAuCua,gBAAgBiC,WAAWzU,MAAMwG,QAAQ;AAAA,IAChF,iCAAiC;AAAA,MAC/B,WAAa6N,iBACXtU,qBAAqB9H,OAAM,GAC3BoQ,SAASqM,mBAAmBnxB,MAC9B;AAAA,MACA,WAAW;AAAA,QACTqlB,WAAW3I,eAAe;AAAA,UACxBnb,MAAM2vB;AAAAA,UACNxc,QAAQ;AAAA,YAAC/L,OAAO;AAAA,YAAG8T,OAAOyU,UAAUjU;AAAAA,UAAE;AAAA,UACtCL,WAAWiU,OAAOjU;AAAAA,QACnB,CAAA;AAAA,MACH;AAAA,MACA,+BAA+B;AAAA,QAC7ByI,WAAWyL,iBACTtU,qBAAqB9H,OAAM,GAC3BoQ,SAASqM,mBAAmBnxB,MAC9B;AAAA,MACF;AAAA,MACA,yBAAyB;AAAA,QACvB,WAAWivB,gBAAgBiC,WAAWzU,MAAMgH,OAAO;AAAA,QACnD,YAAYwL,gBAAgBiC,WAAWzU,MAAM2U,OAAO;AAAA,QACpD,mBAAmBnC,gBAAgBiC,WAAWzU,MAAMgH,OAAO;AAAA,MAC7D;AAAA,MACA,oBAAoBwL,gBAAgBiC,WAAWzU,MAAM2U,OAAO;AAAA,IAAA;AAAA,KAGhElyB,OAAO2xB,QAAQzY,IAAI,EACnB1T,OAAOC,OAAO;AAClB;AC5EA,MAAM0sB,eAAsBR,iCAAAA,OAAAA,OAAMlL,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAGhCnB,uBAAuBkM,kBAAkBK,iBAAiB,GAEtDM,aAAa7L,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAa5B,qMAKY2L,SAASnL,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA8tB,MAAAA,eAAAC,oBAAAna,UAAA2L,UAAAyO,SAAAC,mBAAAC,iBAAAC,kBAAAC,gBAAAC,cAAAC,cAAAzL,WAAA0L,UAAAtuB,IAAAG,IAAA0C,IAAAC,IAAAkgB,IAAAsD,IAAAC,IAAAC,IAAAE,IAAArI,MAAA1e,WAAAqF;AAAAlF,WAAApD,SAI/B;AAAA,IAAAiX;AAAAA,IAAA2L;AAAAA,IAAAjhB,UAAA2B;AAAAA,IAAAosB,MAAAyB;AAAAA,IAAAU,WAAAT;AAAAA,IAAA5V,SAAA/X;AAAAA,IAAA4tB;AAAAA,IAAAlD,MAAAhoB;AAAAA,IAAAumB,SAAAtmB;AAAAA,IAAAomB,UAAAkF;AAAAA,IAAAjF,UAAAkF;AAAAA,IAAA1lB,YAAAwlB;AAAAA,IAAAtlB,eAAAmlB;AAAAA,IAAAllB,aAAAmlB;AAAAA,IAAArlB,cAAAslB;AAAAA,IAAAnN,QAAAiC;AAAAA,IAAAsL;AAAAA,IAAAxxB,OAAAwpB;AAAAA,IAAAjI;AAAAA,IAAA1e;AAAAA,IAAAmU,MAAAyS;AAAAA,IAAArrB,MAAAsrB;AAAAA,IAAAzD,OAAA2D;AAAAA,IAAA1hB;AAAAA,IAAA,GAAA4d;AAAAA,EAAAA,IA0BIlmB,OAAKoD,OAAApD,OAAAoD,OAAA+tB,eAAA/tB,OAAAguB,oBAAAhuB,OAAA6T,UAAA7T,OAAAwf,UAAAxf,OAAAiuB,SAAAjuB,OAAAkuB,mBAAAluB,OAAAmuB,iBAAAnuB,OAAAouB,kBAAApuB,OAAAquB,gBAAAruB,QAAAsuB,cAAAtuB,QAAAuuB,cAAAvuB,QAAA8iB,WAAA9iB,QAAAwuB,UAAAxuB,QAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,IAAAzmB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAAue,MAAAve,QAAAH,WAAAG,QAAAkF,UAAA6oB,gBAAA/tB,EAAA,CAAA,GAAAguB,qBAAAhuB,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAwf,WAAAxf,EAAA,CAAA,GAAAiuB,UAAAjuB,EAAA,CAAA,GAAAkuB,oBAAAluB,EAAA,CAAA,GAAAmuB,kBAAAnuB,EAAA,CAAA,GAAAouB,mBAAApuB,EAAA,CAAA,GAAAquB,iBAAAruB,EAAA,CAAA,GAAAsuB,eAAAtuB,EAAA,EAAA,GAAAuuB,eAAAvuB,EAAA,EAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAAwuB,WAAAxuB,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,GAAAgD,KAAAhD,EAAA,EAAA,GAAAkjB,KAAAljB,EAAA,EAAA,GAAAwmB,KAAAxmB,EAAA,EAAA,GAAAymB,KAAAzmB,EAAA,EAAA,GAAA0mB,KAAA1mB,EAAA,EAAA,GAAA4mB,KAAA5mB,EAAA,EAAA,GAAAue,OAAAve,EAAA,EAAA,GAAAH,YAAAG,EAAA,EAAA,GAAAkF,QAAAlF,EAAA,EAAA;AAvBPzB,QAAAA,YAAA2B,OAAY3D,aAAZ2D,IAGSwuB,cAAAruB,OAAsB9D,SAAR,WAAd8D,IAET0qB,OAAAhoB,OAAgBxG,SAAT,YAAPwG,IACS4rB,cAAA3rB,OAAezG,aAAfyG,IAOD4rB,aAAA1L,OAAc3mB,aAAd2mB,IAED2L,YAAArI,OAAajqB,aAAbiqB,IAGPxS,OAAAyS,OAAgBlqB,SAAT,YAAPkqB,IACArrB,OAAAsrB,OAAenqB,SAAR,WAAPmqB,IACAzD,QAAA2D,OAAarqB,cAAbqqB,IAIF;AAAA,IAAAwG;AAAAA,EAAAA,IAAiBtY,YAAY,GAE7BsD,UAAgBrY,aAAa2uB,WAAW,GACxCpF,UAAgBvpB,aAAa4uB,WAAW,GACxCvF,WAAiBrpB,aAAauuB,YAAY,GAC1CjF,WAAiBtpB,aAAawuB,YAAY,GAC1C1lB,aAAmB9I,aAAasuB,cAAc,GAC9CtlB,gBAAsBhJ,aAAamuB,iBAAiB,GACpDllB,cAAoBjJ,aAAaouB,eAAe,GAChDrlB,eAAqB/I,aAAaquB,gBAAgB,GAClDnN,SAAelhB,aAAa6uB,UAAU,GACtC5xB,QAAc+C,aAAa8uB,SAAS;AAAC,MAAAhI,IAAAE;AAAA/mB,IAAAspB,EAAAA,MAAAA,WAAAtpB,EAAA+I,EAAAA,MAAAA,iBAAA/I,EAAAgJ,EAAAA,MAAAA,eAAAhJ,UAAA8I,gBAAA9I,EAAA,EAAA,MAAA6I,cAAA7I,EAAA,EAAA,MAAAopB,YAAAppB,EAAA,EAAA,MAAAqpB,YAG5BtC,MAAA;AAAA,IAAAuC;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAxgB;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,EAAAA,GASN9I,QAAAspB,SAAAtpB,QAAA+I,eAAA/I,QAAAgJ,aAAAhJ,QAAA8I,cAAA9I,QAAA6I,YAAA7I,QAAAopB,UAAAppB,QAAAqpB,UAAArpB,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA,GAAA6mB,KATME;AADT,QAAA+H,WAAiBjI,IAqBEG,MAAA9lB,CAAAA,EAAQ+sB,WAAWzO,WACnByH,MAAAuH,WAAW,KAAEjyB,QAClB4qB,MAAAjmB,CAAAA,EAAQ+sB,WAAWzO;AAAS6H,MAAAA;AAAArnB,YAAAiuB,WAKrC5G,MAAAnmB,CAAQ+sB,CAAAA,WACN3Z,2BAAAA,IAAA,YAAA,EACC,UAACA,2BAAA,IAAA,SAAA,EACH,GAAA,GACDtU,QAAAiuB,SAAAjuB,QAAAqnB,OAAAA,MAAArnB,EAAA,EAAA;AAAAupB,MAAAA;AAAAvpB,IAAA+tB,EAAAA,MAAAA,iBAAA/tB,UAAAguB,sBAAAhuB,EAAA,EAAA,MAAA8uB,YAAA9uB,UAAAotB,UAAAptB,EAAAzB,EAAAA,MAAAA,aAAAyB,UAAAoY,WAAApY,EAAA,EAAA,MAAAijB,SAAAjjB,EAAAhD,EAAAA,MAAAA,SAAAgD,EAAA,EAAA,MAAAue,QAAAve,UAAAH,aAEA0pB,OAACwE,iBAAiBxP,QAAQyP,uBACxB1Z,2BAAAA,IAAA,KAAA,EAAO,IAAA,QAAM,GAAKwa,UACjB,UAAC5H,2BAAAA,KAAA,MAAA,EAAQ,IAAA,QAAgB9O,SAAcpb,KAAAA,OACpC+wB,UAAAA;AAAAA,IACC,iBAAA7G,2BAAA,KAAC,MAAW3oB,EAAAA,MAAAA,WACT+pB,UAAAA;AAAAA,MAAAA,MAAAA,eAAeyF,aAAa,KAAKA;AAAAA,MACjClI,QAAAA,mBAAmBkI,aAAa,KAAKzZ,2BAAA,IAAC,eAAa,CAAA,CAAA;AAAA,IAAA,GACtD;AAAA,IAGDiK,QACEjK,2BAAAA,IAAA,KAAA,EACC,UAACA,2BAAA,IAAA,MAAA,EACQ2O,OACApjB,OAAAA,WACDtB,MAAAA,WACO,cAAA,YACL,QAAA6uB,OAAM2B,YAEV,eACN,CAAA,GACF;AAAA,IAGDf,sBACC9G,2BAAA,KAAC,MAAW3oB,EAAAA,MAAOA,WAChB+pB,UAAAA;AAAAA,MAAAA,MAAAA,eAAe0F,kBAAkB,KAAKA;AAAAA,MACtCnI,QAAAA,mBAAmBmI,kBAAkB,KAAK1Z,2BAAA,IAAC;MAC9C,CAAA;AAAA,EAAA,GAEJ,EAAA,CACF,GACDtU,QAAA+tB,eAAA/tB,QAAAguB,oBAAAhuB,QAAA8uB,UAAA9uB,QAAAotB,QAAAptB,QAAAzB,WAAAyB,QAAAoY,SAAApY,QAAAijB,OAAAjjB,QAAAhD,OAAAgD,QAAAue,MAAAve,QAAAH,WAAAG,QAAAupB,OAAAA,MAAAvpB,EAAA,EAAA;AAAAwpB,MAAAA;AAAAxpB,IAAA8uB,EAAAA,MAAAA,YAAA9uB,UAAA6T,YAEA2V,MAAA3V,YACCS,2BAAA,IAAC,KAAO,EAAA,IAAA,QAAM,GAAKwa,UAChBjb,SACH,CAAA,GACD7T,QAAA8uB,UAAA9uB,QAAA6T,UAAA7T,QAAAwpB,OAAAA,MAAAxpB,EAAA,EAAA;AAAAypB,MAAAA;AAAA,SAAAzpB,UAAA+qB,QAAA/qB,EAAAihB,EAAAA,MAAAA,UAAAjhB,EAAAsD,EAAAA,MAAAA,OAAAtD,EAAA,EAAA,MAAA8iB,aAAA9iB,EAAA,EAAA,MAAAgnB,OAAAhnB,EAAAinB,EAAAA,MAAAA,OAAAjnB,UAAAmnB,OAAAnnB,EAAAqnB,EAAAA,MAAAA,OAAArnB,EAAA,EAAA,MAAAupB,OAAAvpB,EAAA,EAAA,MAAAwpB,OAAAxpB,EAAAgU,EAAAA,MAAAA,QAAAhU,UAAA5E,QAAA4E,EAAA,EAAA,MAAAkF,SAzDHukB,sCAAC,cACS,EAAA,WAAA,UAAQ,GACZ3G,WACGiI,OAAG,MACD9J,SAAK,QACPjN,OAAAA,MACQ,iBAAAgT,KACA,iBAAAC,KACL,UAAAE,KACL7jB,KACClI,MACE8J,QAAI,OAEXmiB,UAAAA;AAAAA,IAAAA;AAAAA,IAMAkC;AAAAA,IAkCAC;AAAAA,EAAAA,EAAAA,CAKH,GAAexpB,QAAA+qB,MAAA/qB,QAAAihB,QAAAjhB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAgnB,KAAAhnB,QAAAinB,KAAAjnB,QAAAmnB,KAAAnnB,QAAAqnB,KAAArnB,QAAAupB,KAAAvpB,QAAAwpB,KAAAxpB,QAAAgU,MAAAhU,QAAA5E,MAAA4E,QAAAkF,OAAAlF,QAAAypB,OAAAA,MAAAzpB,EAAA,EAAA,GA1DfypB;AA0De,CAElB;AACDqE,OAAOtZ,cAAc;AC/Kd,SAASwa,UACdpyB,OACgE;AAChE,SAAO,CAACqyB,cAAcryB,KAAK,GAAGsyB,eAAetyB,KAAK,CAAC;AACrD;AAEO,SAASqyB,cAAcryB,OAA4D;AAClF,QAAA;AAAA,IAACuyB;AAAAA,MAAcvyB,OACf;AAAA,IAACI;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAEhCmiB,SAAAA,iBAAAA;AAAAA,MACHqQ,cACFrQ,iBAAAA;AAAAA,yBACqB9hB,MAAM,CAAC,CAAC,MAAMA,MAAM,CAAC,CAAC;AAAA;AAAA;AAAA,KAG1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBL;AAEO,SAASkyB,eAAetyB,OAA4D;AACnF,QAAA;AAAA,IAACuyB;AAAAA,IAAYC;AAAAA,IAAY9M;AAAAA,MAAU1lB,OACnC;AAAA,IAACiZ;AAAAA,IAAMmD;AAAAA,IAAOvd;AAAAA,EAASwB,IAAAA,kBAAYL,MAAMD,KAAK,GAC9CsU,UAAS;AAAA,IAAC/L,OAAO2Q,KAAK5E,OAAO/L;AAAAA,IAAO8T,OAAO;AAAA,EAA0B;AAEpE8F,SAAAA,iBAAAA;AAAAA,oBACW9F,MAAMqW,QAAQ,SAAS,OAAO;AAAA;AAAA,MAE5C7D,gBAAgBxS,OAAOA,OAAOmW,UAAU,CAAC;AAAA;AAAA,wBAEvB7M,SAAS,+BAA+B,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAW5EkJ,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQI,UAAU2P,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQuO,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQoP,UAAUW,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQY,SAASmP,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQuO,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAM1CC,aAC5BnW,eAAe;AAAA,IAACnb,MAAMkb;AAAAA,IAAO/H,QAAAA;AAAAA,IAAQkI,WAAWtD,KAAKsD;AAAAA,EAAU,CAAA,IAC/D5c,MAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWbivB,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQI,UAAU2P,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQuO,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQoP,UAAUW,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQY,SAASmP,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpE3D,gBAAgBxS,OAAOA,MAAMsW,WAAWlQ,QAAQuO,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAM1CC,aAC5BnW,eAAe;AAAA,IAACnb,MAAMkb;AAAAA,IAAO/H,QAAAA;AAAAA,IAAQkI,WAAWtD,KAAKsD;AAAAA,EAAU,CAAA,IAC/D5c,MAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjBd,OAAOoa,MAAMlB,IAAI;AAAA;AAEvB;ACrGA,MAAM4a,aAAavN,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAK5BvM,uBAAuBoL,uBAAuBa,uBAAuBmN,SAAS,GAQnEQ,OAAO7M,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAmlB,QAAAnU,SAAA5H,eAAAE,aAAAJ,cAAAF,YAAAga,OAAA0K,SAAA7K,WAAAhP,QAAA0a,UAAAnN,QAAAnhB,IAAAG,IAAA0C,IAAAC;AAAAhD,WAAApD,SAI7B;AAAA,IAAA6yB,sBAAAvvB;AAAAA,IAAAwvB,sBAAArvB;AAAAA,IAAAmlB,IAAAJ;AAAAA,IAAAnU,QAAAA;AAAAA,IAAAhI,WAAAA;AAAAA,IAAAE,aAAAA;AAAAA,IAAAE,cAAAA;AAAAA,IAAAE,YAAAA;AAAAA,IAAA0Z;AAAAA,IAAA0K;AAAAA,IAAA1M,QAAAle;AAAAA,IAAA+Q;AAAAA,IAAA0a;AAAAA,IAAAnN;AAAAA,IAAArN,MAAAhR;AAAAA,IAAA,GAAA8f;AAAAA,EAiBIlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAolB,QAAAplB,OAAAiR,SAAAjR,OAAAqJ,eAAArJ,OAAAuJ,aAAAvJ,OAAAmJ,cAAAnJ,OAAAiJ,YAAAjJ,OAAAijB,OAAAjjB,OAAA2tB,SAAA3tB,OAAA8iB,WAAA9iB,QAAA8T,QAAA9T,QAAAwuB,UAAAxuB,QAAAqhB,QAAArhB,QAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,OAAAoiB,SAAAplB,EAAA,CAAA,GAAAiR,UAAAjR,EAAA,CAAA,GAAAqJ,gBAAArJ,EAAA,CAAA,GAAAuJ,cAAAvJ,EAAA,CAAA,GAAAmJ,eAAAnJ,EAAA,CAAA,GAAAiJ,aAAAjJ,EAAA,CAAA,GAAAijB,QAAAjjB,EAAA,CAAA,GAAA2tB,UAAA3tB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAA8T,SAAA9T,EAAA,EAAA,GAAAwuB,WAAAxuB,EAAA,EAAA,GAAAqhB,SAAArhB,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,GAAAgD,KAAAhD,EAAA,EAAA;AAhBe,QAAAyrB,YAAAvrB,OAAiB3D,cAAjB2D,IACAiZ,YAAA9Y,OAAiB9D,cAAjB8D,IAStB4gB,SAAAle,OAAUxG,aAAVwG,IAIM4sB,WAAA3sB,OAAoBzG,SAAT,YAAXyG,IAIRwiB,KAAWK,2BAAmBT,MAAM,IAAIA,SAAS,OACjDrR,YAAkBU,gBAClBT,OAAa2b,aAAa,YAAY5b,UAASC,OAAQ2b,UAMxCzM,YAAOsC,MAAO,WAAWA,KAAEjpB,QACvBiqB,KAAAzS,UAASD,QAIb2S,KAAA1mB,aAAakR,OAAM,GAChByV,KAAA3mB,aAAakJ,UAAS,GACpB2d,KAAA7mB,aAAaoJ,YAAW,GACvB0d,KAAA9mB,aAAasJ,aAAY,GAC3B0d,MAAAhnB,aAAawJ,WAAU,GAI3Byd,MAAAjnB,aAAakhB,MAAM,GACnBgG,MAAAlnB,aAAashB,MAAM,GAEZ8F,MAAAsE,YAAY,KAAElvB,QAChB8qB,MAAAsG,UAAU,KAAEpxB,QACXgtB,MAAAiF,WAAW,KAAEjyB;AAAYitB,MAAAA;AAAAxpB,IAAAwlB,EAAAA,MAAAA,MAAAxlB,UAAAyrB,aAAAzrB,EAAA,EAAA,MAAAmZ,aAAAnZ,UAAAijB,SAAAjjB,EAAAsD,EAAAA,MAAAA,OAAAtD,UAAA8iB,aAAA9iB,EAAA,EAAA,MAAA+T,UAAAD,UAAA9T,UAAAwuB,YAAAxuB,EAAA+mB,EAAAA,MAAAA,OAAA/mB,EAAA,EAAA,MAAAgnB,OAAAhnB,EAAAinB,EAAAA,MAAAA,OAAAjnB,UAAAmnB,OAAAnnB,EAAA,EAAA,MAAAqnB,OAAArnB,UAAAupB,OAAAvpB,EAAAkjB,EAAAA,MAAAA,MAAAljB,UAAAymB,MAAAzmB,EAAA,EAAA,MAAA0mB,MAAA1mB,EAAA4mB,EAAAA,MAAAA,MAAA5mB,EAAA,EAAA,MAAA6mB,MAAA7mB,UAAAgU,QAnB1CwV,MAAClV,2BAAAA,IAAA,YAAA,EACU,WAAA4O,IACI,eAAAsD,IACL,WAAA,QACGxS,aAAG,MACV8O,GAAAA,WACK,SAAA2D,IACG,YAAAC,IACE,cAAAE,IACC,eAAAC,IACF,aAAAE,KACD0E,YAAQ,WACRtS,YAAQ,WACZ8J,QAAAA,OACC,SAAA+D,KACA,SAAAC,KACFjT,OAAG,MACM,kBAAAmT,KACF,gBAAAE,KACC,iBAAAkC,KACF/D,aAAC,IACTliB,KACKkrB,SACV,CAAA,GAAAxuB,QAAAwlB,IAAAxlB,QAAAyrB,WAAAzrB,QAAAmZ,WAAAnZ,QAAAijB,OAAAjjB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,EAAA,EAAA,IAAA+T,UAAAD,QAAA9T,QAAAwuB,UAAAxuB,QAAA+mB,KAAA/mB,QAAAgnB,KAAAhnB,QAAAinB,KAAAjnB,QAAAmnB,KAAAnnB,QAAAqnB,KAAArnB,QAAAupB,KAAAvpB,QAAAkjB,IAAAljB,QAAAymB,IAAAzmB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAA6mB,IAAA7mB,QAAAgU,MAAAhU,QAAAwpB,OAAAA,MAAAxpB,EAAA,EAAA;AAAAypB,MAAAA;AAAA,SAAAzpB,EAAA8T,EAAAA,MAAAA,UAAA9T,UAAAwpB,OAAAxpB,EAAA,EAAA,MAAAgU,QAxBJyV,qCAAC,oBAA2B3V,EAAAA,QAAcE,MACxCwV,UAwBF,IAAA,CAAA,GAAqBxpB,QAAA8T,QAAA9T,QAAAwpB,KAAAxpB,QAAAgU,MAAAhU,QAAAypB,OAAAA,MAAAzpB,EAAA,EAAA,GAzBrBypB;AAyBqB,CAExB;AACD+F,KAAKhb,cAAc;AC7GZ,SAASob,qBAA6C;AACpD9Q,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAIT;AAEO,SAAS+Q,mBAAmBjzB,OAA2C;AACtE,QAAA;AAAA,IAACoc;AAAAA,IAAOmG;AAAAA,IAAO8B;AAAAA,EAAAA,IAAUhkB,MAAAA,YAAYL,MAAMD,KAAK,GAChD;AAAA,IAACwc;AAAAA,MAAagG,MAAM2Q;AAEnBhR,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gBAeOnjB,IAAIwjB,MAAM2Q,SAAStxB,IAAI,CAAC;AAAA,eACzB7C,IAAIwjB,MAAM2Q,SAAStxB,IAAI,CAAC;AAAA;AAAA,oBAEnBua,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA,uBACevJ,IAAIslB,OAAO,CAAC,CAAC,CAAC;AAAA;AAAA,0BAEXjI,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAiBpCR,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA,oBAC9BvG,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQC;AAAAA,IACnCpa,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA,eACO8T,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKzBP,eAAe;AAAA,IAACE;AAAAA,EAAAA,CAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,oBAK3BF,eAAe;AAAA,IAACE,WAAW;AAAA,MAACjU,OAAO;AAAA,MAAGmU,QAAQ;AAAA,IAAA;AAAA,EAAC,CAAE,CAAC;AAAA;AAAA;AAAA;AAAA,0BAI5CL,MAAMmG,MAAMM,QAAQJ,QAAQpO,MAAM;AAAA,oBACxC8H,qBAAqB;AAAA,IACjC7T,OAAOia,MAAMlO,OAAO/L;AAAAA,IACpB8T,OAAOA,MAAMmG,MAAMM,QAAQJ,QAAQ4D,MAAMzJ;AAAAA,EAAAA,CAC1C,CAAC;AAAA,eACOR,MAAMmG,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA,0BAGpBtG,MAAMmG,MAAMM,QAAQJ,QAAQ4D,MAAMzJ,EAAE;AAAA,eAC/CR,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA;AAAA;AAAA,oBAGzBP,eAAe;AAAA,IAC3BhI,QAAQ;AAAA,MAAC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,MAAO8T,OAAOA,MAAMmG,MAAMM,QAAQC,SAASuD,MAAMzJ;AAAAA,IAAE;AAAA,IAChFL,WAAW;AAAA,MAACjU,OAAO;AAAA,MAAGmU,QAAQ;AAAA,IAAA;AAAA,EAAC,CAChC,CAAC;AAAA;AAAA;AAAA;AAAA,0BAIkBL,MAAMmG,MAAMC,QAAQI,SAAShG,EAAE;AAAA,oBACrCT,qBAAqB;AAAA,IACjC7T,OAAOia,MAAMlO,OAAO/L;AAAAA,IACpB8T,OAAOA,MAAMmG,MAAMC,QAAQI,SAASvO;AAAAA,EAAAA,CACrC,CAAC;AAAA,eACO+H,MAAMmG,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA,0BAGpBtG,MAAMmG,MAAMC,QAAQI,SAASyD,MAAMzJ,EAAE;AAAA;AAAA;AAAA;AAAA,0BAIrCR,MAAMmG,MAAMC,QAAQM,SAASlG,EAAE;AAAA,oBACrCT,qBAAqB;AAAA,IACjC7T,OAAOia,MAAMlO,OAAO/L;AAAAA,IACpB8T,OAAOA,MAAMmG,MAAMC,QAAQM,SAASzO;AAAAA,EAAAA,CACrC,CAAC;AAAA,eACO+H,MAAMmG,MAAMC,QAAQM,SAASJ,EAAE;AAAA;AAAA;AAAA;AAAA,0BAIpBtG,MAAMmG,MAAMC,QAAQM,SAASuD,MAAMzJ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAU/D;AChHA,MAAMuW,iBAAwBtN,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACyN,kBAAkB,GAC9CI,UAAQhO,iCAAAA,OAAO7C,MAAK+C,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAAC0N,kBAAkB,GAOhCI,WAAWtN,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAkwB,SAAAC,WAAA7sB,gBAAAic,UAAA6Q,eAAA3Q,UAAAoD,WAAArnB;AAAAuE,WAAApD,SAIjC;AAAA,IAAAuzB;AAAAA,IAAAC;AAAAA,IAAA5Q;AAAAA,IAAA6Q;AAAAA,IAAA9sB;AAAAA,IAAAmc;AAAAA,IAAAjkB;AAAAA,IAAA,GAAAqnB;AAAAA,EASIlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAmwB,SAAAnwB,OAAAowB,WAAApwB,OAAAuD,gBAAAvD,OAAAwf,UAAAxf,OAAAqwB,eAAArwB,OAAA0f,UAAA1f,OAAA8iB,WAAA9iB,OAAAvE,UAAA00B,UAAAnwB,EAAA,CAAA,GAAAowB,YAAApwB,EAAA,CAAA,GAAAuD,iBAAAvD,EAAA,CAAA,GAAAwf,WAAAxf,EAAA,CAAA,GAAAqwB,gBAAArwB,EAAA,CAAA,GAAA0f,WAAA1f,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAvE,QAAAuE,EAAA,CAAA;AACTsD,QAAAA,MAAY5B,aAAA,IAAoC;AAACxB,MAAAA;AAAAF,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAI/C7R,KAAAA,MAAMoD,IAAGzB,SAAQ7B,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAFnBgS,MAAAA,oBACEke,cACAhwB,EACF;AAAC,MAAAG,IAAA0C;AAAA/C,YAAAqwB,iBAEShwB,KAAAA,MAAA;AACJiD,QAAGzB,YAELyB,IAAGzB,QAAAwuB,gBAAyBA,iBAAsB;AAAA,EAEnDttB,GAAAA,MAACstB,aAAa,GAACrwB,QAAAqwB,eAAArwB,QAAAK,IAAAL,QAAA+C,OAAA1C,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,IALlB2B,MAAAA,UAAUtB,IAKP0C,EAAe,GAElBM,kBAAkBC,KAAKC,cAAc;AAKfP,QAAAA,MAACwc,YAAYE,WAAW,KAAEnjB,QAC9B2mB,KAAA3f,iBAAiB,KAAEhH,QAGrBiqB,KAAAhH,YAAYE;AAAQ+G,MAAAA;AAAAzmB,YAAAmwB,WAAAnwB,EAAA0f,EAAAA,MAAAA,YAAA1f,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAA,EAAA,MAAAgD,MAAAhD,UAAAkjB,MAAAljB,EAAA,EAAA,MAAAwmB,MALhCC,KAACnS,2BAAAA,IAAA0b,SAAA,EACiB,kBAAAhtB,IACJ,cAAAkgB,OACRJ,WACKqN,SACC,UAAA3J,IACL,MAAA,YACK9G,UACLpc,IACL,CAAA,GAAAtD,QAAAmwB,SAAAnwB,QAAA0f,UAAA1f,QAAA8iB,WAAA9iB,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA;AAAA0mB,MAAAA;AAAA1mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACF2U,KAAAQ,2BAAA,KAAA,QACE,EAAA,UAAA;AAAA,IAAA5S,2BAAA,IAACgc;mCACAC,MACH,YAAA,CAAA,CAAA;AAAA,EAAA,EAAA,CAAA,GAAOvwB,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA;AAAA4mB,MAAAA;AAAA,SAAA5mB,EAAAowB,EAAAA,MAAAA,aAAApwB,UAAAvE,SAAAuE,EAAA,EAAA,MAAAymB,MAdTG,KAAAM,2BAAA,KAAC,kBAA0BkJ,WAAmB,WAAA,YAAkB30B,OAC9DgrB,UAAAA;AAAAA,IAAAA;AAAAA,IAUAC;AAAAA,EAAAA,GAIF,GAAiB1mB,QAAAowB,WAAApwB,QAAAvE,OAAAuE,QAAAymB,IAAAzmB,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA,GAfjB4mB;AAeiB,CAEpB;AACDqJ,SAASzb,cAAc;ACpEvB,SAASgc,4BAA4B;AAAA,EAAC7zB,OAAAA;AAAuB,GAAG;AACxD,QAAA;AAAA,IACJqc,OAAO;AAAA,MAACyX,QAAQzX;AAAAA,IAAAA;AAAAA,EAAK,IACnB/b,MAAAA,YAAYN,OAAK;AAEd,SAAA;AAAA,IACL,YAAY;AAAA,MAACqc,OAAOA,MAAM0X;AAAAA,IAAM;AAAA,IAChC,eAAe;AAAA,MAAC1X,OAAOA,MAAM2X;AAAAA,IAAQ;AAAA,IACrC,gBAAgB;AAAA,MAAC3X,OAAOA,MAAM4X;AAAAA,IAAS;AAAA,IACvC,eAAe;AAAA,MAAC5X,OAAOA,MAAM6X;AAAAA,IAAS;AAAA,IACtC,aAAa;AAAA,MAAC7X,OAAOA,MAAM8X;AAAAA,IAAO;AAAA,IAClC,aAAa;AAAA,MAAC9X,OAAOA,MAAM+X;AAAAA,IAAO;AAAA,IAClC,WAAW;AAAA,MAAC/X,OAAOA,MAAMgY;AAAAA,IAAK;AAAA,IAC9B,UAAU;AAAA,MAAChY,OAAOA,MAAMiY;AAAAA,IAAI;AAAA,IAC5B,WAAW;AAAA,MAACjY,OAAOA,MAAMkY;AAAAA,IAAK;AAAA,IAC9B,gBAAgB;AAAA,MAAClY,OAAOA,MAAMoX;AAAAA,IAAS;AAAA,IACvC,aAAa;AAAA,MAACpX,OAAOA,MAAMmY;AAAAA,IAAO;AAAA,IAClC,cAAc;AAAA,MAACnY,OAAOA,MAAMoY;AAAAA,IAAQ;AAAA,IACpC,aAAa;AAAA,MAACpY,OAAOA,MAAMqY;AAAAA,IAAO;AAAA,IAClC,aAAa;AAAA,MAACrY,OAAOA,MAAMsY;AAAAA,IAAO;AAAA,IAClC,YAAY;AAAA,MAACtY,OAAOA,MAAMuY;AAAAA,IAAM;AAAA,IAChC,cAAc;AAAA,MAACvY,OAAOA,MAAMwY;AAAAA,IAAQ;AAAA,IACpC,aAAa;AAAA,MAACxY,OAAOA,MAAMyY;AAAAA,IAAO;AAAA,IAClC,QAAQ;AAAA,MAACzY,OAAOA,MAAM0Y;AAAAA,IAAE;AAAA,IACxB,eAAe;AAAA,MAAC1Y,OAAOA,MAAM2Y;AAAAA,IAAS;AAAA,IACtC,cAAc;AAAA,MAAC3Y,OAAOA,MAAM4Y;AAAAA,IAAQ;AAAA,IACpC,aAAa;AAAA,MAAC5Y,OAAOA,MAAM6Y;AAAAA,IAAO;AAAA,IAClC,YAAY;AAAA,MAAC7Y,OAAOA,MAAM8Y;AAAAA,IAAM;AAAA,IAChC,cAAc;AAAA,MAAC9Y,OAAOA,MAAM+Y;AAAAA,IAAQ;AAAA,IACpC,YAAY;AAAA,MAAC/Y,OAAOA,MAAMgZ;AAAAA,IAAM;AAAA,IAChC,cAAc;AAAA,MAAChZ,OAAOA,MAAMiZ;AAAAA,IAAQ;AAAA,IACpC,kBAAkB;AAAA,MAACjZ,OAAOA,MAAMkZ;AAAAA,IAAW;AAAA,IAC3C,oBAAoB;AAAA,MAAClZ,OAAOA,MAAMmZ;AAAAA,IAAa;AAAA,IAC/C,iBAAiB;AAAA,MAACnZ,OAAOA,MAAMoZ;AAAAA,IAAW;AAAA,IAC1C,WAAW;AAAA,MAACpZ,OAAOA,MAAMqZ;AAAAA,IAAK;AAAA,IAC9B,cAAc;AAAA,MAACrZ,OAAOA,MAAMsZ;AAAAA,IAAQ;AAAA,IACpC,YAAY;AAAA,MAACtZ,OAAOA,MAAMuZ;AAAAA,IAAM;AAAA,IAChC,YAAY;AAAA,MAACvZ,OAAOA,MAAMzF;AAAAA,IAAM;AAAA,IAChC,SAAS;AAAA,MAACyF,OAAOA,MAAMwZ;AAAAA,IAAG;AAAA,IAC1B,UAAU;AAAA,MAACxZ,OAAOA,MAAMyZ;AAAAA,IAAI;AAAA,IAC5B,SAAS;AAAA,MAACzZ,OAAOA,MAAM0Z;AAAAA,IAAG;AAAA,IAC1B,cAAc;AAAA,MAAC1Z,OAAOA,MAAM2Z;AAAAA,IAAAA;AAAAA,EAC9B;AACF;AAEO,SAASC,gBAAwC;AAC/C9T,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAOC0R,2BAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBrC;AC1DA,MAAMqC,aAAoBC,iCAAAA,OAAAA,IAAG5Q,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAA2ByQ,EAAAA,eAAepzB,uBAAuB,GAKjFuzB,OAAOpQ,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA4T,MAAAA,UAAAmf,cAAAlQ,WAAA5iB,IAAA8iB;AAAAhjB,WAAApD,SAI7B;AAAA,IAAAiX;AAAAA,IAAAof,UAAAD;AAAAA,IAAAx0B,MAAA0B;AAAAA,IAAA8iB;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAA2ElmB,OAAKoD,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAAgzB,cAAAhzB,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAgjB,WAAAnP,WAAA7T,EAAA,CAAA,GAAAgzB,eAAAhzB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAgjB,SAAAhjB,EAAA,CAAA;AAAvCxB,QAAAA,QAAA0B,OAAQ3D,aAAR2D,IACzC+yB,WAAiB,OAAOD,gBAAiB,WAAWA,eAAYz2B;AAAY8D,MAAAA;AAAAL,WAAAizB,YACzD5yB,KAAA4yB,WAAWC,mBAAAA,QAAAC,YAAsBF,QAAe,IAAS,IAAAjzB,OAAAizB,UAAAjzB,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAA5E,QAAAozB,aAAmB/yB,IAGgC0C,KAAAhD,aAAavB,KAAI;AAACwE,MAAAA;AAAAhD,IAAA6T,CAAAA,MAAAA,YAAA7T,SAAAizB,YAAAjzB,EAAA,EAAA,MAAAozB,cAChEpwB,KAAA,EAAEiwB,YAAYG,sDAAsBvf,EAAAA,SAAS,CAAA,GAAO7T,OAAA6T,UAAA7T,OAAAizB,UAAAjzB,QAAAozB,YAAApzB,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA;AAAAkjB,MAAAA;AAAAljB,IAAA6T,EAAAA,MAAAA,YAAA7T,UAAAizB,YAAAjzB,EAAA,EAAA,MAAAozB,cACpDlQ,KAAA+P,YAAYG,6CAAeF,mBAAU,SAAA,EAAA,QAAK,IAAYD,UAAiB,OAAAnK,OAAOjV,QAAQ,EAAA,CAAK,GAAA7T,QAAA6T,UAAA7T,QAAAizB,UAAAjzB,QAAAozB,YAAApzB,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA;AAAAwmB,MAAAA;AAAA,SAAAxmB,UAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAA+C,EAAAA,MAAAA,MAAA/C,EAAA,EAAA,MAAAgD,MAAAhD,UAAAkjB,MAAAljB,EAAA,EAAA,MAAAgjB,UAF9FwD,KAACU,2BAAA,KAAA,YAAA,EAAmB,WAAA,QAAM,GAAKpE,WAAkB,OAAA/f,IAA6BigB,SAAAA,QAAa1f,KACxFN,UAAAA;AAAAA,IAAAA;AAAAA,IACAkgB;AAAAA,EAAAA,EAAAA,CACH,GAAaljB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAgjB,QAAAhjB,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA,GAHbwmB;AAGa,CAEhB;AACDuM,KAAKve,cAAc;AClCnB,MAAM4B,eAAwB;AAAA,EAC5BlR,OAAO;AAAA,EACP3F,QAAQ;AACV;AAEO,SAAS8zB,qBAAgC;AACvCjd,SAAAA;AACT;AAEO,SAASkd,8BACd12B,OACa;AACP,QAAA;AAAA,IAAC22B;AAAAA,IAAWz3B;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAElD,SAAOd,YAAYC,OAAOc,MAAMuwB,QAAS9wB,CAAS,SAAA;AAAA,IAChDm3B,UAAUn3B,QAAQ,SAAS,SAASV,IAAI43B,UAAUl3B,GAAG,CAAC;AAAA,EAAA,EACtD;AACJ;ACRA,MAAMo3B,kBAAkBzR,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CACjCkR,EAAAA,oBACAC,6BAA6B,GAQlBI,YAAY/Q,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAAulB,IAAA1C,WAAA5iB;AAAAF,WAAApD,SAIlC;AAAA,IAAA4oB;AAAAA,IAAAtgB,OAAAhF;AAAAA,IAAA,GAAA4iB;AAAAA,EAAsClmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAwlB,IAAAxlB,OAAA8iB,WAAA9iB,OAAAE,OAAAslB,KAAAxlB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAM/B,QAAAK,KAAAN,aANDG,OAAS3D,aAAT2D,EAMmB;AAAC6C,MAAAA;AAAA/C,SAAAA,EAAA,CAAA,MAAAwlB,MAAAxlB,EAAAsD,CAAAA,MAAAA,OAAAtD,EAAA8iB,CAAAA,MAAAA,aAAA9iB,SAAAK,MAH7B0C,KAACuR,2BAAAA,IAAA,iBAAA,EACS,WAAA,aACJwO,GAAAA,WACI,QAAAziB,IACKmlB,aAAC,IACTliB,IACL,CAAA,GAAAtD,OAAAwlB,IAAAxlB,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAK,IAAAL,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GANF+C;AAME,CAEL;AACD2wB,UAAUlf,cAAc;AC3BxB,MAAMmf,aAAa3R,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAA2BlI,mBAAmB,GAO/D2Z,OAAOjR,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAAulB,MAAAA,IAAAvK,UAAAN,UAAAG,UAAAjH,UAAAuH,SAAArD,KAAA4D,MAAAG,MAAAgH,WAAAvH;AAAAvb,WAAApD,SAI7B;AAAA,IAAA4oB;AAAAA,IAAA1K;AAAAA,IAAAG;AAAAA,IAAAN;AAAAA,IAAAS;AAAAA,IAAArD;AAAAA,IAAA4D;AAAAA,IAAAG;AAAAA,IAAAP;AAAAA,IAAA1H;AAAAA,IAAA,GAAAiP;AAAAA,EAAAA,IACElmB,OAAKoD,OAAApD,OAAAoD,OAAAwlB,IAAAxlB,OAAAib,UAAAjb,OAAA2a,UAAA3a,OAAA8a,UAAA9a,OAAA6T,UAAA7T,OAAAob,SAAApb,OAAA+X,KAAA/X,OAAA2b,MAAA3b,OAAA8b,MAAA9b,QAAA8iB,WAAA9iB,QAAAub,SAAAiK,KAAAxlB,EAAA,CAAA,GAAAib,WAAAjb,EAAA,CAAA,GAAA2a,WAAA3a,EAAA,CAAA,GAAA8a,WAAA9a,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAob,UAAApb,EAAA,CAAA,GAAA+X,MAAA/X,EAAA,CAAA,GAAA2b,OAAA3b,EAAA,CAAA,GAAA8b,OAAA9b,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAAub,OAAAvb,EAAA,EAAA;AAIM,QAAAE,YAAOslB,MAAO,WAAWA,KAAEjpB,QAGzB8D,KAAAN,aAAa+a,QAAQ,GACrB/X,KAAAhD,aAAakb,QAAQ,GACrBjY,KAAAjD,aAAa4a,QAAQ,GACtBuI,KAAAnjB,aAAaqb,OAAO,GACxBoL,KAAAzmB,aAAagY,GAAG,GACf0O,KAAA1mB,aAAa4b,IAAI,GACjB+K,KAAA3mB,aAAa+b,IAAI,GACjB8K,KAAA7mB,aAAawb,IAAI;AAACsL,MAAAA;AAAA,SAAA7mB,UAAAwlB,MAAAxlB,EAAA6T,EAAAA,MAAAA,YAAA7T,EAAAsD,EAAAA,MAAAA,OAAAtD,EAAA,EAAA,MAAA8iB,aAAA9iB,EAAA,EAAA,MAAAE,MAAAF,EAAAK,EAAAA,MAAAA,MAAAL,UAAA+C,MAAA/C,EAAAgD,EAAAA,MAAAA,MAAAhD,EAAA,EAAA,MAAAkjB,MAAAljB,EAAA,EAAA,MAAAwmB,MAAAxmB,EAAAymB,EAAAA,MAAAA,MAAAzmB,UAAA0mB,MAAA1mB,EAAA,EAAA,MAAA4mB,MAX3BC,oCAAC,YACU,EAAA,WAAA3mB,IACD,WAAA,QAAM,GACV4iB,WACO,WAAAziB,IACA,WAAA0C,IACA,WAAAC,IACD,UAAAkgB,IACJ,MAAAsD,IACC,OAAAC,IACA,OAAAC,IACA,OAAAE,IACMpB,iBACRliB,eAGP,GAAatD,QAAAwlB,IAAAxlB,QAAA6T,UAAA7T,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,IAAAzmB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA,GAhBb6mB;AAgBa,CAEhB;AACD+M,KAAKpf,cAAc;ACzCZ,SAASqf,iBAAiBj3B,OAA+D;AACxF,QAAA;AAAA,IAACylB;AAAAA,IAASC;AAAAA,MAAU1lB,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAYL,YAAAA,MAAMD,KAAK;AAE/BmiB,SAAAA,iBAAAA;AAAAA,MACHuD,WACFvD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECwD,UACFxD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgBvhB,KAAKglB,KAAK/kB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBA4BhBD,KAAKu2B,QAAQp2B,QAAQ8sB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa9C;AC7BA,MAAMuJ,gBAAuBtR,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAE9B0R,kBAAkBl0B,0BAA0BF,qBAAqB,GAOtDu0B,UAAUrR,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA2X,OAAAiL,cAAAC,WAAA5iB,IAAAG,IAAA0C,IAAAggB,cAAAC;AAAAhjB,WAAApD,SAIhC;AAAA,IAAAgmB,QAAA1iB;AAAAA,IAAA0X;AAAAA,IAAA/D,UAAAgP;AAAAA,IAAAI,OAAA5iB;AAAAA,IAAA7B,MAAAuE;AAAAA,IAAAggB;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EASIlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAA4X,OAAA5X,OAAA6iB,cAAA7iB,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,IAAA/C,OAAA+iB,cAAA/iB,OAAAgjB,WAAApL,QAAA5X,EAAA,CAAA,GAAA6iB,eAAA7iB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,GAAA+iB,eAAA/iB,EAAA,CAAA,GAAAgjB,SAAAhjB,EAAA,CAAA;AARP,QAAA4iB,SAAA1iB,OAAc3D,cAAd2D,IAGA+iB,QAAA5iB,OAAa9D,cAAb8D,IACA7B,QAAAuE,OAAQxG,aAARwG;AAMF,MAAA8Q,WAAegP;AAAY,MAEvBE,iBAAiB,YAAU;AAAA/f,QAAAA;AAAAhD,aAAA6T,YAClB7Q,MAACsR,2BAAA,IAAA,sBAAA,WAA+B,CAAA,GAAuBtU,OAAA6T,UAAA7T,QAAAgD,OAAAA,MAAAhD,EAAA,EAAA,GAAlE6T,WAAWA;AAAAA,EAAAA;AAQD,QAAA7Q,KAAAjD,aAAa6X,KAAK,GAEnBsL,KAAAnjB,aAAavB,KAAI;AAACgoB,MAAAA;AAAAxmB,YAAA6T,YAIzB2S,KAAuBlS,2BAAAA,IAAA,UAAT,UAAE,GAAOtU,QAAA6T,UAAA7T,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAA,SAAAzmB,EAAA,EAAA,MAAA4iB,UAAA5iB,EAAA,EAAA,MAAAijB,SAAAjjB,EAAA,EAAA,MAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAAgD,EAAAA,MAAAA,MAAAhD,EAAAkjB,EAAAA,MAAAA,MAAAljB,EAAAwmB,EAAAA,MAAAA,MAAAxmB,UAAAgjB,UAVzByD,oCAAC,eACS,EAAA,WAAA,WAAS,GACb3D,WACKF,SAAK,QACN,QAAA5f,IACAigB,QAAAA,OACD,OAAAC,IACEF,SAAK,QACT1f,KAELkjB,UAAAA,IACF,GAAgBxmB,QAAA4iB,QAAA5iB,QAAAijB,OAAAjjB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAgjB,QAAAhjB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAXhBymB;AAWgB,CAEnB;AACDuN,QAAQxf,cAAc;AC1Ef,SAASyf,kBAA6B;AACpC,SAAA;AAAA,IACL,YAAc;AAAA,IAEd,oBAAoB;AAAA,MAClBj2B,SAAS;AAAA,IACX;AAAA,IAEA,WAAW;AAAA,MACTA,SAAS;AAAA,MACT4sB,eAAe;AAAA,IAAA;AAAA,EAEnB;AACF;AAEO,SAASsJ,iBAAiBt3B,OAAkE;AAC3F,QAAA;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMqhB,QAAS/gB,CAAe,eAAA;AAChDkhB,UAAAA,SAASziB,IAAIuB,eAAe,MAAMF,MAAM,CAAC,IAAI,IAAIA,MAAME,UAAU,CAAC;AAEjE,WAAA;AAAA,MACL,QAAU,IAAIkhB,MAAM,SAASA,MAAM;AAAA,MACnC,WAAW;AAAA,QAACkL,SAAS,GAAGlL,MAAM,QAAQA,MAAM;AAAA,MAAA;AAAA,IAC9C;AAAA,EAAA,CACD;AACH;ACfA,MAAM+V,eAAenS,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAkC8R,EAAAA,iBAAiBC,gBAAgB,GAOtFE,SAASzR,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAAulB,MAAAA,IAAA3C,cAAAC,WAAA9lB;AAAAgD,WAAApD,SAI/B;AAAA,IAAA4oB;AAAAA,IAAA3R,UAAAgP;AAAAA,IAAA7lB;AAAAA,IAAA,GAAA8lB;AAAAA,EAAAA,IAA0DlmB,OAAKoD,OAAApD,OAAAoD,OAAAwlB,IAAAxlB,OAAA6iB,cAAA7iB,OAAA8iB,WAAA9iB,OAAAhD,UAAAwoB,KAAAxlB,EAAA,CAAA,GAAA6iB,eAAA7iB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAhD,QAAAgD,EAAA,CAAA;AAAA,MAAAE,IAAAG;AAAAL,WAAA6iB,gBAGvDxiB,KAAA+nB,MAAAnsB,SAAAA,IAAa4mB,cAAYpgB,OAAwC,GAACzC,OAAA6iB,cAAA7iB,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAAE,KAAlEG;AADR,QAAAwT,WAAiB3T,IASL6C,KAAAhD,aAAa/C,KAAK;AAACgG,MAAAA;AAAAhD,SAAAA,EAAA,CAAA,MAAAwlB,MAAAxlB,EAAA6T,CAAAA,MAAAA,YAAA7T,EAAA8iB,CAAAA,MAAAA,aAAA9iB,UAAA+C,MAH7BC,KAACsR,2BAAAA,IAAA,cAAA,EACS,WAAA,UACJwO,GAAAA,WACI,QAAA/f,IACKyiB,aAAC,IACT,KAEJ3R,SAAAA,CACH,GAAe7T,OAAAwlB,IAAAxlB,OAAA6T,UAAA7T,OAAA8iB,WAAA9iB,QAAA+C,IAAA/C,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA,GARfgD;AAQe,CAElB;AACDoxB,OAAO5f,cAAc;AAvBY,SAAA/R,QAAAkmB,OAAA;AAOeA,SAAAA,SAASrU,2BAAAA,IAAA,OAAA,EAAU,UAAE,MAAA,CAAA;AAAM;ACX3E,SAAS+f,WAAW;AACXvV,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAeT;AAEA,MAAMwV,YAAmBzH,iCAAAA,OAAAA,IAAG3K,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAA6BnB,EAAAA,uBAAuBqT,QAAQ,GAO3EE,MAAM5R,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA4T,MAAAA,UAAAiP,WAAA5iB,IAAAG,IAAA0C;AAAA/C,WAAApD,SAI5B;AAAA,IAAAiX;AAAAA,IAAAtV,UAAA2B;AAAAA,IAAAopB,SAAAjpB;AAAAA,IAAA4gB,QAAAle;AAAAA,IAAA,GAAA+f;AAAAA,EAAAA,IAAwElmB,OAAKoD,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,OAAA8Q,WAAA7T,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA;AAA5D,QAAAzB,YAAA2B,OAAY3D,aAAZ2D,IAAcopB,UAAAjpB,OAAW9D,aAAX8D,IAGoB2C,KAAAjD,aAHPgD,OAAUxG,aAAVwG,EAG0B;AAACmgB,MAAAA;AAAAljB,IAAA6T,CAAAA,MAAAA,YAAA7T,SAAAzB,aAEjE2kB,KAAC5O,2BAAA,IAAA,MAAA,EAAQ,IAAA,QAAa/V,MAAAA,WAAiB,QAAA,sBAEvC,GAAOyB,OAAA6T,UAAA7T,OAAAzB,WAAAyB,OAAAkjB,MAAAA,KAAAljB,EAAA,CAAA;AAAAwmB,MAAAA;AAAAxmB,IAAAspB,CAAAA,MAAAA,WAAAtpB,UAAAkjB,MAHTsD,oCAAC,KAAO,EAAA,IAAA,QAAgB8C,SACtBpG,UAAAA,GAAAA,CAGF,GAAMljB,OAAAspB,SAAAtpB,QAAAkjB,IAAAljB,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAAzmB,SAAAA,EAAA,EAAA,MAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAAgD,EAAAA,MAAAA,MAAAhD,UAAAwmB,MALRC,KAAAnS,2BAAAA,IAAC,aAAkB,WAAA,OAAUwO,GAAAA,WAAoB,SAAA9f,IAA2BM,KAC1EkjB,UAKF,GAAA,CAAA,GAAYxmB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAgD,IAAAhD,QAAAwmB,IAAAxmB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GANZymB;AAMY,CAEf;AACD8N,IAAI/f,cAAc;AChDX,MAAMggB,SAAqB;AAAA,EAChC3lB,MAAM;AAAA,EACN4lB,GAAG;AAAA,IAACC;AAAAA,IAAgBC;AAAAA,IAAWC;AAAAA,EAAAA,GAAQ;AAC/B,UAAA,CAACC,IAAI,IAAIF,UAAUG,MAAM,GAAG,GAE5BC,gBAAgBH,MAAMI,SAAS9vB,OAC/B+vB,iBAAiBL,MAAMI,SAAS/2B,QAEhCi3B,SAASR,eAAeS,OAAOnwB,KAAK,GACpCowB,SAASV,eAAeS,OAAOlwB,KAAK;AAEtC8vB,QAAAA,iBAAiB,KAAKE,kBAAkB;AAC1C,aAAO,CAAC;AAGV,UAAMI,sBAAsB,CAAC,UAAU,KAAK,EAAEtzB,SAAS8yB,IAAI,GAErD;AAAA,MAACS;AAAAA,MAASC;AAAAA,QAA+CF,sBAC3D;AAAA,MACEC,SAASE,MAAM,MAAMN,SAASH,eAAe,GAAG,CAAC;AAAA,MACjDQ,SAASV,SAAS,WAAW,IAAI;AAAA,IAAA,IAEnC;AAAA,MACES,SAAST,SAAS,SAAS,IAAI;AAAA,MAC/BU,SAASC,MAAM,MAAMJ,SAASH,gBAAgB,GAAG,CAAC;AAAA,IACpD;AAEG,WAAA;AAAA,MACLQ,MAAM;AAAA,QAACH;AAAAA,QAASC;AAAAA,MAAAA;AAAAA,IAClB;AAAA,EAAA;AAEJ;AAEA,SAASC,MAAME,KAAa7b,KAAaC,KAAa;AACpD,SAAO5a,KAAK2a,IAAI3a,KAAK4a,IAAI4b,KAAK7b,GAAG,GAAGC,GAAG;AACzC;ACxBA,SAAS6b,kBAAkBC,aAAoBC,aAAoBC,QAAgB;AACjF,QAAM5wB,QAAQ2wB,YAAY7wB,IAAI4wB,YAAY5wB,GACpC/G,SAAS43B,YAAY5wB,IAAI2wB,YAAY3wB,GAErC8iB,WAAW7oB,KAAK62B,KAAK7wB,QAAQA,QAAQjH,SAASA,MAAM;AAEnD+3B,SAAAA,sBAAsBJ,aAAaC,aAAa32B,KAAK2a,IAAI,GAAGic,SAAS/N,QAAQ,CAAC;AACvF;AAEA,SAASiO,sBAAsBJ,aAAoBC,aAAoBI,UAAyB;AACvF,SAAA;AAAA,IACLjxB,GAAG4wB,YAAY5wB,KAAK6wB,YAAY7wB,IAAI4wB,YAAY5wB,KAAKixB;AAAAA,IACrDhxB,GAAG2wB,YAAY3wB,KAAK4wB,YAAY5wB,IAAI2wB,YAAY3wB,KAAKgxB;AAAAA,EACvD;AACF;AAEO,SAASC,mBAAmBC,QAAwB;AACzD,QAAMjY,MAAMiY,OAAOp5B,QAEbq5B,OAAc,CAAE;AAEtB,WAAS3mB,IAAI,GAAGA,IAAIyO,KAAKzO,KAAK,GAAG;AAC/B,UAAM4mB,QAAQF,OAAO1mB,CAAC,GAChB6mB,YAAYH,OAAO1mB,IAAI,CAAC,GACxB8mB,YAAYJ,OAAO1mB,IAAI,CAAC;AAE1B6mB,QAAAA,aAAaD,MAAMpV,QAAQ;AACvBuV,YAAAA,aAAab,kBAAkBU,OAAOC,WAAWD,MAAMpV,MAAM,GAC7DwV,WAAWd,kBAAkBU,OAAOE,WAAWF,MAAMpV,MAAM,GAC3DyV,eAAeV,sBAAsBQ,YAAYH,OAAO,GAAG,GAC3DM,aAAaX,sBAAsBK,OAAOI,UAAU,GAAG;AAE7DL,WAAKp1B,KAAK;AAAA,QACR5F,MAAM;AAAA,QACN,GAAGo7B;AAAAA,MAAAA,CACJ,GAEDJ,KAAKp1B,KAAK;AAAA,QACR5F,MAAM;AAAA,QACNq7B;AAAAA,QACAC;AAAAA,QACAC;AAAAA,MAAAA,CACD;AAAA,IACH;AACEP,WAAKp1B,KAAK;AAAA,QACR5F,MAAM;AAAA,QACN,GAAGi7B;AAAAA,MAAAA,CACJ;AAAA,EAAA;AAIED,SAAAA;AACT;AAEO,SAASQ,gBAAgBR,MAAqB;AAC5CA,SAAAA,KACJn6B,IAAI,CAACgT,GAAGuC,QACHvC,EAAE7T,SAAS,UACN,GAAGoW,QAAQ,IAAI,MAAM,GAAG,IAAIvC,EAAEjK,CAAC,IAAIiK,EAAEhK,CAAC,KAG3CgK,EAAE7T,SAAS,UACN,KAAK6T,EAAEynB,aAAa1xB,CAAC,IAAIiK,EAAEynB,aAAazxB,CAAC,IAAIgK,EAAE0nB,WAAW3xB,CAAC,IAAIiK,EAAE0nB,WAAW1xB,CAAC,IAAIgK,EAAEwnB,SAASzxB,CAAC,IAAIiK,EAAEwnB,SAASxxB,CAAC,KAG/G,EACR,EACAwU,KAAK,GAAG;AACb;ACrFA,MAAMod,cAAqBpU,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAC5B,CAAC;AAAA,EAAC2U,IAAIC;AAAC,MAAMjY,iBAAAA;AAAAA;AAAAA,aAEFiY,CAAC;AAAA,cACAA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BASWA,IAAI,CAAC,MAAMA,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,iBAIzBA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAQHA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAQAA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAQHA,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMZ,GAGGC,aAAahV,wBAAOiV,KAAI/U,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAE7B,6CAEK+U,YAAYlV,iBAAAA,OAAOiV,KAAI/U,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAE5B,+BAGYsC,QAAQ9B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAAk3B,MAAAA,GAAArU,WAAA5iB,IAAA62B;AAAA/2B,WAAApD,SAO9B;AAAA,IAAAsI,OAAA6xB;AAAAA,IAAA94B,QAAAk5B;AAAAA,IAAAlW,QAAA/gB;AAAAA,IAAA,GAAA4iB;AAAAA,EAAAA,IAAwDlmB,OAAKoD,OAAApD,OAAAoD,OAAAm3B,GAAAn3B,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAA+2B,MAAAI,IAAAn3B,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAA+2B,IAAA/2B,EAAA,CAAA;AAAjC,QAAAihB,SAAA/gB,OAAU3D,aAAV2D,IAC5B;AAAA,IAAA2V;AAAAA,EAAA,IAAef,YAAY,GAC3BuP,cAAoBxO,KAAIwL,OAAAG,SAExB4V,SAAeL,IAAK,GAEpBZ,SAAA,CAAA;AAAA,IAAAnxB,GAAA;AAAA,IAAAC,GAAA;AAAA,EAAA,GAAA;AAAA,IAAAD,GAMOic;AAAAA,IAAMhc,GAAA;AAAA,IAAAgc;AAAAA,EAAAA,GAAA;AAAA,IAAAjc,GAKNoyB;AAAAA,IAAMnyB,GACNkyB,IAAK;AAAA,IAAAlW;AAAAA,EAAAA,GAAA;AAAA,IAAAjc,GAIL+xB,IAAI9V;AAAAA,IAAMhc,GAAA;AAAA,IAAAgc;AAAAA,EAAAA,GAAA;AAAA,IAAAjc,GAKV+xB;AAAAA,IAAC9xB,GAAA;AAAA,EAAA,CAAA,GAKRmxB,OAAaF,mBAAmBC,MAAM,GACtCc,OAAaL,gBAAgBR,IAAI,GAEjCiB,aAAmB,GAAGJ,IAAI,IAC1BK,WAAiB,GAAGL,IAAI,MAAMF,CAAC,gBAIQ12B,KAAA,OAAO02B,CAAC,IAAIA,CAAC;AAAEh0B,MAAAA;AAAA/C,IAAAqkB,CAAAA,MAAAA,eAAArkB,SAAA+2B,KAChDh0B,KAEOuR,+BAAA,QAAA,EAFE,IAAA,eACP,UAAAA,+BAAA,UAAS,GAAA,GAAM+P,GAAU,aAAU0S,OAAAA,GAAWA,QAAAA,GAAQ,MAAA,QAAO,CAAA,GAC/D,GAAO/2B,OAAAqkB,aAAArkB,OAAA+2B,GAAA/2B,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA;AAC0D,QAAAgD,KAAAqhB,cAAe;AAAAnB,MAAAA;AAAAljB,IAAAq3B,CAAAA,MAAAA,cAAAr3B,SAAAgD,MAAhFkgB,KAAC5O,2BAAA,IAAA,YAAA,EAAc+iB,eAAiB,MAAA,qBAAiC,aAAAr0B,GAAmB,CAAA,GAAAhD,OAAAq3B,YAAAr3B,OAAAgD,IAAAhD,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA;AAAAwmB,MAAAA;AAAAxmB,YAAAs3B,YACpF9Q,KAAClS,2BAAAA,IAAA,WAAA,EAAagjB,GAAAA,SAAY,CAAA,GAAAt3B,QAAAs3B,UAAAt3B,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAAzmB,IAAAK,EAAAA,MAAAA,MAAAL,EAAA,EAAA,MAAA+C,MAAA/C,EAAAkjB,EAAAA,MAAAA,MAAAljB,EAAA,EAAA,MAAAwmB,MAAAxmB,UAAA+2B,KAL5BtQ,KAMMS,2BAAAA,KAAA,OANM6P,EAAAA,OAAA,GAAWA,QAAAA,GAAY,SAAA12B,IACjC0C,UAAAA;AAAAA,IAAAA;AAAAA,IAGAmgB;AAAAA,IACAsD;AAAAA,EACF,EAAA,CAAA,GAAMxmB,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAA+2B,GAAA/2B,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA;AAAA0mB,MAAAA;AAAA1mB,SAAAA,EAAA,EAAA,MAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAAymB,EAAAA,MAAAA,MAAAzmB,UAAA+2B,KAPRrQ,oCAAC,aAAgB5D,EAAAA,GAAAA,WAAeiU,OAAQzzB,KACtCmjB,cAOF,GAAczmB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAymB,IAAAzmB,QAAA+2B,GAAA/2B,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GARd0mB;AAQc,CAEjB;AACDjC,MAAMjQ,cAAc;ACtHP+iB,MAAAA,yBAAyBlkB,0BACpC,sCACA,IACF;ACSO,SAAAmkB,wBAAA56B,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAA4T;AAAAA,IAAAjT;AAAAA,EAAAA,IAA4BhE;AAAK,MAAAsD,IAAAG;AAAAL,WAAAY,WACyBP,KAAA;AAAA,IAAA6T,SAAA;AAAA,IAAAtT;AAAAA,EAAuBZ,GAAAA,OAAAY,SAAAZ,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAAE,KAAvBG;AAA1D,QAAA9E,QAA2C2E;AAAmD6C,MAAAA;AAAA,SAAA/C,EAAA6T,CAAAA,MAAAA,YAAA7T,SAAAzE,SAEvFwH,KAAAuR,2BAAA,IAAA,uBAAA,UAAA,EAAwC/Y,OAAQsY,SAAS,CAAA,GAAkC7T,OAAA6T,UAAA7T,OAAAzE,OAAAyE,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GAA3F+C;AAA2F;AAGpGy0B,wBAAwBhjB,cAAc;ACtB/B,SAASijB,SAASl8B,OAAkD;AAClE2F,SAAAA,CAAAA,EAAQ3F,SAAS,OAAOA,SAAU,YAAY,CAACiB,MAAMC,QAAQlB,KAAK;AAC3E;ACGA,MAAMm8B,gBAA6C;AAAA,EACjDxjB,SAAS;AAAA,EACTtT,SAAS;AACX;AAKO,SAAA+2B,qBAAA;AACLp8B,QAAAA,QAAcqY,iBAAA2jB,sBAAiC;AAAC,MAK5Ch8B,UAAU,CAACk8B,SAASl8B,KAAK,KAAKA,MAAK2Y,YAAA;AAAiBpX,UAAAA,IAAAA,MACtC,2DAA2D;AAAA,SAGtEvB,SAAKm8B;AAAiB;ACnBxB,SAASE,mBAAmB;AAAA,EACjC/jB;AAAAA,EACAgkB;AAAAA,EACAC;AAKF,GAAoB;AACbD,SAAAA,YAIEC,QAAQjkB,QAAQ,IAHdA;AAIX;AAEA+jB,mBAAmBpjB,cAAc;ACpBjBujB,SAAAA,mBAAmBj8B,OAAiBoJ,OAAyB;AAC3E,QAAMpE,MAAgB,CAAE;AAExB,WAAS2O,IAAI,GAAGA,IAAI3T,MAAMiB,QAAQ0S,KAAK;AAC1B3T,UAAM2T,CAAC,IAETvK,SACPpE,IAAIE,KAAKyO,CAAC;AAIP3O,SAAAA;AACT;AAEgBk3B,SAAAA,mBAAmBl8B,OAAiBoJ,OAAyB;AAC3E,QAAMpE,MAAgB,CAAE;AAExB,WAAS2O,IAAI,GAAGA,IAAI3T,MAAMiB,QAAQ0S,KAAK;AAC1B3T,UAAM2T,CAAC,KAERvK,SACRpE,IAAIE,KAAKyO,CAAC;AAIP3O,SAAAA;AACT;ACRO,MAAMm3B,eAAetV,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAA,QAAAlwB,IAAAC,qBAAAA,EAAA,EAAA,GAIrCtD,SAAcmY,YAAY;AAAC,MAAAojB,QAAArkB,UAAAiP;AAAA9iB,WAAApD,SAC3B;AAAA,IAAAiX;AAAAA,IAAA/X,OAAAo8B;AAAAA,IAAA,GAAApV;AAAAA,EAAgDlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAk4B,QAAAl4B,OAAA6T,UAAA7T,OAAA8iB,cAAAoV,SAAAl4B,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA;AACrD,QAAAlE,QAAco8B,UAAUv7B,OAAKb,OAE7B,CAAA8E,SAAAU,UAAA,IAA8Bf,mBAAoC,GAClE43B,cAAoB1mB,eAAe7Q,OAAO;AAACV,MAAAA;AACfi4B,OAAAA,aAAWlnB,OAAA/L,SAAA7C,OAAA+1B;AAAvC,QAAAlzB,QAAchF;AAA4E,MAAAG,IAAA0C;AAAA,MAAA/C,EAAAlE,CAAAA,MAAAA,SAAAkE,SAAAkF,OAAA;AAGxFmzB,UAAAA,KAAWN,mBAAmBj8B,OAAOoJ,KAAK;AAEnCnC,SAAAs1B,GAAEt7B,SAAUs7B,GAAE5e,KAAM,GAAG,IAACld,QAAYyD,OAAAlE,OAAAkE,OAAAkF,OAAAlF,OAAA+C;AAAAA,EAAA;AAAAA,SAAA/C,EAAA,CAAA;AAApC+C,OAAAA;AAHT,QAAA+W,MAAYzZ;AAIM,MAAA2C,IAAAkgB;AAAA,MAAAljB,EAAAlE,CAAAA,MAAAA,SAAAkE,SAAAkF,OAAA;AAEhBozB,UAAAA,OAAWN,mBAAmBl8B,OAAOoJ,KAAK;AAEnCge,SAAAmV,KAAEt7B,SAAUs7B,KAAE5e,KAAM,GAAG,IAACld,QAAYyD,OAAAlE,OAAAkE,OAAAkF,OAAAlF,OAAAkjB;AAAAA,EAAA;AAAAA,SAAAljB,EAAA,CAAA;AAApCkjB,OAAAA;AAHT,QAAArJ,MAAY7W;AAIM,MAAAwjB,IAAAC;AAAAzmB,YAAAY,WAE8D4lB,KAAAA,MAAM5lB,SAAS6lB,MAC7F7lB,OAAO,GACRZ,QAAAY,SAAAZ,QAAAwmB,IAAAxmB,QAAAymB,OAAAD,KAAAxmB,EAAA,EAAA,GAAAymB,KAAAzmB,EAAA,EAAA,IAFDgS,MAAkEke,oBAAAA,cAAc1J,IAAeC,EAE9F;AAACC,MAAAA;AAAA1mB,SAAAA,EAAA,EAAA,MAAA6T,YAAA7T,EAAA8Z,EAAAA,MAAAA,OAAA9Z,EAAA6Z,EAAAA,MAAAA,OAAA7Z,UAAA8iB,aAGA4D,KAAApS,2BAAA,IAAA,OAAA,EAAa,WAAA,gBAAmBwO,GAAAA,WAAwBhJ,eAAAA,KAAkBD,eAAAA,KAAUvY,KAAS,YAC1FuS,UACH,GAAM7T,QAAA6T,UAAA7T,QAAA8Z,KAAA9Z,QAAA6Z,KAAA7Z,QAAA8iB,WAAA9iB,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GAFN0mB;AAEM,CAET;AACDuR,aAAazjB,cAAc;AC5BpB,MAAM+jB,sBAAsBC,MAAAA,UAAkD;AAAA,EACnFC,QAA4B;AAAA,IAACC,OAAO;AAAA,EAAI;AAAA,EAExC,OAAOC,yBAAyBD,OAAkC;AAEzD,WAAA;AAAA,MAACA;AAAAA,IAAK;AAAA,EAAA;AAAA,EAGfE,kBAAkBF,OAAcG,MAA6B;AAC3D,SAAKj8B,MAAMk8B,QAAQ;AAAA,MAACJ;AAAAA,MAAOG;AAAAA,IAAAA,CAAK;AAAA,EAAA;AAAA,EAGlCE,SAA0B;AAClB,UAAA;AAAA,MAACL;AAAAA,QAAS,KAAKD;AAErB,QAAIC,OAAO;AACT,YAAMt0B,UAAU,OAAOs0B,OAAOt0B,WAAY,WAAWs0B,MAAMt0B,UAAU;AAE9D,aAAAkQ,2BAAA,IAAC,QAAMlQ,UAAQ,QAAA,CAAA;AAAA,IAAA;AAGxB,WAAO,KAAKxH,MAAMiX;AAAAA,EAAAA;AAEtB;AC3CO,SAASmlB,gBAAgBC,cAAoD;AAIlF,MAAI,CAACxB,SAASwB,YAAY,KAAKA,aAAa/kB,YAAY;AAChD,UAAA,IAAIpX,MAAM,qCAAqC;AAGvD,MAAI,CAACm8B;AACG,UAAA,IAAIn8B,MAAM,uEAAuE;AAGzF,MAAIm8B,aAAa/kB,YAAY;AACpB+kB,WAAAA;AAGH,QAAA,IAAIn8B,MAAM,6BAA6B;AAC/C;ACjBao8B,MAAAA,eAAe7lB,0BAC1B,4BACA,IACF;ACEO,SAAA8lB,WAAA;AAAA,QAAAn5B,IAAAC,qBAAAA,EAAA,CAAA,GACL1E,QAAcqY,iBAAAslB,YAAuB;AAAC,MAAA,CAEjC39B;AAAKuB,UAAAA,IAAAA,MACQ,mCAAmC;AAAA,MAAA;AAAAuD,QAAAA;AAAA,WAAAL,SAAAzE,SAI5C8E,KAAA24B,gBAAgBz9B,KAAK,GAACyE,OAAAzE,OAAAyE,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAtBK;AAAAA,WAAsBH,IAAA;AACtBk5B,UAAAA,MAAAA;AAAG,UACNA,eAAGt8B,QAAiB,IAAAA,MACN,eAAes8B,IAAGh1B,OAAA,EAAU,IAAA,IAAAtH,MAE5B,eAAes8B,GAAG,EAAE;AAAA,EAAA;AAAA;AClBnC,SAASC,KAAK5E,IAA4B;AACzC6E,QAAAA,UAAUjsB,sBAAsBonB,EAAE;AAExC,SAAO,MAAM;AACXlO,yBAAqB+S,OAAO;AAAA,EAC9B;AACF;AAKO,SAASC,MAAM9E,IAA4B;AAChD,MAAI+E,eAAoC;AAElCC,QAAAA,eAAeJ,KAAK,MAAM;AAC9BG,mBAAeH,KAAK5E,EAAE;AAAA,EAAA,CACvB;AAED,SAAO,MAAM;AACP+E,oBAAcA,aAAa,GAE/BC,aAAa;AAAA,EACf;AACF;ACvBO,SAASC,uBAAuB94B,SAA+B;AACpE,SAAO+4B,oBAAoB/4B,OAAO,KAAKg5B,oBAAoBh5B,OAAO;AACpE;AAKO,SAASi5B,cAAc7uB,MAAoC;AAChE,SAAOA,gBAAgB7I,QAAQ6I,KAAK8uB,aAAa33B,KAAK43B;AACxD;AAKO,SAASJ,oBAAoB/4B,SAAgD;AAClF,SAAOi5B,cAAcj5B,OAAO,KAAKA,QAAQo5B,aAAa;AACxD;AAKO,SAASC,mBAAmBr5B,SAA+C;AAChF,SAAOi5B,cAAcj5B,OAAO,KAAKA,QAAQo5B,aAAa;AACxD;AAKO,SAASJ,oBAAoBh5B,SAAgD;AAClF,SAAOi5B,cAAcj5B,OAAO,KAAKA,QAAQo5B,aAAa;AACxD;AAKO,SAASE,oBAAoBt5B,SAAgD;AAClF,SAAOi5B,cAAcj5B,OAAO,KAAKA,QAAQo5B,aAAa;AACxD;AAKO,SAASG,sBAAsBv5B,SAAkD;AACtF,SAAOi5B,cAAcj5B,OAAO,KAAKA,QAAQo5B,aAAa;AACxD;AAKgBI,SAAAA,wBAAwBx5B,SAAsBoK,MAAqB;AACjF,SAAOpK,QAAQwB,SAAS4I,IAAI,KAAKpK,YAAYoK;AAC/C;ACtCO,SAASqvB,UAAUz5B,SAA+B;AACvD,SAAOM,EAAQiC,SAASm3B,iBAAkB15B,QAAQwB,SAASe,SAASm3B,aAAa;AACnF;AAKO,SAASC,YAAY35B,SAA+B;AAEvDA,SAAAA,QAAQ45B,WAAW,KAClB55B,QAAQ45B,aAAa,KAAK55B,QAAQ65B,aAAa,UAAU,MAAM,OAEzD,KAGLd,oBAAoB/4B,OAAO,IACtBM,CAAAA,CAAQN,QAAQ85B,QAAS95B,QAAQ+5B,QAAQ,WAG9CV,mBAAmBr5B,OAAO,IACrBA,QAAQxF,SAAS,YAAYwF,QAAQxF,SAAS,UAAU,CAACwF,QAAQ4e,WAIxEoa,oBAAoBh5B,OAAO,KAC3Bs5B,oBAAoBt5B,OAAO,KAC3Bu5B,sBAAsBv5B,OAAO,IAEtB,CAACA,QAAQ4e,WAGX;AACT;AAKO,SAASob,aAAah6B,SAA+B;AACtD,MAAA,CAAC25B,YAAY35B,OAAO;AACf,WAAA;AAKL,MAAA;AACFA,YAAQi6B,MAAM;AAAA,EAAA,QACJ;AAAA,EAAA;AAMZ,SAAO13B,SAASm3B,kBAAkB15B;AACpC;AAKO,SAASk6B,qBAAqBl6B,SAA+B;AAClE,WAAS6O,IAAI,GAAGA,IAAI7O,QAAQm6B,WAAWh+B,QAAQ0S,KAAK;AAC5CkZ,UAAAA,QAAQ/nB,QAAQm6B,WAAWtrB,CAAC;AAElC,QAAIoqB,cAAclR,KAAK,MAAMiS,aAAajS,KAAK,KAAKmS,qBAAqBnS,KAAK;AACrE,aAAA;AAAA,EAAA;AAIJ,SAAA;AACT;AAKO,SAASqS,oBAAoBp6B,SAA+B;AACjE,WAAS6O,IAAI7O,QAAQm6B,WAAWh+B,SAAS,GAAG0S,KAAK,GAAGA,KAAK;AACjDkZ,UAAAA,QAAQ/nB,QAAQm6B,WAAWtrB,CAAC;AAElC,QAAIoqB,cAAclR,KAAK,MAAMiS,aAAajS,KAAK,KAAKqS,oBAAoBrS,KAAK;AACpE,aAAA;AAAA,EAAA;AAIJ,SAAA;AACT;AChGO,SAASsS,cAAcl6B,IAAmB;AAC3C,MAAA,EAAEA,cAAcsF,SAAiB,QAAA;AAE/B5K,QAAAA,QAAQ4G,OAAO8F,iBAAiBpH,EAAE;AAExC,SACEtF,MAAMmN,UAAU7G,SAAS,MAAM,KAC/BtG,MAAMmN,UAAU7G,SAAS,QAAQ,KACjCtG,MAAMiN,UAAU3G,SAAS,MAAM,KAC/BtG,MAAMiN,UAAU3G,SAAS,QAAQ;AAErC;ACGO,SAAAm5B,cAAAt+B,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAA4T;AAAAA,IAAAsnB,SAAAj7B;AAAAA,EAAAA,IAA6CtD,OAAnBw+B,cAAAl7B,OAAe3D,aAAf2D,IAG1Bm7B,qBAA2BznB,MAAAA,WAAAslB,YAAuB;AAAC74B,MAAAA;AAAAL,WAAAq7B,sBACpCh7B,KAAAg7B,sBAAsBrC,gBAAgBqC,kBAAkB,GAACr7B,OAAAq7B,oBAAAr7B,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAxE,QAAAmL,SAAe9K,IACfi7B,sBAA4BnwB,QAAMowB,eAIlCC,SAHoBrwB,QAAMqwB,SAAY,KAGT,GAG7BL,UAAgBp7B,aAAaq7B,WAAW,GAGxCK,gBAAsBN,QAAOp+B,SAAW,GACxCZ,aAAmB+C,KAAA2a,IAASrE,iBAAiBimB,aAAa,GAC1DC,SAAevwB,SAASA,OAAMuwB,SAAUP,QAAQh/B,UAAU,IAAIg/B,QAAQh/B,UAAU;AAAC4G,MAAAA;AAAA/C,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAGrBhP,KAAA,CAAA,GAAE/C,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA;AAA9D,QAAA,CAAA27B,EAAAA,cAAA,IAA2Bp7B,eAAiCwC,EAAE,GAG9D,CAAAvE,OAAAkT,OAAA,IAAwBnR,MAAAA,UAAU,GAElCq7B,aAAmBp9B,UAAU;AAAAwE,MAAAA;AAAAhD,IAAAs7B,CAAAA,MAAAA,uBAAAt7B,SAAA27B,kBAG3B34B,KAAA64B,CAAA,eAAA;AAEEC,UAAAA,gBAAsBR,sBAAsBO,UAAU;AAElDA,WAAAA,eAAUt/B,SACZo/B,eAAclD,CAAA,UAAA;AACZ,YAAAsD,UAAgBtD,MAAMoD,UAAU,KAAM,GACtCG,YAAA;AAAA,QAAA,GAAsBvD;AAAAA,QAAK,CAAGoD,UAAU,GAAGE,UAAO;AAAA,MAAI;AAEtDrqB,aAAAA,QAAQ/M,OAAArJ,KAAY0gC,SAAS,EAACj/B,MAAO,GAE9Bi/B;AAAAA,IAAAA,CACR,IAGDtqB,QAAOjP,OAAa,GAAC,MAAA;AAIjBo5B,qBAAUt/B,SACZo/B,eAAcM,CAAA,YAAA;AACZ,cAAAC,cAAA;AAAA,UAAA,GAAsBzD;AAAAA,QAAK;AAEvBuD,eAAAA,YAAUH,UAAU,MAAO,KAAA,OACtBG,YAAUH,UAAU,GAE3BnqB,QAAQ/M,OAAArJ,KAAY0gC,WAAS,EAACj/B,MAAO,KAErCi/B,YAAUH,UAAU,IAApBG,YAAUH,UAAU,IAAC,GAGhBG;AAAAA,MACR,CAAA,IAGDtqB,QAAOyqB,QAAa,GAGtBL,gBAAa;AAAA,IAAA;AAAA,EAEhB97B,GAAAA,OAAAs7B,qBAAAt7B,OAAA27B,gBAAA37B,OAAAgD,MAAAA,KAAAhD,EAAA,CAAA;AAzCH,QAAAu7B,gBAAsBv4B;AA2CrB,MAAAkgB,IAAAsD;AAAAxmB,IAAAw7B,CAAAA,MAAAA,SAAAx7B,SAAAs7B,uBAGSpY,KAAAA,MAAMoY,sBAAsBE,KAAK,GAAGhV,KAAA,CAACgV,OAAOF,mBAAmB,GAACt7B,OAAAw7B,OAAAx7B,OAAAs7B,qBAAAt7B,OAAAkjB,IAAAljB,OAAAwmB,OAAAtD,KAAAljB,EAAA,CAAA,GAAAwmB,KAAAxmB,EAAA,CAAA,IAA1E2B,MAAAA,UAAUuhB,IAAoCsD,EAA4B;AAAC,MAAAC,IAAAC;AAAA1mB,IAAA47B,EAAAA,MAAAA,cAAA57B,EAAA,EAAA,MAAAw7B,SAAAx7B,EAAAu7B,EAAAA,MAAAA,iBAAAv7B,EAAA,EAAA,MAAAxB,SAAAwB,UAAA07B,UAGlEhV,KAAA;AAAA,IAAAxS,SAAA;AAAA,IAAA0nB;AAAAA,IAAAJ;AAAAA,IAAAD;AAAAA,IAAA/8B,MAAAA;AAAAA,IAAAk9B;AAAAA,EAON17B,GAAAA,QAAA47B,YAAA57B,QAAAw7B,OAAAx7B,QAAAu7B,eAAAv7B,QAAAxB,OAAAwB,QAAA07B,QAAA17B,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GAAAymB,KAPMC;AADT,QAAAnrB,QAAiCkrB;AAUhCG,MAAAA;AAAA,SAAA5mB,EAAA6T,EAAAA,MAAAA,YAAA7T,UAAAzE,SAEMqrB,KAAAtS,2BAAA,IAAA,aAAA,UAAA,EAA8B/Y,OAAQsY,SAAS,CAAA,GAAwB7T,QAAA6T,UAAA7T,QAAAzE,OAAAyE,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA,GAAvE4mB;AAAuE;AAxFzE,SAAAuV,SAAAC,KAAA;AAAA,SAgEkBC,MAAK;AAAA;AAhEvB,SAAA55B,QAAA45B,GAAA;AAAA,SA4CgBA,IAAK;AAAA;AA+C5BnB,cAAc1mB,cAAc;ACtF5B,MAAM8nB,cAAqB7Z,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAC,EAAA;AAAA,EAACiC,UAAU;AAAU,CAAC,GAE/CmY,gBAAgB5Z,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA4T,MAAAA,UAAA2oB,YAAAC,SAAA3Z,WAAA5iB;AAAAF,WAAApD,SAI/B;AAAA,IAAAiX;AAAAA,IAAA2oB;AAAAA,IAAAC;AAAAA,IAAAhhC,OAAAyE;AAAAA,IAAA,GAAA4iB;AAAAA,EAAAA,IAA4ElmB,OAAKoD,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAAw8B,YAAAx8B,OAAAy8B,SAAAz8B,OAAA8iB,WAAA9iB,OAAAE,OAAA2T,WAAA7T,EAAA,CAAA,GAAAw8B,aAAAx8B,EAAA,CAAA,GAAAy8B,UAAAz8B,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAA3C,QAAAvE,QAAAyE,OAAoB3D,SAAA9B,eAApByF,IACtC;AAAA,IAAAw7B;AAAAA,IAAAE;AAAAA,EAA6BzC,IAAAA,SAC7BuD,GAAAA,iBAAuBh7B,MAAAA,OAAA,IAA+B,GACtD4B,MAAY5B,MAAAA,OAAA,IAAkC,GAC9Ci7B,gBAAsBj7B,MAAAA,OAAgBk6B,UAAU;AAACv7B,MAAAA;AAAAL,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAE+B1R,KAAAA,MAAMiD,IAAGzB,SAAQ7B,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAjGgS,MAAAA,oBAAkEke,cAAc7vB,EAAiB;AAAC,MAAA0C,IAAAC;AAAAhD,IAAA47B,CAAAA,MAAAA,cAAA57B,SAAAw8B,cAKxFz5B,KAAAA,MAAA;AACe45B,kBAAa96B,YAAa+5B,cAAcA,cAG7DY,aAAU;AAAA,MAAAlC,eAAmBoC,eAAc76B;AAAAA,IAAAA,CAAA,GAG7C86B,cAAa96B,UAAW+5B;AAAAA,EACvB54B,GAAAA,KAAA,CAAC44B,YAAYY,UAAU,GAACx8B,OAAA47B,YAAA57B,OAAAw8B,YAAAx8B,OAAA+C,IAAA/C,QAAAgD,OAAAD,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,EAAA,IAR3B2B,MAAAA,UAAUoB,IAQPC,EAAwB;AAACkgB,MAAAA;AAAAljB,IAAA47B,EAAAA,MAAAA,cAAA57B,UAAAy8B,WAG1BvZ,KAAAhf,CAAA,UAAA;AAEEu4B,cAAUv4B,KAAK;AAEf,UAAA04B,cAAoBt5B,IAAGzB,SACvBK,SAAAiB,SAAAm3B;AAEI,KAACsB,cAAegB,CAAAA,gBAAgB16B,UAEhC23B,cAAc33B,MAAM,KAAKk4B,wBAAwBwC,aAAa16B,MAAM,MACtEw6B,eAAc76B,UAAWK;AAAAA,EAE5BlC,GAAAA,QAAA47B,YAAA57B,QAAAy8B,SAAAz8B,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA;AAbH,QAAA68B,cAAoB3Z;AAenBsD,MAAAA;AAAAxmB,IAAAvE,EAAAA,MAAAA,SAAAuE,UAAA07B,UAQUlV,KAAA;AAAA,IAAA,GAAI/qB;AAAAA,IAAKigC;AAAAA,EAAS17B,GAAAA,QAAAvE,OAAAuE,QAAA07B,QAAA17B,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAAzmB,SAAAA,EAAA,EAAA,MAAA6T,YAAA7T,EAAA68B,EAAAA,MAAAA,eAAA78B,EAAA8iB,EAAAA,MAAAA,aAAA9iB,UAAAwmB,MAL3BC,KAACnS,2BAAAA,IAAA,aAAA,EACKwO,GAAAA,WACI,WAAA,SACC+Z,SAAAA,aACJv5B,KACE,OAAAkjB,IAEN3S,SAAAA,CACH,GAAc7T,QAAA6T,UAAA7T,QAAA68B,aAAA78B,QAAA8iB,WAAA9iB,QAAAwmB,IAAAxmB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GARdymB;AAQc,CAEjB,GAKYqW,QAAQna,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA4T,UAAAiP,WAAA5iB;AAAAF,WAAApD,SAI9B;AAAA,IAAAiX;AAAAA,IAAAsnB,SAAAj7B;AAAAA,IAAA,GAAA4iB;AAAAA,EAA8ClmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAA8iB,WAAA9iB,OAAAE,OAAA2T,WAAA7T,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAlCm7B,QAAAA,UAAAj7B,OAAW3D,aAAX2D;AAAWG,MAAAA;AAAAL,IAAA6T,CAAAA,MAAAA,YAAA7T,SAAAsD,OAAAtD,EAAA,CAAA,MAAA8iB,aAIxBziB,oCAAC,eAAkByiB,EAAAA,GAAAA,WAAgBxf,KAChCuQ,SAAAA,CACH,GAAgB7T,OAAA6T,UAAA7T,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAA+C,MAAAA;AAAA,SAAA/C,EAAAK,CAAAA,MAAAA,MAAAL,SAAAm7B,WAHlBp4B,KAACuR,2BAAA,IAAA,eAAuB6mB,EAAAA,SACtB96B,UAGF,GAAA,CAAA,GAAgBL,OAAAK,IAAAL,OAAAm7B,SAAAn7B,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA,GAJhB+C;AAIgB,CAEnB;AACD+5B,MAAMtoB,cAAc;AC5FpB,MAAM9Y,MAAM,6BACNqhC,aAAajrB,OAAOC,IAAI,GAAGrW,GAAG,UAAU;AAE9C0X,YAAY2pB,UAAU,IAAI;AAEnB,MAAMC,sBAA0C;AAAA,EACrD9oB,SAAS;AAAA,EACT7S,iBAAiB;AAAA,EACjB,IAAIT,UAAU;AACZ,WAAI,OAAOuC,WAAa,MACf,QAGLiQ,YAAY2pB,UAAU,MAI1B3pB,YAAY2pB,UAAU,IAAI55B,SAAS85B,cAAc,KAAK,GACtD7pB,YAAY2pB,UAAU,EAAEG,aAAa,eAAe,EAAE,GAEtD/5B,SAASyL,KAAKuuB,YAAY/pB,YAAY2pB,UAAU,CAAC,IAE1C3pB,YAAY2pB,UAAU;AAAA,EAAA;AAEjC,GAEaK,gBAAgB/pB,0BAA8C3X,KAAKshC,mBAAmB;ACtB5F,SAAAK,YAAA;AACL9hC,QAAAA,QAAcqY,iBAAAwpB,aAAwB;AAAC,MAAA,CAElC7hC;AAAKuB,UAAAA,IAAAA,MACQ,oCAAoC;AAAA,MAMlD,CAAC26B,SAASl8B,KAAK,KAAKA,MAAK2Y,YAAgB;AAAApX,UAAAA,IAAAA,MAC3B,kDAAkD;AAG7DvB,SAAAA;AAAK;ACLP,SAAA+hC,OAAA1gC,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAA4T;AAAAA,IAAA0pB,iBAAA1uB;AAAAA,EAAAA,IAA0CjS,OAC1C4gC,SAAeH,UAAU,GACzBI,iBACG5uB,OAAO2uB,OAAMj8B,YAAai8B,OAAMj8B,SAAUsN,IAAI,IAAI2uB,OAAM58B,YAAa48B,OAAMj8B,UAAA6d;AAAkB,MAAA,CAE3Fqe;AAAa,WAAA;AAAAv9B,MAAAA;AAAA,SAAAF,EAAA6T,CAAAA,MAAAA,YAAA7T,SAAAy9B,iBAIXv9B,KAAAw9B,SAAAA,aAAa7pB,UAAU4pB,aAAa,GAACz9B,OAAA6T,UAAA7T,OAAAy9B,eAAAz9B,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAArCE;AAAqC;AAG9Co9B,OAAO9oB,cAAc;ACPd,SAAAmpB,eAAA/gC,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAoB;AAAAA,IAAAwS;AAAAA,IAAAjT;AAAAA,IAAAg9B,qBAAAC;AAAAA,EAAAA,IAAgFjhC,OAChF2E,WAAiBu8B,UAAUD,YAAY,GACvCE,kBAAwB/qB,2BAAAgrB,gBAAAv7B,SAAA05B,QAIxB;AAACj8B,MAAAA;AAKoB,QAAAG,KAAAgB,mBAAuB,MAC/B0B,KAAAnC,WAAWm9B;AAAe/6B,MAAAA;AAAAhD,IAAAuB,CAAAA,MAAAA,YAAAvB,SAAAK,MAAAL,EAAA,CAAA,MAAA+C,MAH9BC,KAAA;AAAA,IAAAkR,SAAA;AAAA,IAAA7S,iBAEYhB;AAAAA,IAAuBO,SAC/BmC;AAAAA,IAA0BxB;AAAAA,EAAAA,GAEpCvB,OAAAuB,UAAAvB,OAAAK,IAAAL,OAAA+C,IAAA/C,OAAAgD,MAAAA,KAAAhD,EAAA,CAAA,GALDE,KAAO8C;AADT,QAAAzH,QAAkC2E;AAOuBgjB,MAAAA;AAAA,SAAAljB,EAAA6T,CAAAA,MAAAA,YAAA7T,SAAAzE,SAElD2nB,KAAA5O,2BAAA,IAAA,cAAA,UAAA,EAA+B/Y,OAAQsY,SAAS,CAAA,GAAyB7T,OAAA6T,UAAA7T,OAAAzE,OAAAyE,OAAAkjB,MAAAA,KAAAljB,EAAA,CAAA,GAAzEkjB;AAAyE;AAlB3E,SAAAiZ,WAAA;AAAA,SAAA;AAAA;AAAA,SAAA15B,UAAA;AAAA,SAAAU,SAAAyL;AAAA;AAqBP+uB,eAAenpB,cAAc;AAE7B,MAAMwpB,iBAAiBA,MAAM,MAAM;AAAC;AAMpC,SAASF,UAAqDviC,OAA6B;AACnF0iC,QAAAA,WAAWv8B,aAAkBnG,KAAK;AAEnC2iC,SAAAA,SAASD,SAASp8B,SAAStG,KAAK,MACnC0iC,SAASp8B,UAAUtG,QAGd0iC,SAASp8B;AAClB;AAEA,SAASq8B,SAASC,MAAkBC,MAA2B;AACzD,MAAA,CAACD,QAAQ,CAACC;AACZ,WAAOD,SAASC;AAGZC,QAAAA,QAAQ15B,OAAOrJ,KAAK6iC,IAAI,GACxBG,QAAQ35B,OAAOrJ,KAAK8iC,IAAI;AAE9B,SAAIC,MAAMthC,WAAWuhC,MAAMvhC,SAClB,KAGFshC,MAAME,MAAO7iC,CAAAA,SAAQyiC,KAAKziC,IAAG,MAAM0iC,KAAK1iC,IAAG,CAAC;AACrD;AChEA,MAAM8iC,eAAexc,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAO9B,oFAKYsc,SAAS9b,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA,GAI/B;AAAA,IAAAulB;AAAAA,IAAA3R;AAAAA,EAAAA,IAAuBjX;AAAKsD,MAAAA;AAAA,SAAAF,EAAAwlB,CAAAA,MAAAA,MAAAxlB,SAAA6T,YAAA7T,EAAA,CAAA,MAAAsD,OAG1BpD,KAACoU,2BAAA,IAAA,cAAA,EAAa,eAAU,IAAMkR,IAAY,WAAA,UAAcliB,KAC9C,UACV,GAAetD,OAAAwlB,IAAAxlB,OAAA6T,UAAA7T,OAAAsD,KAAAtD,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAFfE;AAEe,CAElB;AACDu+B,OAAOjqB,cAAc;ACJrB,MAAMkqB,oBAAoB1c,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAEnC,uBAEKwc,cAAc3c,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAI7B,sCAKYyc,cAAcjc,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA4+B,YAAAC,UAAAC,YAAAjc,WAAA5iB,IAAAG,IAAA0C;AAAA/C,WAAApD,SAMpC;AAAA,IAAA4oB,IAAAtlB;AAAAA,IAAA6X,KAAA1X;AAAAA,IAAAw+B;AAAAA,IAAAG,OAAAj8B;AAAAA,IAAA+7B;AAAAA,IAAAC;AAAAA,IAAA,GAAAjc;AAAAA,EAA0FlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAA6+B,YAAA7+B,OAAA8+B,UAAA9+B,OAAA++B,YAAA/+B,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,OAAA87B,aAAA7+B,EAAA,CAAA,GAAA8+B,WAAA9+B,EAAA,CAAA,GAAA++B,aAAA/+B,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA;AAAxFwlB,QAAAA,KAAAtlB,OAAU3D,SAAL,QAAL2D,IAAY6X,MAAA1X,OAAO9D,aAAP8D;AAAO2C,MAAAA;AAAAhD,WAAA+C,MAAcC,KAAAD,OAAUxG,UAAVwG,IAAAA,IAAU/C,OAAA+C,IAAA/C,OAAAgD,MAAAA,KAAAhD,EAAA,CAAA;AAAV,QAAAg/B,QAAAh8B,IACxC;AAAA,IAAAhG;AAAAA,EAAgB8X,IAAAA,YAChBxR,GAAAA,MAAY5B,MAAAA,OAAA,IAAkC,GAC9Cu9B,aAAmBv9B,MAAAA,OAAA,IAAkC,GACrD,CAAAw9B,WAAAC,YAAA,IAAkC5+B,gBAAU,GAC5C,CAAA6+B,cAAAC,eAAA,IAAwC9+B,MAAAA,UAAU,GAClD,CAAA++B,YAAAC,aAAA,IAAoCh/B,MAAAA,WAAW;AAAC2iB,MAAAA;AAAAljB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAGgCmR,KAAAA,MAAM5f,IAAGzB,SAAQ7B,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA,GAAjGgS,MAAAA,oBAAkEke,cAAchN,EAAiB;AAACsD,MAAAA;AAAAxmB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAExFyU,KAAAA,MAAA;AAAA,QACHyY,CAAAA,WAAUp9B;AAAA;AAEf29B,UAAAA,eAAqBP,WAAUp9B,QAAA49B;AAE3BD,4BAAYE,eACdH,cAAcC,aAAYt5B,YAAa;AAAA,EAAA,GAE1ClG,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAAzmB,YAAA++B,cAAEtY,MAACsY,UAAU,GAAC/+B,QAAA++B,YAAA/+B,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GARf2B,MAAAA,UAAU6kB,IAQPC,EAAY;AAAC,MAAAC,IAAAE;AAAA5mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEN2U,KAAAA,MAAA;AAAA,QACHpjB,CAAAA,IAAGzB;AAAA;AAER,UAAA89B,WAAiBC,eAAet8B,IAAGzB,QAAAuJ,UAAmB;AAAC,QAEnDu0B,UAAQ;AAAA,UACJA,EAAAA,oBAAQD;AAAuB;AAErC,YAAAG,eAAAA,MAAA;AACEV,qBAAaQ,SAAQT,SAAU;AAAA,MAAC;AAG1B58B,eAAAA,iBAAkB,UAAUu9B,cAAY;AAAA,QAAAC,SAAA;AAAA,MAAA,CAAiB;AAEjEl8B,YAAAA,KAAA,IAAA6M,gBAAAhF,CAAA,YAAA;AACE4zB,wBAAgB5zB,QAAO,CAAA,EAAA7D,YAAA3J,MAAsB;AAAA,MAAA,CAAC;AAGhD2F,aAAAA,GAAEqJ,QAAS0yB,QAAQ,GAEnBE,gBAAc,MAAA;AAGJt9B,iBAAAA,oBAAqB,UAAUs9B,YAAY,GAEnDj8B,GAAEoM,UAAW2vB,QAAQ,GACrB/7B,GAAEkL,WAAY;AAAA,MAAC;AAAA,IAAA;AAInB,UAAAixB,iBAAAA,MAAA;AACEZ,mBAAY98B,OAAA29B,OAAe;AAAA,IAAC,GAG9BC,eAAAA,MAAA;AACEZ,sBAAeh9B,OAAA69B,WAAmB;AAAA,IAAC;AAGrC59B,WAAAA,OAAAA,iBAAwB,UAAUu9B,gBAAY;AAAA,MAAAC,SAAA;AAAA,IAAiB,CAAA,GAC/Dz9B,OAAAC,iBAAwB,UAAU29B,YAAY,GAE9CZ,gBAAeh9B,OAAA69B,WAAmB,GAElCL,kBAAc,MAAA;AAGZx9B,aAAAE,oBAA2B,UAAUs9B,cAAY,GACjDx9B,OAAAE,oBAA2B,UAAU09B,YAAY;AAAA,IAAC;AAAA,EAAA,GAEnDrZ,KAAA,CAAA,GAAE5mB,QAAA0mB,IAAA1mB,QAAA4mB,OAAAF,KAAA1mB,EAAA,EAAA,GAAA4mB,KAAA5mB,EAAA,EAAA,IAjDL2B,MAAAA,UAAU+kB,IAiDPE,EAAE;AAEL,QAAA1I,MAAY8gB,MAAKjiC,QACjBkB,SAAeqhC,aAAaphB,OAAOohB,aAAatiC,MAAM+a,GAAG,KAAK/a,MAAM+a,GAAG,IAAK,GAC5EooB,YAAkBliC,SAASiB,KAAA4a,IAAS5a,KAAAC,MAAY+/B,YAAYjhC,SAAUigB,GAAG,IAAC,GAAO,CAAA,IAAK,GACtFkiB,UAAgBniC,SAASiB,KAAAmhC,MAAYnB,YAAYE,gBAAgBnhC,SAAUigB,GAAG,QAAS;AAAA,MAAA6I,KAAAF;AAAA7mB,IAAA,EAAA,MAAAmgC,aAAAngC,EAAA,EAAA,MAAA+X,OAAA/X,EAAA,EAAA,MAAAs/B,cAAAt/B,EAAA8+B,EAAAA,MAAAA,YAAA9+B,EAAAo/B,EAAAA,MAAAA,gBAAAp/B,EAAAk/B,EAAAA,MAAAA,aAAAl/B,EAAAhD,EAAAA,MAAAA,SAAAgD,UAAAogC,WAE7EvZ,KAAAA,MAAA;AACHiY,gBACLA,SAAQ;AAAA,MAAAqB;AAAAA,MAAApoB,KAAkB/a,MAAM+a,GAAG;AAAA,MAAAunB;AAAAA,MAAAF;AAAAA,MAAAF;AAAAA,MAAAkB;AAAAA,IAAAA,CAAgD;AAAA,EAClFrZ,GAAAA,MAACoZ,CAAAA,WAAWpoB,KAAKunB,YAAYR,UAAUM,cAAcF,WAAWliC,OAAOojC,OAAO,GAACpgC,QAAAmgC,WAAAngC,QAAA+X,KAAA/X,QAAAs/B,YAAAt/B,QAAA8+B,UAAA9+B,QAAAo/B,cAAAp/B,QAAAk/B,WAAAl/B,QAAAhD,OAAAgD,QAAAogC,SAAApgC,QAAA+mB,KAAA/mB,QAAA6mB,OAAAE,MAAA/mB,EAAA,EAAA,GAAA6mB,KAAA7mB,EAAA,EAAA,IAHlF2B,MAAAA,UAAUklB,IAGPE,GAA+E;AAACC,MAAAA;AAAA,OAAA;AAAA,QAG7E,CAAC+X,cAAcC,MAAKjiC,WAAa,GAAA;AAAE,YAAA;AAAWkX,YAAAA;AAAAA,IAAAA;AAAA,QAE9CqrB,eAAiB,IAAA;AACsBrY,YAAAA,OAAA+X,MAAK,CAAA;AAAG7X,UAAAA;AAAAnnB,QAAA++B,EAAAA,MAAAA,cAAA/+B,UAAAinB,QAAnBE,OAAA4X,WAAW9X,IAAQ,GAACjnB,QAAA++B,YAAA/+B,QAAAinB,MAAAjnB,QAAAmnB,QAAAA,OAAAnnB,EAAA,EAAA;AAAAqnB,UAAAA;AAAArnB,gBAAAmnB,QAA3CE,OAAC,CAAC/S,+BAAA,aAAA,EAAqB6S,UAAAA,KAAAA,GAAH,CAAwB,CAAc,GAACnnB,QAAAmnB,MAAAnnB,QAAAqnB,QAAAA,OAAArnB,EAAA,EAAA,GAAlEgnB,MAAOK;AAA2DpT,YAAAA;AAAAA,IAAAA;AAAAgT,QAAAA;AAAA,QAAAjnB,EAAA,EAAA,MAAAmgC,aAAAngC,EAAA,EAAA,MAAA+X,OAAA/X,EAAA,EAAA,MAAA6+B,cAAA7+B,EAAAs/B,EAAAA,MAAAA,cAAAt/B,EAAAg/B,EAAAA,MAAAA,SAAAh/B,EAAA++B,EAAAA,MAAAA,cAAA/+B,EAAAhD,EAAAA,MAAAA,SAAAgD,UAAAogC,SAAA;AAAAjZ,UAAAA;AAAAnnB,gBAAAmgC,aAAAngC,EAAA+X,EAAAA,MAAAA,OAAA/X,EAAA6+B,EAAAA,MAAAA,cAAA7+B,EAAA,EAAA,MAAAs/B,cAAAt/B,UAAA++B,cAAA/+B,EAAA,EAAA,MAAAhD,SAGzBmqB,OAAAA,CAAAmZ,MAAAC,eAAA;AACzC,cAAAC,YAAkBL,YAAYI,YAC9Bv1B,OAAa+zB,WAAWuB,IAAI,GAC5B5kC,OAAYmjC,aAAaA,WAAWyB,MAAME,SAAS,IAAIA;AAGrD,eAAAlsB,2BAAA,IAAC,eAA6B,OAAA;AAAA,UAAAnP,KAAMq7B,aAAalB,aAAatiC,MAAM+a,GAAG;AAAA,QAAA,GACpE/M,kBADiBtP,IAEpB;AAAA,MAAA,GAEHsE,QAAAmgC,WAAAngC,QAAA+X,KAAA/X,QAAA6+B,YAAA7+B,QAAAs/B,YAAAt/B,QAAA++B,YAAA/+B,QAAAhD,OAAAgD,QAAAmnB,QAAAA,OAAAnnB,EAAA,EAAA,GAVMinB,OAAA+X,MAAK5uB,MAAO+vB,WAAWC,OAAO,EAACnkC,IAAKkrB,IAU1C,GAACnnB,QAAAmgC,WAAAngC,QAAA+X,KAAA/X,QAAA6+B,YAAA7+B,QAAAs/B,YAAAt/B,QAAAg/B,OAAAh/B,QAAA++B,YAAA/+B,QAAAhD,OAAAgD,QAAAogC,SAAApgC,QAAAinB;AAAAA,IAAA;AAAAA,aAAAjnB,EAAA,EAAA;AAVKinB,UAAAA;AAAAA,EAAAA;AAPT,QAAApT,WAAiBmT;AAkB8D,MAAAC,KAAAE;AAAAnnB,YAAA/B,UAE3CkpB,MAAA;AAAA,IAAAlpB;AAAAA,EAAQ+B,GAAAA,QAAA/B,QAAA+B,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA,GAAAinB,MAARE;AAApC,QAAAsZ,eAAqBxZ;AAAmCI,MAAAA;AAAArnB,IAAA6T,EAAAA,MAAAA,YAAA7T,UAAAygC,gBAIpDpZ,MAEM/S,2BAAAA,IAAA,OAFI2qB,EAAAA,iBAAmBwB,qBACnB,SACV,CAAA,GAAMzgC,QAAA6T,UAAA7T,QAAAygC,cAAAzgC,QAAAqnB,OAAAA,MAAArnB,EAAA,EAAA;AAAAupB,MAAAA;AAAA,SAAAvpB,EAAAwlB,EAAAA,MAAAA,MAAAxlB,UAAA8iB,aAAA9iB,EAAA,EAAA,MAAAqnB,OAHRkC,MAACjV,2BAAA,IAAA,mBAAA,EAAsBkR,IAAY,WAAA,eAAa,GAAK1C,WAAgBxf,KACnE+jB,UAGF,IAAA,CAAA,GAAoBrnB,QAAAwlB,IAAAxlB,QAAA8iB,WAAA9iB,QAAAqnB,KAAArnB,QAAAupB,OAAAA,MAAAvpB,EAAA,EAAA,GAJpBupB;AAIoB,CAEvB;AACDqV,YAAYpqB,cAAc;AAE1B,SAASorB,eAAex0B,YAA+B;AACrD,MAAIs1B,YAAYt1B;AAETs1B,SAAAA,aAAa,CAACzF,cAAcyF,SAAS;AAC1CA,gBAAYA,UAAUt1B;AAGjBs1B,SAAAA;AACT;AC1KO,MAAMC,2BAA2B,GAC3BC,0BAA0B,GAC1BC,8BAA8B,IAC9BC,+BAA+B,GAC/BC,+BAA+B,GAC/BC,0BAA0C,CAAC,GAAG,GAAG,GAAG,CAAC,GACrDC,gCAA8D;AAAA,EACzE,KAAO,CAAC,UAAU,QAAQ,OAAO;AAAA,EACjC,aAAa,CAAC,gBAAgB,cAAc,aAAa;AAAA,EACzD,WAAW,CAAC,cAAc,YAAY,WAAW;AAAA,EACjD,QAAU,CAAC,OAAO,QAAQ,OAAO;AAAA,EACjC,gBAAgB,CAAC,aAAa,cAAc,aAAa;AAAA,EACzD,cAAc,CAAC,WAAW,YAAY,WAAW;AAAA,EACjD,MAAQ,CAAC,SAAS,OAAO,QAAQ;AAAA,EACjC,cAAc,CAAC,eAAe,aAAa,cAAc;AAAA,EACzD,YAAY,CAAC,aAAa,WAAW,YAAY;AAAA,EACjD,OAAS,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACjC,eAAe,CAAC,cAAc,aAAa,cAAc;AAAA,EACzD,aAAa,CAAC,YAAY,WAAW,YAAY;AACnD;ACXO,SAASziC,KAAKqR,SAON;AACP,QAAA;AAAA,IAACqxB;AAAAA,IAAOC;AAAAA,IAAS7X,UAAU;AAAA,EAAA,IAAKzZ;AAE/B,SAAA;AAAA,IACLhB,MAAM;AAAA,IACN,MAAM4lB,GAAG2M,MAAM;AACP,YAAA;AAAA,QAAC7/B;AAAAA,QAAUozB;AAAAA,QAAW0M;AAAAA,QAAUzM;AAAAA,UAASwM,MACzC;AAAA,QAACpM;AAAAA,QAAUsM;AAAAA,MAAa1M,IAAAA,OAExBvd,WAAW,MAAMkqB,WAAAA,eAAeH,MAAM;AAAA,QAC1CI,aAAa;AAAA,QACbC,UAAU5xB,QAAQxO,mBAAmB9E;AAAAA,QACrCmlC,gBAAgB;AAAA,QAChBpY;AAAAA,QACAqY,cAAc;AAAA,MAAA,CACf;AAEGnO,UAAAA,WAAWvoB,OACX22B,YAAY32B;AAEhB,YAAM42B,YAAY7M,SAAS9vB,OACrB48B,YAAY9M,SAAS/2B;AAEvB02B,gBAAU5yB,SAAS,KAAK,MAC1ByxB,WAAWqO,aAAaxqB,SAASjS,OAAOiS,SAAS/R,QACjDs8B,YAAYE,YAAYzqB,SAASlS,MAG/BwvB,UAAU5yB,SAAS,OAAO,MAC5ByxB,WAAWqO,YAAYxqB,SAAS/R,OAChCs8B,YAAYE,aAAazqB,SAASlS,MAAMkS,SAAShS,UAG/CsvB,UAAU5yB,SAAS,QAAQ,MAC7ByxB,WAAWqO,aAAaxqB,SAASjS,OAAOiS,SAAS/R,QACjDs8B,YAAYE,YAAYzqB,SAAShS,SAG/BsvB,UAAU5yB,SAAS,MAAM,MAC3ByxB,WAAWqO,YAAYxqB,SAASjS,MAChCw8B,YAAYE,aAAazqB,SAASlS,MAAMkS,SAAShS,UAKnD67B,MAAM;AAAA,QACJa,gBAAgBvO,WAAW2N,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAAA,QACjDa,iBAAiBJ,YAAYT,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAAA,QACnD5/B;AAAAA,QACA0gC,gBAAgBX,UAAUp8B,QAAQi8B,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAAA,MAAA,CACzD;AAEKe,YAAAA,iBAAiB,MAAMb,SAASc,cAAc5gC,SAASyzB,QAAQ,GAE/DoN,UAAUF,eAAejkC,QACzBokC,UAAUH,eAAeh9B;AAE3B28B,aAAAA,cAAcQ,WAAWP,cAAcM,UAClC;AAAA,QAACE,OAAO;AAAA,UAAC1N,OAAO;AAAA,QAAA;AAAA,MAAI,IAGtB,CAAC;AAAA,IAAA;AAAA,EAEZ;AACF;AC9EO,SAAS2N,iBAAiBC,QAIV;AACf,QAAA;AAAA,IAACjP;AAAAA,IAAWp3B;AAAAA,IAAY+I;AAAAA,EAASs9B,IAAAA,QAEjCzL,IAAI7xB,MAAM/I,UAAU,GACpBsmC,eAAyC1L,MAAMx6B,SAAY2I,MAAMA,MAAMnI,SAAS,CAAC,IAAIg6B;AAE3F,SAAO,OAAO0L,gBAAiB,WAAWlP,UAAUkP,YAAY,IAAIlmC;AACtE;AAEO,SAASmmC,aAAaF,QAGN;AACf,QAAA;AAAA,IAACG;AAAAA,IAAeF;AAAAA,EAAAA,IAAgBD;AAElCC,MAAAA,EAAAA,iBAAiBlmC,UAAaomC,kBAAkBpmC;AAIpD,WAAO2C,KAAK2a,IACV4oB,gBAAgBx3B,QACf03B,iBAAiB13B,SAAY21B,0BAA0B,CAC1D;AACF;ACbA,MAAMgC,eAAa5gB,iBAAO6gB,OAAAA,aAAAA,OAAOC,OAAOtT,IAAI,CAAC,EAACtN,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,kHAQ3BznB,uCAAuC,6BAQ7CqoC,cAAcC,MAAAA,KACzBrgB,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAAjF,MAAAA,SAAAqoB,OAAA4f,UAAAC,QAAAC,QAAAtvB,UAAAuvB,aAAA9N,SAAAC,SAAAle,UAAAiS,SAAAqL,WAAA1T,QAAA6B,WAAAhP,QAAAuN,QAAAgiB,UAAA5nC,OAAAuY,MAAA9O,OAAAo+B,OAAAC;AAAAvjC,WAAApD,SAyBT;AAAA,IAAA4mC,oBAAAJ;AAAAA,IAAApoC;AAAAA,IAAAqoB;AAAAA,IAAA4f;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAtvB;AAAAA,IAAAyV;AAAAA,IAAAqL;AAAAA,IAAAW;AAAAA,IAAAC;AAAAA,IAAAle;AAAAA,IAAA4J;AAAAA,IAAAnN;AAAAA,IAAAuN;AAAAA,IAAAgiB;AAAAA,IAAA5nC;AAAAA,IAAAuY;AAAAA,IAAA9O;AAAAA,IAAAF,GAAAs+B;AAAAA,IAAAr+B,GAAAs+B;AAAAA,IAAA,GAAAzgB;AAAAA,EAAAA,IAuBIlmB,OAAKoD,OAAApD,OAAAoD,OAAAhF,SAAAgF,OAAAqjB,OAAArjB,OAAAijC,UAAAjjC,OAAAkjC,QAAAljC,OAAAmjC,QAAAnjC,OAAA6T,UAAA7T,OAAAojC,aAAApjC,OAAAs1B,SAAAt1B,OAAAu1B,SAAAv1B,QAAAqX,UAAArX,QAAAspB,SAAAtpB,QAAA20B,WAAA30B,QAAAihB,QAAAjhB,QAAA8iB,WAAA9iB,QAAA8T,QAAA9T,QAAAqhB,QAAArhB,QAAAqjC,UAAArjC,QAAAvE,OAAAuE,QAAAgU,MAAAhU,QAAAkF,OAAAlF,QAAAsjC,OAAAtjC,QAAAujC,UAAAvoC,UAAAgF,EAAA,CAAA,GAAAqjB,QAAArjB,EAAA,CAAA,GAAAijC,WAAAjjC,EAAA,CAAA,GAAAkjC,SAAAljC,EAAA,CAAA,GAAAmjC,SAAAnjC,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAojC,cAAApjC,EAAA,CAAA,GAAAs1B,UAAAt1B,EAAA,CAAA,GAAAu1B,UAAAv1B,EAAA,CAAA,GAAAqX,WAAArX,EAAA,EAAA,GAAAspB,UAAAtpB,EAAA,EAAA,GAAA20B,YAAA30B,EAAA,EAAA,GAAAihB,SAAAjhB,EAAA,EAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAA8T,SAAA9T,EAAA,EAAA,GAAAqhB,SAAArhB,EAAA,EAAA,GAAAqjC,WAAArjC,EAAA,EAAA,GAAAvE,QAAAuE,EAAA,EAAA,GAAAgU,OAAAhU,EAAA,EAAA,GAAAkF,QAAAlF,EAAA,EAAA,GAAAsjC,QAAAtjC,EAAA,EAAA,GAAAujC,QAAAvjC,EAAA,EAAA;AAET,QAAA;AAAA,IAAA07B;AAAAA,MAAiBvC,SAAS;AAACj5B,MAAAA;AAAAA,OAInBkjC,eAAWpC;AADnB,QAAAG,UAAgCjhC,IAMhC8E,KAAWs+B,SAAU,KAAInC,QAAU,CAAA,GACnCl8B,KAAWs+B,SAAU,KAAIpC,QAAU,CAAA;AAAA9gC,MAAAA;AAWnB0C,QAAAA,KAAA/H,UAAU,cAAWuB;AAAYyG,MAAAA;AAAAhD,IAAA,EAAA,MAAAs1B,WAAAt1B,EAAAu1B,EAAAA,MAAAA,WAAAv1B,UAAAqjC,YAAArjC,EAAA,EAAA,MAAAvE,SAAAuE,EAAA+C,EAAAA,MAAAA,MAAA/C,EAAAkF,EAAAA,MAAAA,SAAAlF,EAAA,EAAA,MAAAgF,KAAAhF,EAAAiF,EAAAA,MAAAA,KAAAjF,UAAA07B,UARxC14B,KAAA;AAAA,IAAAoC,MACCJ;AAAAA,IAACswB;AAAAA,IAAAC;AAAAA,IAAAnR,UAGGif;AAAAA,IAAQl+B,KACbF;AAAAA,IAACC;AAAAA,IAAAw2B;AAAAA,IAAA3gC,YAGMgI;AAAAA,IAAiC,GAC1CtH;AAAAA,EAAAA,GACJuE,QAAAs1B,SAAAt1B,QAAAu1B,SAAAv1B,QAAAqjC,UAAArjC,QAAAvE,OAAAuE,QAAA+C,IAAA/C,QAAAkF,OAAAlF,QAAAgF,GAAAhF,QAAAiF,GAAAjF,QAAA07B,QAAA17B,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA,GAAAK,KAVM2C;AADT,QAAAygC,aAAiCpjC;AAahC6iB,MAAAA;AAISsD,QAAAA,KAAA0c,kBAAkBA,SAAM3mC,QACzBkqB,KAAA0c,kBAAkBA,SAAM5mC;AAAYmqB,MAAAA;AAAA1mB,IAAAwmB,EAAAA,MAAAA,MAAAxmB,UAAAymB,MAFpCC,KAAA;AAAA,IAAAthB,MACCohB;AAAAA,IAAoCrhB,KACrCshB;AAAAA,IAAoCnhB,OAAA/I;AAAAA,IAAA8I,QAAA9I;AAAAA,EAAAA,GAG1CyD,QAAAwmB,IAAAxmB,QAAAymB,IAAAzmB,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GAAAkjB,KALMwD;AADTgd,QAAAA,aAAkCxgB,IAazB0D,KAAA9D;AAAoC+D,MAAAA;AAAA7mB,YAAAhF,WASpC6rB,KAAA7rB,UAAOL,uBAA4B,CAAA,GAAAqF,QAAAhF,SAAAgF,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA;AAAA+mB,MAAAA;AAAA/mB,IAAA6T,EAAAA,MAAAA,YAAA7T,UAAAspB,WAGtCvC,MAACzS,2BAAA,IAAA,MAAA,EAAe,WAAA,UAAe,MAAA,GAAYgV,kBAE3C,CAAA,GAAOtpB,QAAA6T,UAAA7T,QAAAspB,SAAAtpB,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA;AAAAgnB,MAAAA;AAAAhnB,IAAAqX,EAAAA,MAAAA,YAAArX,UAAA+mB,OAHTC,qCAAC,MAAa,EAAA,WAAA,oBAA6B,WAAA,UAAe,MAAC,GAAY3P,UACrE0P,UAAAA,IAAAA,CAGF,GAAO/mB,QAAAqX,UAAArX,QAAA+mB,KAAA/mB,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA;AAAAinB,MAAAA;AAAAjnB,IAAAqjB,EAAAA,MAAAA,SAAArjB,UAAAijC,YAAAjjC,EAAA,EAAA,MAAA0jC,cAENzc,MAAA5D,SACE/O,+BAAA,OAAA,EACM2uB,KAAO,UACLS,OAAS,YACT7C,OAAAA,6BACCC,QAA2BA,8BAC3BC,QAAAA,8BAEX,GAAA/gC,QAAAqjB,OAAArjB,QAAAijC,UAAAjjC,QAAA0jC,YAAA1jC,QAAAinB,OAAAA,MAAAjnB,EAAA,EAAA;AAAAmnB,MAAAA;AAAA,SAAAnnB,EAAA20B,EAAAA,MAAAA,aAAA30B,EAAA,EAAA,MAAAihB,UAAAjhB,UAAAsD,OAAAtD,EAAAyjC,EAAAA,MAAAA,cAAAzjC,EAAA,EAAA,MAAA8T,UAAA9T,EAAAqhB,EAAAA,MAAAA,UAAArhB,EAAA,EAAA,MAAAgnB,OAAAhnB,UAAAinB,OAAAjnB,EAAA4mB,EAAAA,MAAAA,MAAA5mB,EAAA,EAAA,MAAA6mB,MAAA7mB,UAAAgU,QA3BHmT,sCAACyb,cACS,EAAA,WAAA,WAAS,GACZhc,IACW+N,kBAAQ,WAChB1T,QACH3d,KACGwQ,QACAuN,QACD,QAAA,UACAoiB,OAAQA,YACTzvB,MAAI,GACL6S,IAELG,UAAAA;AAAAA,IAAAA;AAAAA,IAMCC;AAAAA,EASH,EAAA,CAAA,GAAajnB,QAAA20B,WAAA30B,QAAAihB,QAAAjhB,QAAAsD,KAAAtD,QAAAyjC,YAAAzjC,QAAA8T,QAAA9T,QAAAqhB,QAAArhB,QAAAgnB,KAAAhnB,QAAAinB,KAAAjnB,QAAA4mB,IAAA5mB,QAAA6mB,IAAA7mB,QAAAgU,MAAAhU,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA,GA5BbmnB;AA4Ba,CAEhB,CACH;AACA4b,YAAYvuB,cAAc;ACxCnB,MAAMmvB,UAAUX,MAAAA,KACrBrgB,MAAAA,WAAW,SACT/lB,OAEAszB,cACmB;AACb,QAAA;AAAA,IAACqD;AAAAA,IAAWqQ;AAAAA,EAAS9uB,IAAAA,YACrB+uB,GAAAA,yBAAyBlM,sBAEzB;AAAA,IACJ6L,oBAAoBrC,UAAUH;AAAAA,IAC9BhmC,SAAS8oC,WAAW;AAAA,IACpBzgB,OAAO0gB,YAAY;AAAA,IACnB1iC,kBAAkBwiC,uBAAuBjjC;AAAAA,IACzCiT,UAAUmwB;AAAAA,IACVC,gBAAgB;AAAA,IAChBlmC;AAAAA,IACAyhB;AAAAA,IACA0kB,qBAAqBtnC,MAAMsnC,sBACzBjD,8BAA4BrkC,MAAM+3B,aAAa,QAAQ;AAAA,IACzDwP;AAAAA,IACAC,mBAAmBxnC,MAAMyE,mBAAmBwiC,uBAAuBjjC;AAAAA;AAAAA,IAEnE47B;AAAAA,IACA6H;AAAAA,IACAhtB,WAAW;AAAA,IACXiS,SAASqF;AAAAA,IACTgG,WAAW2P,gBAAgB;AAAA,IAC3B9G;AAAAA,IACA+G,kBAAkB;AAAA,IAClBtjB,QAAQ2N,aAAa;AAAA,IACrB4V,oBAAoB5nC,MAAMyE,mBAAmBwiC,uBAAuBjjC;AAAAA,IACpE6jC;AAAAA,IACA3wB;AAAAA,IACAuN,QAAQqjB,aAAa;AAAA,IACrB1wB,OAAO;AAAA,IACP9O,OAAOy/B,YAAY;AAAA,IACnBxJ,SAASC,cAAcwI,MAAMgB,QAAQzJ;AAAAA,IACrC0J;AAAAA,IACA,GAAG/hB;AAAAA,EAAAA,IACDlmB,OAEE5B,UADuB2a,4BACU,KAAQmuB,UACzCgB,eAAerzB,eAAepQ,eAAe,GAAG4P,QAChDqY,UAAUvpB,aAAa4uB,WAAW,GAClC1N,SAASlhB,aAAa6uB,UAAU,GAChCvN,SAASthB,aAAa2kC,UAAU,GAChCK,iBAAiBhlC,aAAa4kC,SAAS,GACvCxJ,UAAUp7B,aAAaq7B,WAAW,GAClC93B,MAAM5B,MAAAA,OAA8B,IAAI,GACxCuhC,WAAWvhC,MAAAA,OAA8B,IAAI,GAC7CigC,eAA6B;AAGjCzR,QAAAA,oBAAAA,cACA,MAAM5sB,IAAIzB,OACZ;AAEM1F,QAAAA,aAAaqZ,iBACbmtB,gBAAgBsB,iBAAiBM,kBAAkBO,cAAc5/B,QAAQ3I,QAKzE2I,QAAQq9B,iBAAiB;AAAA,IAC7BhP;AAAAA,IACAp3B;AAAAA,IACA+I,OAAO6/B;AAAAA,EAAAA,CACR,GACKC,WAAWtjC,MAAAA,OAAOwD,KAAK;AAE7BvD,QAAAA,UAAU,MAAM;AACdqjC,aAASnjC,UAAUqD;AAAAA,EAAAA,GAClB,CAACA,KAAK,CAAC;AAKV,QAAMsuB,WAAWkP,aAAa;AAAA,IAACC;AAAAA,IAAeF,cAAcv9B;AAAAA,EAAAA,CAAM,GAC5D+/B,cAAcvjC,MAAAA,OAAO8xB,QAAQ;AAEnC7xB,QAAAA,UAAU,MAAM;AACdsjC,gBAAYpjC,UAAU2xB;AAAAA,EAAAA,GACrB,CAACA,QAAQ,CAAC;AAGP0R,QAAAA,oBAAoBxjC,aAAenF,MAAS;AAGlDoF,QAAAA,UAAU,MAAM;AACd,UAAMwjC,kBAAkB7hC,IAAIzB;AAExB,QAAA,CAACwiC,QAAQ,CAACc,gBAAiB;AAE/B,UAAMlD,iBAAiBiD,kBAAkBrjC;AAErCsiC,0BACElC,mBAAmB1lC,WACrB4oC,gBAAgB1pC,MAAMyJ,QAAQ,GAAG+8B,cAAc,QAExC/8B,UAAU3I,WACnB4oC,gBAAgB1pC,MAAMyJ,QAAQ,GAAGA,KAAK,OAGpC,OAAOsuB,YAAa,aACtB2R,gBAAgB1pC,MAAM+3B,WAAW,GAAGA,QAAQ;AAAA,KAE7C,CAACtuB,OAAOi/B,qBAAqB3Q,UAAU6Q,IAAI,CAAC;AAEzCe,QAAAA,aAAa1yB,MAAAA,QAAQ,MAAM;AAC/B,UAAM5R,MAAoB,CAAE;AAG5B,YAAImjC,iBAAiBM,oBACnBzjC,IAAIE,KACFqkC,WAAAA,KAAK;AAAA,MACH5D,UAAU2C,oBAAoB7nC;AAAAA,MAC9B2nC;AAAAA,MACA5a,SAASsX;AAAAA,MACTe;AAAAA,IACD,CAAA,CACH,GAIF7gC,IAAIE,KAAKqY,kBAAO;AAAA,MAACisB,UAAU3E;AAAAA,IAAAA,CAAyB,CAAC,IAGjDsD,iBAAiBE,wBACnBrjC,IAAIE,KACFxC,KAAK;AAAA,MACH0iC,MAAM;AAAA,QAACa;AAAAA,QAAgBC;AAAAA,QAAiBzgC;AAAAA,QAAU0gC,gBAAAA;AAAAA,MAAAA,GAAiB;AAGjEiD,0BAAkBrjC,UAAUogC;AAE5B,cAAMsD,gBAAgBP,SAASnjC,SACzB2jC,YAAYP,YAAYpjC;AAE1BsiC,8BACF5iC,SAASyzB,SAASv5B,MAAMyJ,QAAQ,GAAG+8B,gBAAc,OACxCsD,kBAAkBhpC,WAC3BgF,SAASyzB,SAASv5B,MAAMyJ,QAAQ,GAAGqgC,aAAa,OAG9CtB,kBACF1iC,SAASyzB,SAASv5B,MAAM+3B,WAAW,GAAGt0B,KAAK2a,IACzCkoB,gBACAyD,aAAav6B,KACf,CAAC,MAED1J,SAASyzB,SAASv5B,MAAMmmC,YAAY,GAAGI,eAAe;AAAA,MAE1D;AAAA,MACA3gC,iBAAiB+iC,oBAAoB7nC;AAAAA,MACrC0nC;AAAAA,MACA9C;AAAAA,MACAgD;AAAAA,MACA7a,SAASsX;AAAAA,IACV,CAAA,CACH,GAIE2D,mBACFzjC,IAAIE,KACFm0B,WAAAA,MAAM;AAAA,MACJsM,UAAU2C,oBAAoB7nC;AAAAA,MAC9BolC;AAAAA,MACArY,SAASsX;AAAAA,IACV,CAAA,CACH,GAIEmD,aACFjjC,IAAIE,KACFqiB,WAAAA,MAAM;AAAA,MACJziB,SAASqiC;AAAAA,MACT3Z,SAASsX;AAAAA,IAAAA,CACV,CACH,GAKE5lC,WACF8F,IAAIE,KAAKwzB,MAAM,GAGjB1zB,IAAIE,KACFykC,gBAAK;AAAA,MACHhE,UAAU+C,qBAAqBjoC;AAAAA,MAC/B+sB,SAASsX;AAAAA,MACTyC,UAAU;AAAA,IACX,CAAA,CACH,GAEOviC;AAAAA,EACN,GAAA,CACD9F,SACA+oC,WACAE,eACAC,oBACAE,kBACAjD,SACAgD,qBACAI,iBACAC,iBAAiB,CAClB,GAEK;AAAA,IAACx/B;AAAAA,IAAGC;AAAAA,IAAGyvB;AAAAA,IAAgBC;AAAAA,IAAW+Q;AAAAA,IAAMrC;AAAAA,IAAUsC;AAAAA,MAAUC,uBAAY;AAAA,IAC5ER;AAAAA,IACAzQ,WAAW2P;AAAAA,IACXuB,sBAAsBC,WAAAA;AAAAA,IACtBvkC,UAAUkjC,mBACN;AAAA,MACEnD,WAAWmD;AAAAA,IAAAA,IAEbloC;AAAAA,EACL,CAAA,GAEKwpC,kBAAkBrR,eAAe+Q,MAAMM,iBAEvC7C,SAASxO,eAAerR,OAAOre,GAC/Bm+B,SAASzO,eAAerR,OAAOpe,GAE/BqwB,UAAUZ,eAAe,mBAAmB,GAAGY,SAC/CC,UAAUb,eAAe,mBAAmB,GAAGa,SAE/CyQ,WAAWC,MAAAA,YAAaC,CAAmC,YAAA;AAC/DjD,aAASphC,UAAUqkC;AAAAA,KAClB,CAAE,CAAA,GAECC,cAAcF,kBACjBj7B,CAAgC,SAAA;AAC/B1H,QAAIzB,UAAUmJ,MACd06B,KAAKS,YAAYn7B,IAAI;AAAA,EAAA,GAEvB,CAAC06B,IAAI,CACP,GAEMU,eAAeH,kBAClBj7B,CAA6B,WAAA;AAC5B06B,SAAKU,aAAap7B,MAAI;AAEhBq7B,UAAAA,WAAWC,cAActC,SAAgB;AAE3C,WAAOqC,YAAa,aACtBA,SAASr7B,MAAI,IACJq7B,aACTA,SAASxkC,UAAUmJ;AAAAA,EAGvB,GAAA,CAACg5B,WAAW0B,IAAI,CAClB,GAEM/c,QAAQjW,MAAAA,QAAQ,MAEhB+xB,mBAAyBT,YAExBA,YAEEnb,MAAAA,aAAamb,WAAW;AAAA,IAAC1gC,KAAK8iC;AAAAA,EAAa,CAAA,IAF3B,MAGtB,CAACpC,WAAWS,kBAAkB2B,YAAY,CAAC;AAY9C,MAVAzkC,gBAAU,MAAM;AACVkjC,kBACE,OAAOA,aAAc,aACvBA,UAAUc,MAAM,IACPd,cACTA,UAAUhjC,UAAU8jC;AAAAA,EAGvB,GAAA,CAACA,QAAQd,SAAS,CAAC,GAElBrlB;AACF,WAAOwkB,aAAe1vB,2BAAAA,IAAA8S,WAAA,UAAA,EAAA;AAGlBwd,QAAAA,UACHtwB,2BAAA,IAAA,eAAA,EAAc,SACb,UAAAA,2BAAAA,IAAC,eACC,GAAIwO,WACJ,oBAAoBqe,SACpB,SACA,OAAO4C,WACP,UAAUiC,UACV,QACA,QACA,QAAQD,iBACR,UACA,SACA,WACA,QACA,KAAKI,aACL,QACA,QACA,SACA,SACA,UACA,MACA,OAAOhC,sBAAsBe,kBAAkBrjC,UAAUqD,OACzD,GACA,GAECnH,UACH,QAAA,CAAA,EAAA,CACF,GAGI8V,WACJwwB,SACC7G,SACClpB,2BAAAA,IAAC,QAAO,EAAA,iBAAiB,OAAOkpB,UAAW,WAAWA,SAASjhC,QAAYqoC,UAAAA,QAAQ,CAAA,IAEnFA;AAGJ,SAGK5pC,2BAAAA,KAAAA,qBAAAA,EAAAA,UAAAA;AAAAA,IAAU,UAAAsZ,2BAAAA,IAACiyB,aAAAA,iBAAiB1yB,EAAAA,SAAAA,CAAS,IAAqBA;AAAAA,IAG1D8U;AAAAA,EAAAA,GACH;AAEJ,CAAC,CACH;AACAgb,QAAQnvB,cAAc;AAOtB,SAAS8xB,cAAc1lC,SAA4B;AAEjD,MAAI4lC,SAAS7hC,OAAO8hC,yBAAyB7lC,QAAQhE,OAAO,KAAK,GAAGoL,KAChE0+B,UAAUF,UAAU,oBAAoBA,UAAUA,OAAOG;AAEzDD,SAAAA,UACM9lC,QAAgB0C,OAI1BkjC,SAAS7hC,OAAO8hC,yBAAyB7lC,SAAS,KAAK,GAAGoH,KAC1D0+B,UAAUF,UAAU,oBAAoBA,UAAUA,OAAOG,gBAErDD,UACK9lC,QAAQhE,MAAM0G,MAIhB1C,QAAQhE,MAAM0G,OAAQ1C,QAAgB0C;AAC/C;ACjdO,SAASsjC,iBAAyC;AAChD9nB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAWT;AAEO,SAAS+nB,kBAAkBjqC,OAA2C;AACrE,QAAA;AAAA,IAACoc;AAAAA,IAAOmG;AAAAA,EAAK,IAAIliB,kBAAYL,MAAMD,KAAK,GACxCmqC,QAAQ3nB,MAAM4nB,MAAMvoC,OAAO2gB,MAAM4nB,MAAMC,YAAY;AAElDloB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,qBAYYnjB,IAAIwjB,MAAM4nB,MAAMvoC,OAAO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAO9B7C,IAAIwjB,MAAM4nB,MAAMvoC,IAAI,CAAC;AAAA,eACtB7C,IAAIwjB,MAAM4nB,MAAMvoC,IAAI,CAAC;AAAA,uBACb7C,IAAIwjB,MAAM4nB,MAAMvoC,OAAO,CAAC,CAAC;AAAA,oBAC5Bwa,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA,oBAC9BT,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,eAKOvJ,IAAImrC,IAAI,CAAC;AAAA,gBACRnrC,IAAImrC,IAAI,CAAC;AAAA,kBACPnrC,IAAIwjB,MAAM4nB,MAAMC,QAAQ,CAAC;AAAA,iBAC1BrrC,IAAIwjB,MAAM4nB,MAAMC,QAAQ,CAAC;AAAA,yBACjBrrC,IAAIwjB,MAAM4nB,MAAMC,WAAW,CAAC,CAAC;AAAA,sBAChChuB,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAOhCrG,eAAe;AAAA,IAC3BhI,QAAQ;AAAA,MAAC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,MAAO8T,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,IAAM;AAAA,IAC7EkI,WAAWgG,MAAM4nB,MAAM5tB;AAAAA,EAAAA,CACxB,CAAC;AAAA;AAAA;AAAA;AAAA,oBAIYJ,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BASkB8T,MAAMmG,MAAMM,QAAQJ,QAAQpO,MAAM;AAAA,oBACxC8H,qBAAqB;AAAA,IACjC7T,OAAOia,MAAMlO,OAAO/L;AAAAA,IACpB8T,OAAOA,MAAMmG,MAAMM,QAAQJ,QAAQ4D,MAAMzJ;AAAAA,EAAAA,CAC1C,CAAC;AAAA;AAAA,sBAEcR,MAAMmG,MAAMM,QAAQJ,QAAQ4D,MAAMzJ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAM5BR,MAAMmG,MAAMC,QAAQM,SAASzO,MAAM;AAAA,oBAC7C+H,MAAMmG,MAAMC,QAAQM,SAASlG,EAAE;AAAA;AAAA;AAAA,sBAG7BR,MAAMmG,MAAMC,QAAQM,SAASzO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAM3B+H,MAAMmG,MAAMC,QAAQI,SAASvO,MAAM;AAAA,oBAC7C+H,MAAMmG,MAAMC,QAAQI,SAAShG,EAAE;AAAA;AAAA;AAAA,sBAG7BR,MAAMmG,MAAMC,QAAQI,SAASvO,MAAM;AAAA;AAAA;AAAA;AAIzD;ACvGA,MAAMg2B,cAAqBxkB,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACykB,cAAc,GACvC5W,UAAQhO,iCAAAA,OAAO7C,MAAK+C,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAAC0kB,iBAAiB,GAO/BK,QAAQvkB,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAmwB,WAAA7sB,gBAAAic,UAAAE,UAAAoD,WAAArnB;AAAAuE,WAAApD,SAI9B;AAAA,IAAAwzB;AAAAA,IAAA5Q;AAAAA,IAAA/jB;AAAAA,IAAA8H;AAAAA,IAAAmc;AAAAA,IAAA,GAAAoD;AAAAA,EAAA,IAA6ElmB,OAAKoD,OAAApD,OAAAoD,OAAAowB,WAAApwB,OAAAuD,gBAAAvD,OAAAwf,UAAAxf,OAAA0f,UAAA1f,OAAA8iB,WAAA9iB,OAAAvE,UAAA20B,YAAApwB,EAAA,CAAA,GAAAuD,iBAAAvD,EAAA,CAAA,GAAAwf,WAAAxf,EAAA,CAAA,GAAA0f,WAAA1f,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAvE,QAAAuE,EAAA,CAAA;AAClFsD,QAAAA,MAAY5B,aAAA,IAAoC;AAACxB,MAAAA;AAAAF,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAI/C7R,KAAAA,MAAMoD,IAAGzB,SAAQ7B,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAFnBgS,MAAAA,oBACEke,cACAhwB,EACF,GAEAmD,kBAAkBC,KAAKC,cAAc;AAKflD,QAAAA,MAACmf,YAAYE,WAAW,KAAEnjB,QAC9BwG,KAAAQ,iBAAiB,KAAEhH,QAErByG,KAAAwc,YAAYE;AAAQwD,MAAAA;AAAAljB,IAAA0f,CAAAA,MAAAA,YAAA1f,EAAA,CAAA,MAAA8iB,aAAA9iB,EAAAK,EAAAA,MAAAA,MAAAL,EAAA,EAAA,MAAA+C,MAAA/C,UAAAgD,MAJhCkgB,oCAAC8M,SACiB,EAAA,kBAAA3vB,IACJ,cAAA0C,IAA+B,GACvC+f,WACM,UAAA9f,IACA0c,UACLpc,KACA,MAAA,SACL,GAAAtD,OAAA0f,UAAA1f,OAAA8iB,WAAA9iB,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA;AAAAwmB,MAAAA;AAAAxmB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACFyU,KAAQlS,2BAAA,IAAA,QAAA,CAAA,CAAA,GAAAtU,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAA,SAAAzmB,EAAAowB,EAAAA,MAAAA,aAAApwB,UAAAvE,SAAAuE,EAAA,EAAA,MAAAkjB,MAVVuD,KAAAS,2BAAA,KAAC,eAAuBkJ,WAAmB,WAAA,SAAe30B,OACxDynB,UAAAA;AAAAA,IAAAA;AAAAA,IASAsD;AAAAA,EAAAA,GACF,GAAcxmB,QAAAowB,WAAApwB,QAAAvE,OAAAuE,QAAAkjB,IAAAljB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAXdymB;AAWc,CAEjB;AACDygB,MAAM1yB,cAAc;ACrCpB,SAASivB,YAAoC;AACpC3kB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAUT;AAEA,SAASqoB,eAAevqC,OAA2C;AAC3D,QAAA;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAYL,YAAAA,MAAMD,KAAK;AAE/BmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAIUvhB,KAAKghB,KAAK/gB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUnC;AAEA,SAAS4pC,gBAAgBxqC,OAAmB;AACpC,QAAA;AAAA,IAACoc;AAAAA,IAAOmG;AAAAA,EAAAA,IAASliB,MAAYL,YAAAA,MAAMD,KAAK;AAEvCmiB,SAAAA,iBAAAA;AAAAA;AAAAA,wBAEe9F,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA,aACzCR,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA,kBACzBvG,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKsB8T,MAAMmG,MAAMC,QAAQY,QAAQxG,EAAE;AAAA,iBACzCR,MAAMmG,MAAMC,QAAQY,QAAQV,EAAE;AAAA,sBACzBvG,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQY,QAAQ/O;AAAAA,IACnC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMU+T,eAAe;AAAA,IAC3BhI,QAAQ;AAAA,MAAC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,MAAO8T,OAAOA,MAAMmG,MAAMC,QAAQC,QAAQpO;AAAAA,IAAM;AAAA,IAC7EkI,WAAWgG,MAAMkoB,OAAOluB;AAAAA,EAAAA,CACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,0BAKkBH,MAAMmG,MAAMC,QAAQM,SAASlG,EAAE;AAAA,eAC1CR,MAAMmG,MAAMC,QAAQM,SAASJ,EAAE;AAAA,oBAC1BvG,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQM,SAASzO;AAAAA,IACpC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,0BAKkB8T,MAAMmG,MAAMC,QAAQI,SAAShG,EAAE;AAAA,eAC1CR,MAAMmG,MAAMC,QAAQI,SAASF,EAAE;AAAA,oBAC1BvG,qBAAqB;AAAA,IACjCC,OAAOA,MAAMmG,MAAMC,QAAQI,SAASvO;AAAAA,IACpC/L,OAAOia,MAAMlO,OAAO/L;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAGR;AAEA,SAASoiC,SAAS9oC,OAAqB;AAC9B,SAAA;AAAA,IAACD,UAAU5C,IAAI6C,MAAKD,QAAQ;AAAA,IAAGM,YAAYlD,IAAI6C,MAAKK,UAAU;AAAA,EAAC;AACxE;AAEA,SAAS0oC,mBAAmB3qC,OAA2C;AAC/D,QAAA;AAAA,IAACihB;AAAAA,MAAajhB,OACd;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAE7C,SAAOd,YAAYC,OAAO+hB,WAAYvf,CAAAA,cACpCgpC,SAAS/pC,KAAKghB,KAAK9gB,MAAMa,SAAS,KAAKf,KAAKghB,KAAK9gB,MAAM,CAAC,CAAC,CAC3D;AACF;AAEA,SAAS+pC,aASP;AACA,SAAO,CACLxmB,uBACAmmB,gBACAC,iBACAG,oBACA3oB,oCAAoC;AAExC;AAEA,SAAS6oB,aAAa7qC,OAA2C;AACzD,QAAA;AAAA,IAACoc;AAAAA,EAAAA,IAAS/b,MAAYL,YAAAA,MAAMD,KAAK;AAEhCmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,uBAOc9F,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,2BAK1BtG,MAAMmG,MAAMC,QAAQY,QAAQV,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAMhCtG,MAAMmG,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,yBAK/BtG,MAAMmG,MAAMC,QAAQM,SAASJ,EAAE;AAAA;AAAA;AAGxD;AAEO,MAAMooB,cAAc;AAAA,EACzB/yB,MAAM8uB;AAAAA,EACNtkB,OAAOqoB;AAAAA,EACPG,SAASF;AACX,GCjJMG,eAAsBnlB,iCAAAA,OAAAA,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAACulB,EAAAA,YAAY/yB,IAAI,GAE1Cqb,UAAQhO,iCAAAA,OAAOqlB,OAAMnlB,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAKxBulB,EAAAA,YAAYvoB,KAAK,GAEd0oB,UAAiB7e,wCAAAA,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAACulB,EAAAA,YAAYC,OAAO,GAOlCG,SAASnlB,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA4T,UAAAtQ,gBAAAic,UAAAE,UAAAoD,WAAA5iB,IAAAG,IAAA0C,IAAAC;AAAAhD,WAAApD,SAI/B;AAAA,IAAAiX;AAAAA,IAAAtQ;AAAAA,IAAAic;AAAAA,IAAAjhB,UAAA2B;AAAAA,IAAAopB,SAAAjpB;AAAAA,IAAA4gB,QAAAle;AAAAA,IAAA2c;AAAAA,IAAA1iB,OAAAgG;AAAAA,IAAA,GAAA8f;AAAAA,EAAAA,IAUIlmB,OAAKoD,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAAuD,gBAAAvD,OAAAwf,UAAAxf,OAAA0f,UAAA1f,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,IAAA/C,OAAAgD,OAAA6Q,WAAA7T,EAAA,CAAA,GAAAuD,iBAAAvD,EAAA,CAAA,GAAAwf,WAAAxf,EAAA,CAAA,GAAA0f,WAAA1f,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,CAAA;AANPzB,QAAAA,YAAA2B,OAAY3D,aAAZ2D,IACAopB,UAAAjpB,OAAW9D,aAAX8D,IACA4gB,SAAAle,OAAUxG,aAAVwG,IAEA/F,QAAAgG,OAASzG,aAATyG,IAIFM,MAAY5B,MAAAA,OAAA,IAAqC;AAACwhB,MAAAA;AAAAljB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAIhDmR,KAAAA,MAAM5f,IAAGzB,SAAQ7B,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA,GAFnBgS,MAAAA,oBACEke,cACAhN,EACF,GAEA7f,kBAAkBC,KAAKC,cAAc;AAKfijB,QAAAA,MAAChH,YAAYE,WAAW,KAAEnjB,QAG/BkqB,KAAA1mB,aAAaxB,SAAQ,GACtBmoB,KAAA3mB,aAAaupB,OAAO,GACrB1C,KAAA7mB,aAAakhB,MAAM,GACpB4F,KAAA9mB,aAAa/C,KAAK,GAChB+pB,MAAAvH,YAAYE;AAAQsH,MAAAA;AAAAhnB,IAAA,EAAA,MAAA6T,YAAA7T,EAAA,EAAA,MAAA8iB,aAAA9iB,EAAA,EAAA,MAAA+mB,OAAA/mB,EAAAwmB,EAAAA,MAAAA,MAAAxmB,EAAAymB,EAAAA,MAAAA,MAAAzmB,EAAA0mB,EAAAA,MAAAA,MAAA1mB,EAAA4mB,EAAAA,MAAAA,MAAA5mB,UAAA6mB,MARhCG,MAAA1S,2BAAAA,IAAC0b,WACiB,kBAAAxJ,IACR,WAAA,aACJ1D,WACO,WAAA2D,IACD,UAAAC,IACD,SAAAE,IACD,QAAAC,IACE,UAAAE,KACLzjB,KAEG,SACV,CAAA,GAAQtD,QAAA6T,UAAA7T,QAAA8iB,WAAA9iB,QAAA+mB,KAAA/mB,QAAAwmB,IAAAxmB,QAAAymB,IAAAzmB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAA6mB,IAAA7mB,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA;AAAAinB,MAAAA;AAAAjnB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAIJkV,MAAC3S,2BAAA,IAAAyzB,MAAA,iBAAA,CAAkB,CAAA,GAAA/nC,QAAAinB,OAAAA,MAAAjnB,EAAA,EAAA;AAAAmnB,MAAAA;AAAAnnB,YAAAzB,aADrB4oB,MAAC7S,+BAAA,MAAA,EAAW/V,MAAAA,WACV0oB,UAAAA,KACF,GAAOjnB,QAAAzB,WAAAyB,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA;AAAAqnB,MAAAA;AAAArnB,IAAAspB,EAAAA,MAAAA,WAAAtpB,UAAAmnB,OAHTE,MAAC/S,2BAAAA,IAAA,SAAiBgV,EAAAA,SAChBnC,UAGF,IAAA,CAAA,GAAUnnB,QAAAspB,SAAAtpB,QAAAmnB,KAAAnnB,QAAAqnB,OAAAA,MAAArnB,EAAA,EAAA;AAAAupB,MAAAA;AAAA,SAAAvpB,EAAAgnB,EAAAA,MAAAA,OAAAhnB,UAAAqnB,OAnBZkC,MAACrC,2BAAA,KAAA,cAAqB,EAAA,WAAA,UACpBF,UAAAA;AAAAA,IAAAA;AAAAA,IAcAK;AAAAA,EAAAA,EAKF,CAAA,GAAernB,QAAAgnB,KAAAhnB,QAAAqnB,KAAArnB,QAAAupB,OAAAA,MAAAvpB,EAAA,EAAA,GApBfupB;AAoBe,CAElB;AACDue,OAAOtzB,cAAc;AC9ErB,MAAM4B,aAAwB;AAAA,EAC5B,oBAAoB;AAAA,IAClBpY,SAAS;AAAA,EACX;AAAA,EACA,mCAAmC;AAAA,IACjCqY,WAAW;AAAA,EACb;AAAA,EACA,qBAAuB;AAAA,EACvB,cAAgB;AAClB;AAEO,SAAS2xB,iBAA4B;AACnC5xB,SAAAA;AACT;AAEO,SAAS6xB,0BACdrrC,OACa;AACP,QAAA;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMqhB,QAAS/gB,CAAgB,gBAAA;AAAA,IACvDue,SAAS9f,IAAIqB,MAAME,UAAU,CAAC;AAAA,EAAA,EAC9B;AACJ;AChBA,MAAMgrC,cAAclmB,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAC7B6lB,EAAAA,gBACAC,yBAAyB,GAQdE,QAAQxlB,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAulB,IAAA1C,WAAA9lB;AAAAgD,WAAApD,SAI9B;AAAA,IAAA4oB;AAAAA,IAAAxoB;AAAAA,IAAA,GAAA8lB;AAAAA,EAAkClmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAwlB,IAAAxlB,OAAA8iB,WAAA9iB,OAAAhD,UAAAwoB,KAAAxlB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAhD,QAAAgD,EAAA,CAAA;AAI1BE,QAAAA,YAAOslB,MAAO,WAAWA,KAAEjpB,QAG5B8D,KAAAN,aAAa/C,KAAK;AAAC+F,MAAAA;AAAA,SAAA/C,EAAAwlB,CAAAA,MAAAA,MAAAxlB,EAAA,CAAA,MAAAsD,OAAAtD,EAAA8iB,CAAAA,MAAAA,aAAA9iB,EAAA,CAAA,MAAAE,MAAAF,SAAAK,MAJ7B0C,KAACuR,2BAAA,IAAA,aACU,EAAA,WAAApU,IACD,WAAA,YACJ4iB,WACI,QAAAziB,IACKmlB,aAAC,IACTliB,IACL,CAAA,GAAAtD,OAAAwlB,IAAAxlB,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GAPF+C;AAOE,CAEL;AACDolC,MAAM3zB,cAAc;ACnCb,SAAS4zB,mBAA2C;AAClDtpB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAMT;AAGO,SAASupB,oBAA4C;AAEnDvpB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAgBT;AAGO,SAASwpB,2BAA2B1rC,OAA2C;AAC9E,QAAA;AAAA,IAACoc;AAAAA,IAAOmG;AAAAA,EAAAA,IAASliB,MAAYL,YAAAA,MAAMD,KAAK;AAEvCmiB,SAAAA,iBAAAA;AAAAA,yBACgB9F,MAAMmG,MAAMC,QAAQC,QAAQpO,MAAM;AAAA,yBAClC+H,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO1C7d,IAAIwjB,MAAMopB,OAAOrjC,KAAK,CAAC;AAAA,cACtBvJ,IAAIwjB,MAAMopB,OAAOtqC,MAAM,CAAC;AAAA,qBACjBtC,IAAIwjB,MAAMopB,OAAOtqC,SAAS,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAoBpBgb,eAAe;AAAA,IAACE,WAAWgG,MAAMopB,OAAOpvB;AAAAA,EAAAA,CAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAQrDH,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA,2BAC9BtG,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,6BAK5BR,MAAMmG,MAAMC,QAAQY,QAAQ/O,MAAM;AAAA,6BAClC+H,MAAMmG,MAAMC,QAAQY,QAAQxG,EAAE;AAAA;AAAA;AAAA;AAAA,6BAI9BR,MAAMmG,MAAMC,QAAQC,QAAQC,EAAE;AAAA,6BAC9BtG,MAAMmG,MAAMC,QAAQC,QAAQ7F,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKhCR,MAAMmG,MAAMC,QAAQI,SAASvO,MAAM;AAAA,2BACnC+H,MAAMmG,MAAMC,QAAQI,SAAShG,EAAE;AAAA;AAAA;AAAA;AAAA,2BAI/BR,MAAMmG,MAAMC,QAAQM,SAASzO,MAAM;AAAA,2BACnC+H,MAAMmG,MAAMC,QAAQM,SAASlG,EAAE;AAAA;AAAA;AAAA;AAAA,2BAI/BR,MAAMmG,MAAMC,QAAQM,SAASJ,EAAE;AAAA,2BAC/BtG,MAAMmG,MAAMC,QAAQM,SAASlG,EAAE;AAAA;AAAA;AAG1D;AAGO,SAASgvB,kBAAkB5rC,OAA2C;AACrE,QAAA;AAAA,IAACuiB;AAAAA,EAAAA,IAASliB,MAAYL,YAAAA,MAAMD,KAAK;AAEhCmiB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,aAQInjB,IAAIwjB,MAAMopB,OAAOrjC,KAAK,CAAC;AAAA,cACtBvJ,IAAIwjB,MAAMopB,OAAOtqC,MAAM,CAAC;AAAA,qBACjBtC,IAAIwjB,MAAMopB,OAAOtqC,SAAS,CAAC,CAAC;AAAA;AAEjD;AAGO,SAASwqC,kBACd7rC,OACwB;AAClB,QAAA;AAAA,IAAC8rC;AAAAA,MAAkB9rC,OACnB;AAAA,IAACuiB;AAAAA,EAAAA,IAASliB,MAAYL,YAAAA,MAAMD,KAAK,GACjCgsC,aAAaxpB,MAAMopB,OAAOrjC,OAC1B0jC,cAAczpB,MAAMopB,OAAOtqC,QAC3B4qC,eAAe1pB,MAAMopB,OAAOjf,SAC5B9qB,QAAOoqC,cAAczpB,MAAMopB,OAAOjf,UAAU,GAC5Cwf,gBAAgBH,aAAaE,eAAe,IAAIrqC,OAChDuqC,sBAAsBJ,aAAa,IAAInqC,QAAO,IAAIqqC,cAClD1Y,UAAUuY,mBAAmB,MAAQ9rC,MAAMosC,aAAa;AAEvDlqB,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAKGnjB,IAAIktC,YAAY,CAAC;AAAA,WAClBltC,IAAIktC,YAAY,CAAC;AAAA,cACdltC,IAAI6C,KAAI,CAAC;AAAA,aACV7C,IAAI6C,KAAI,CAAC;AAAA,qBACD7C,IAAI6C,QAAO,CAAC,CAAC;AAAA;AAAA,2BAEP2gB,MAAMopB,OAAOU,oBAAoB;AAAA,kCAC1B9pB,MAAMopB,OAAOW,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjE/Y,WACFrR,iBAAAA;AAAAA,+BAC2BgqB,aAAa;AAAA,KACvC;AAAA;AAAA,MAECJ,kBACF5pB,iBAAAA;AAAAA,+BAC2BiqB,mBAAmB;AAAA,KAC7C;AAAA;AAEL;AC1JA,MAAMI,eAAsBlnB,iCAAAA,OAAAA,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACimB,gBAAgB,GAC3CpY,UAAQhO,iCAAAA,OAAO7C,MAAK+C,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACkmB,iBAAiB,GACtCe,iBAAiBpnB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACmmB,0BAA0B,GACvDe,QAAQrnB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACqmB,iBAAiB,GACrCc,QAAQtnB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAAiDsmB,iBAAiB,GAS9Ec,SAAS5mB,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAkwB,SAAAC,WAAA5Q,UAAA6Q,eAAA3Q,UAAAoD,WAAArnB;AAAAuE,WAAApD,SAI/B;AAAA,IAAAuzB;AAAAA,IAAAC;AAAAA,IAAA5Q;AAAAA,IAAA6Q;AAAAA,IAAA3Q;AAAAA,IAAAjkB;AAAAA,IAAA,GAAAqnB;AAAAA,EAAqFlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAmwB,SAAAnwB,OAAAowB,WAAApwB,OAAAwf,UAAAxf,OAAAqwB,eAAArwB,OAAA0f,UAAA1f,OAAA8iB,WAAA9iB,OAAAvE,UAAA00B,UAAAnwB,EAAA,CAAA,GAAAowB,YAAApwB,EAAA,CAAA,GAAAwf,WAAAxf,EAAA,CAAA,GAAAqwB,gBAAArwB,EAAA,CAAA,GAAA0f,WAAA1f,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAvE,QAAAuE,EAAA,CAAA;AAC1FsD,QAAAA,MAAY5B,aAAA,IAAoC;AAACxB,MAAAA;AAAAF,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAI/C7R,KAAAA,MAAMoD,IAAGzB,SAAQ7B,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAFnBgS,MAAAA,oBACEke,cACAhwB,EACF;AAAC,MAAAG,IAAA0C;AAAA/C,WAAAqwB,iBAEShwB,KAAAA,MAAA;AACJiD,QAAGzB,YAELyB,IAAGzB,QAAAwuB,gBAAyBA,iBAAsB;AAAA,EAAA,GAEnDttB,MAACstB,aAAa,GAACrwB,OAAAqwB,eAAArwB,QAAAK,IAAAL,QAAA+C,OAAA1C,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,IALlB2B,gBAAUtB,IAKP0C,EAAe;AAKIC,QAAAA,MAACwc,YAAYE,WAAW,KAAEnjB,QAEjC2mB,KAAAmN,kBAAa,MAAaF,SACzB3J,KAAAhH,YAAYE;AAAQ+G,MAAAA;AAAAzmB,IAAA,EAAA,MAAA8iB,aAAA9iB,EAAAgD,EAAAA,MAAAA,MAAAhD,EAAAkjB,EAAAA,MAAAA,MAAAljB,UAAAwmB,MAJhCC,KAACnS,2BAAA,IAAA0b,SAAA,EACiB,kBAAAhtB,IACZ8f,GAAAA,WACK,SAAAI,IACC,UAAAsD,IACL,MAAA,YACAljB,KACL,GAAAtD,QAAA8iB,WAAA9iB,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA;AAAA0mB,MAAAA;AAAA1mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEA2U,KAACpS,2BAAA,IAAA,OAAA,CAAQ,CAAA,GAAAtU,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA;AAAA4mB,MAAAA;AAAA5mB,IAAAmwB,EAAAA,MAAAA,WAAAnwB,UAAAqwB,iBADXzJ,KAACM,2BAAAA,KAAA,gBAAA,EAAe,eAAA,IAAsB,aAAA,kBACpCR,UAAAA;AAAAA,IAAAA;AAAAA,IACCpS,2BAAA,IAAA,OAAA,EAAgB6b,UAAAA,SAAyBE,gBAAY,cACxD,CAAA;AAAA,EAAA,EAAA,CAAA,GAAiBrwB,QAAAmwB,SAAAnwB,QAAAqwB,eAAArwB,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA;AAAA6mB,MAAAA;AAAA7mB,SAAAA,EAAA,EAAA,MAAAowB,aAAApwB,EAAAvE,EAAAA,MAAAA,SAAAuE,EAAAymB,EAAAA,MAAAA,MAAAzmB,UAAA4mB,MAZnBC,qCAAC,cAAwBuJ,EAAAA,WAAmB,WAAA,UAAgB30B,OAC1DgrB,UAAAA;AAAAA,IAAAA;AAAAA,IAQAG;AAAAA,EAIF,EAAA,CAAA,GAAe5mB,QAAAowB,WAAApwB,QAAAvE,OAAAuE,QAAAymB,IAAAzmB,QAAA4mB,IAAA5mB,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA,GAbf6mB;AAae,CAElB;AACD0iB,OAAO/0B,cAAc;AChCrB,MAAMg1B,iBAAwBvnB,iCAAAA,OAAAA,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACpD,kBAAkB,GAE/C0qB,cAAYznB,iBAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAK5B,wDAEK6N,UAAe0Z,iCAAAA,OAAAA,SAAQxnB,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAC3BvE,6BACAoB,oBACAW,sBAAsB,GAGlBgqB,iBAAe3nB,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAC7BnB,EAAAA,uBACApB,4BAA4B,GASjBgqB,WAAWjnB,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA4pC,6BAAAtmC,gBAAAuf,WAAA5iB,IAAAG,IAAA0C,IAAAC,IAAAkgB,IAAAF;AAAAhjB,WAAApD,SAIjC;AAAA,IAAAqU,QAAA/Q;AAAAA,IAAAqD;AAAAA,IAAAic,UAAAnf;AAAAA,IAAA9B,UAAAwE;AAAAA,IAAAumB,SAAAtmB;AAAAA,IAAAie,QAAAiC;AAAAA,IAAAF;AAAAA,IAAA6mB;AAAAA,IAAA,GAAA/mB;AAAAA,EAAAA,IAUIlmB,OAAKoD,OAAApD,OAAAoD,OAAA6pC,6BAAA7pC,OAAAuD,gBAAAvD,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,IAAA/C,OAAAgD,IAAAhD,OAAAkjB,IAAAljB,OAAAgjB,WAAA6mB,8BAAA7pC,EAAA,CAAA,GAAAuD,iBAAAvD,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,CAAA,GAAAkjB,KAAAljB,EAAA,CAAA,GAAAgjB,SAAAhjB,EAAA,CAAA;AATP,QAAAiR,UAAA/Q,OAAa3D,cAAb2D,IAEAsf,WAAAnf,OAAgB9D,cAAhB8D,IACA9B,YAAAwE,OAAYxG,aAAZwG,IACAumB,UAAAtmB,OAAWzG,aAAXyG,IACAie,SAAAiC,OAAU3mB,aAAV2mB,IAMF5f,MAAY5B,MAAAA,OAAA,IAAuC,GAEnDqS,YAAkBU,aAAa;AAAC+R,MAAAA;AAAAxmB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAI9ByU,KAAAA,MAAMljB,IAAGzB,SAAQ7B,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA,GAFnBgS,MAAAA,oBACEke,cACA1J,EACF,GAEAnjB,kBAAkBC,KAAKC,cAAc;AAOhB,QAAAkjB,KAAA1S,UAASD,QACX4S,KAAA3S,UAASC,MAET4S,KAAA7mB,aAAaxB,SAAQ,GACtBsoB,KAAA9mB,aAAaupB,OAAO,GACrBvC,MAAAhT,UAASD,QACVkT,MAAAjnB,aAAA,CAAc;AAACknB,MAAAA;AAAAjnB,IAAA,EAAA,MAAAwf,YAAAxf,EAAA8iB,EAAAA,MAAAA,aAAA9iB,UAAA+T,UAAAD,UAAA9T,EAAA+T,EAAAA,MAAAA,UAAAC,QAAAhU,EAAAgnB,EAAAA,MAAAA,OAAAhnB,EAAA,EAAA,MAAA4mB,MAAA5mB,EAAA6mB,EAAAA,MAAAA,MAAA7mB,UAAAgjB,UARzBiE,MAAC3S,2BAAAA,IAAA0b,SAAA,EACS,WAAA,YACK,eAAAvJ,IACF,aAAAC,IAAc,GACrB5D,WACO,WAAA8D,IACD,UAAAC,IACD,SAAAE,KACD,QAAAC,KACD,OAAAjT,UAASC,MACPgP,SAAK,QACJxD,UACLlc,IACL,CAAA,GAAAtD,QAAAwf,UAAAxf,QAAA8iB,WAAA9iB,EAAA,EAAA,IAAA+T,UAAAD,QAAA9T,EAAA,EAAA,IAAA+T,UAAAC,MAAAhU,QAAAgnB,KAAAhnB,QAAA4mB,IAAA5mB,QAAA6mB,IAAA7mB,QAAAgjB,QAAAhjB,QAAAinB,OAAAA,MAAAjnB,EAAA,EAAA;AAES,QAAAmnB,MAAApnB,aAAakhB,MAAM,GAIfoG,MAAApW,UAAS,KAAE1U;AAAYgtB,MAAAA;AAAAvpB,YAAA6pC,+BAAA7pC,EAAA+T,EAAAA,MAAAA,UAAAD,UAAA9T,UAAA+T,UAAAC,QAAAhU,UAAAmnB,OAAAnnB,EAAA,EAAA,MAAAqnB,OALtCkC,qCAACogB,gBACU,EAAA,SAAAxiB,KACkB0iB,wDAClB,SAAA91B,UAASD,QACX,OAAAC,UAASC,MACH,eAAAqT,KACA,eAAAtT,UAASD,QACX,aAAAC,UAASC,MACpB,GAAAhU,QAAA6pC,6BAAA7pC,EAAA,EAAA,IAAA+T,UAAAD,QAAA9T,EAAA,EAAA,IAAA+T,UAAAC,MAAAhU,QAAAmnB,KAAAnnB,QAAAqnB,KAAArnB,QAAAupB,OAAAA,MAAAvpB,EAAA,EAAA;AAAAwpB,MAAAA;AAAA,SAAAxpB,EAAAinB,EAAAA,MAAAA,OAAAjnB,UAAAupB,OAxBNC,MAAClV,2BAAA,IAAA,gBAAA,EAAuB,WAAA,YACtB,0CAACm1B,aACCxiB,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAcAsC;AAAAA,EAAAA,EASF,CAAA,EACF,CAAA,GAAiBvpB,QAAAinB,KAAAjnB,QAAAupB,KAAAvpB,QAAAwpB,OAAAA,MAAAxpB,EAAA,EAAA,GA1BjBwpB;AA0BiB,CAEpB;AACDogB,SAASp1B,cAAc;ACrCvB,MAAMs1B,yBAA8C;AAAA,EAACpO,QAAQ;AAAC,GAExDqO,kBAAkB/nB,iCAAAA,OAAOwN,IAAI,EAAEwa,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC/nB,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACpD,kBAAkB,GAE9E0qB,YAAYznB,iBAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAK5B,wDAEK+nB,SAASloB,iBAAAA,OAAOwN,IAAI,EAAEwa,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC/nB,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAQvD,gGAEKgoB,SAASnoB,iBAAAA,OAAOwN,IAAI,EAAEwa,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC/nB,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAQvD,8FAEK6N,QAAe7Q,iCAAAA,OAAAA,MAAK+C,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EACxBvE,6BACAoB,oBACAW,sBAAsB,GAGlBgqB,eAAe3nB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAC9BnB,EAAAA,uBACApB,4BAA4B,GAGxBwqB,UAAUpoB,wBAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAI1B,oCAEKkoB,WAAWroB,iBAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAI3B,qCAEKmoB,YAAYtoB,iBAAAA,OAAOwN,IAAI,EAACtN,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAK7B,kEAEKooB,uBAA8Bzc,iCAAAA,OAAAA,MAAM,EAAC5L,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAC,EAAA;AAAA,EAC1C,mBAAmB;AAAA,IACjBnkB,SAAS;AAAA,EAAA;AAEb,CAAC,GAOYwsC,YAAY7nB,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA8tB,eAAAC,oBAAA6b,6BAAAY,aAAAlnC,gBAAAmnC,SAAAC,QAAAjrB,UAAAoD,WAAA8nB,QAAA1qC,IAAAG,IAAA0C,IAAAC,IAAAkgB,IAAAsD,IAAAC,IAAAzD;AAAAhjB,WAAApD,SAIlC;AAAA,IAAAitC;AAAAA,IAAA54B,QAAA/Q;AAAAA,IAAAuqC;AAAAA,IAAAjrB,UAAAnf;AAAAA,IAAA9B,UAAAwE;AAAAA,IAAAupB,MAAAyB;AAAAA,IAAAU,WAAAT;AAAAA,IAAA0c;AAAAA,IAAAphB,SAAAtmB;AAAAA,IAAA2nC;AAAAA,IAAA1pB,QAAAiC;AAAAA,IAAAxD;AAAAA,IAAA1iB,OAAAwpB;AAAAA,IAAAokB;AAAAA,IAAArnC;AAAAA,IAAAnI,MAAAqrB;AAAAA,IAAAzD;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAmBIlmB,OAAKoD,OAAApD,OAAAoD,OAAA+tB,eAAA/tB,OAAAguB,oBAAAhuB,OAAA6pC,6BAAA7pC,OAAAyqC,aAAAzqC,OAAAuD,gBAAAvD,OAAA0qC,SAAA1qC,OAAA2qC,QAAA3qC,OAAA0f,UAAA1f,OAAA8iB,WAAA9iB,QAAA4qC,QAAA5qC,QAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,IAAAzmB,QAAAgjB,WAAA+K,gBAAA/tB,EAAA,CAAA,GAAAguB,qBAAAhuB,EAAA,CAAA,GAAA6pC,8BAAA7pC,EAAA,CAAA,GAAAyqC,cAAAzqC,EAAA,CAAA,GAAAuD,iBAAAvD,EAAA,CAAA,GAAA0qC,UAAA1qC,EAAA,CAAA,GAAA2qC,SAAA3qC,EAAA,CAAA,GAAA0f,WAAA1f,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAA4qC,SAAA5qC,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,GAAAgD,KAAAhD,EAAA,EAAA,GAAAkjB,KAAAljB,EAAA,EAAA,GAAAwmB,KAAAxmB,EAAA,EAAA,GAAAymB,KAAAzmB,EAAA,EAAA,GAAAgjB,SAAAhjB,EAAA,EAAA;AAjBP,QAAAiR,UAAA/Q,OAAa3D,cAAb2D,IAEAsf,WAAAnf,OAAgB9D,cAAhB8D,IACUwqC,eAAA9nC,OAAgBxG,aAAhBwG,IAID4rB,cAAA3rB,OAAezG,aAAfyG,IAED4rB,aAAA1L,OAAc3mB,aAAd2mB,IAED2L,YAAArI,OAAajqB,aAAbiqB,IAGPprB,OAAAqrB,OAAalqB,SAAN,SAAPkqB,IAIFnjB,MAAY5B,MAAAA,OAAA,IAAoC,GAEhDqS,YAAkBU,aAAAA,GAElBlW,YAAiBwB,aAAa8qC,YAAY,GAC1CvhB,UAAgBvpB,aAAa4uB,WAAW,GACxC1N,SAAelhB,aAAa6uB,UAAU,GACtC5xB,QAAc+C,aAAa8uB,SAAS,GAGpCic,kBAAwB5pC,CAAAA,CAAQupC,aAChCM,WAAiB7pC,CAAAA,CAAQ6sB,eACzBid,gBAAsB9pC,EAAQ8sB,oBAC9BlO,aAAmB5e,CAAQ0pC,CAAAA,QAC3B/qB,aAAmB3e,CAAQypC,CAAAA;AAAOjkB,MAAAA;AAAA1mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAIhC2U,KAAAA,MAAMpjB,IAAGzB,SAAQ7B,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GAFnBgS,MAAAA,oBACEke,cACAxJ,EACF,GAEArjB,kBAAkBC,KAAKC,cAAc;AAGrC,QAAA0nC,uBAAAxoC;AAGMmkB,MAAAA;AAAA5mB,YAAA0qC,WAGJ9jB,KAAAvU,CAAA,YAAA;AACO64B,YAAAA,eAAAA,GACLhnC,QAAKinC,gBAAiB,GAElBT,WAASA,WAGbpnC,IAAGzB,SAAAg5B,MAAA;AAAA,EAAA,GACJ76B,QAAA0qC,SAAA1qC,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA;AATH,QAAAorC,mBAAyBxkB;AAWxB,MAAAC,IAAAE;AAAA/mB,IAAA2qC,EAAAA,MAAAA,UAAA3qC,UAAAihB,UAKG8F,MAAA4jB,yCACG,QAAO,EAAA,WAAA,IAAU,YAAS,IAAE,kBAAqB1pB,QAAe,QAAA,UAAc,MAAA,WAC7E,UAAqB3M,+BAAA,QAAA,oBAAP,EAChB,CAAA,GACDtU,QAAA2qC,QAAA3qC,QAAAihB,QAAAjhB,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA,GAAA6mB,KAJDE;AAFJ,QAAAskB,aAAmBxkB;AAQlBG,MAAAA;AAYkBC,QAAAA,MAAAhW,UAAS,KAAE1U;AAAY4qB,MAAAA;AAAAnnB,IAAA+tB,EAAAA,MAAAA,iBAAA/tB,UAAAzB,aAAAyB,EAAA,EAAA,MAAAspB,WAInCnC,MAAA4G,iBACEzZ,+BAAA,SAAA,EAAiBgV,SAChB,UAACpC,gCAAA,MAAA,EAAW3oB,MAAOA,WAChB+pB,UAAAA;AAAAA,IAAAA,MAAAA,eAAeyF,aAAa,KAAKA;AAAAA,IACjClI,QAAAA,mBAAmBkI,aAAa,KAAKzZ,2BAAA,IAAC;KACzC,EAAA,CACF,GACDtU,QAAA+tB,eAAA/tB,QAAAzB,WAAAyB,QAAAspB,SAAAtpB,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA;AAAAqnB,MAAAA;AAAArnB,IAAA,EAAA,MAAA8qC,mBAAA9qC,EAAAguB,EAAAA,MAAAA,sBAAAhuB,EAAAzB,EAAAA,MAAAA,aAAAyB,UAAAspB,WAEAjC,MAAA,CAACyjB,mBAAmB9c,sBAClB1Z,2BAAA,IAAA,UAAA,EAAkBgV,SACjB,UAAApC,2BAAA,KAAC,MAAW3oB,EAAAA,MAAAA,WACT+pB,UAAAA;AAAAA,IAAAA,MAAAA,eAAe0F,kBAAkB,KAAKA;AAAAA,IACtCnI,QAAAA,mBAAmBmI,kBAAkB,KAAK1Z,2BAAA,IAAC;EAC9C,EAAA,CAAA,EACF,CAAA,GACDtU,QAAA8qC,iBAAA9qC,QAAAguB,oBAAAhuB,QAAAzB,WAAAyB,QAAAspB,SAAAtpB,QAAAqnB,OAAAA,MAAArnB,EAAA,EAAA;AAAAupB,MAAAA;AAAAvpB,IAAA6f,EAAAA,MAAAA,cAAA7f,UAAA8f,cAAA9f,EAAA,EAAA,MAAA6pC,+BAAA7pC,UAAAihB,UAAAjhB,EAAA+T,EAAAA,MAAAA,UAAAD,UAAA9T,EAAA,EAAA,MAAA+T,UAAAC,QAAAhU,EAAAinB,EAAAA,MAAAA,OAAAjnB,EAAA,EAAA,MAAAmnB,OAAAnnB,UAAAqnB,OA3BHkC,MAACrC,2BAAAA,KAAA,cACarH,EAAAA,YACegqB,2BAAAA,6BACf/pB,YACHmB,SAAK,QACL,SAAAlN,UAASD,QACX,OAAAC,UAASC,MACH,eAAAiT,KACA,eAAAlT,UAASD,QACX,aAAAC,UAASC,MAEnBmT,UAAAA;AAAAA,IAAAA;AAAAA,IASAE;AAAAA,EAAAA,GAQH,GAAernB,QAAA6f,YAAA7f,QAAA8f,YAAA9f,QAAA6pC,6BAAA7pC,QAAAihB,QAAAjhB,EAAA,EAAA,IAAA+T,UAAAD,QAAA9T,EAAA,EAAA,IAAA+T,UAAAC,MAAAhU,QAAAinB,KAAAjnB,QAAAmnB,KAAAnnB,QAAAqnB,KAAArnB,QAAAupB,OAAAA,MAAAvpB,EAAA,EAAA,GAAAgnB,MA5BfuC;AAFJ,QAAA+hB,mBAAyBtkB;AA6CxB,MAAAwC,KAAAC;AAAAzpB,YAAAspB,WAKGG,MAAAH,QAAOrtB,IAAAkgC,QAMN,GAACn8B,QAAAspB,SAAAtpB,QAAAypB,OAAAA,MAAAzpB,EAAA,EAAA,GAAAwpB,MANFC;AAFJ,QAAA8hB,wBAA8B/hB;AAU7B,MAAAE,KAAAC;AAAA3pB,YAAAspB,WAGGK,MAAAL,QAAOrtB,IAAAuvC,MAMN,GAACxrC,QAAAspB,SAAAtpB,QAAA2pB,OAAAA,MAAA3pB,EAAA,EAAA,GAAA0pB,MANFC;AAFJ,QAAA8hB,qBAA2B/hB;AAU1BE,MAAAA;AAEQ,QAAA,OAAO6gB,eAAgB,WAAWA,cAAWhwC;AADtD,QAAAixC,mBAAoD9hB;AAGnD,MAAAC,KAAAC;AAAA9pB,IAAAyqC,EAAAA,MAAAA,eAAAzqC,UAAAurC,yBAAAvrC,EAAA,EAAA,MAAAyrC,sBAAAzrC,UAAA0rC,oBAAA1rC,EAAAuD,EAAAA,MAAAA,kBAAAvD,UAAAwf,YAAAxf,EAAA,EAAA,MAAAzB,aAAAyB,EAAAorC,EAAAA,MAAAA,oBAAAprC,EAAA,EAAA,MAAAihB,UAAAjhB,UAAA0f,YAGGoK,OAACtK,YAAQ,CACRE,YACD+qB,eACEn2B,2BAAA,IAAC,WACa,EAAA,aAAA,QACHi3B,gCACFzB,+BACD,MAAAvmC,iBAAiB,aAAa,WAEpC,UAAA+Q,2BAAAA,IAAC,sBACY,EAAA,cAAA,SACH,WAAA,gBACE/V,UAAAA,WACJotC,MAAQA,MAAAA,WACT,MAAA,SACIF,SAAiB,oBAClBxqB,WACJyqB,kBACKN,SAAAA,kBACIH,aAAAA,qBAEjB,CAAA,GAAA,GACDjrC,QAAAyqC,aAAAzqC,QAAAurC,uBAAAvrC,QAAAyrC,oBAAAzrC,QAAA0rC,kBAAA1rC,QAAAuD,gBAAAvD,QAAAwf,UAAAxf,QAAAzB,WAAAyB,QAAAorC,kBAAAprC,QAAAihB,QAAAjhB,QAAA0f,UAAA1f,QAAA8pB,OAAAA,MAAA9pB,EAAA,EAAA,GAAA6pB,MAtBDC;AAFJ,QAAA8hB,kBAAwB/hB;AAsCvB,MAAAE,KAAAC;AAAAhqB,IAAAihB,EAAAA,MAAAA,UAAAjhB,UAAA4qC,UAKG5gB,MAAA4gB,yCACG,QAAO,EAAA,WAAA,IAAU,aAAU,IAAE,kBAAqB3pB,QAAe,QAAA,UAAc,MAAA,WAC9E,UAAqB3M,+BAAA,QAAA,oBAAP,EAChB,CAAA,GACDtU,QAAAihB,QAAAjhB,QAAA4qC,QAAA5qC,QAAAgqB,OAAAA,MAAAhqB,EAAA,EAAA,GAAA+pB,MAJDC;AAFJ6hB,QAAAA,aAAmB9hB,KAsBCE,MAAA+gB,iBAAiBF;AAAe5gB,MAAAA;AAAAlqB,YAAA+qC,YAAA/qC,EAAAwf,EAAAA,MAAAA,YAAAxf,EAAAzB,EAAAA,MAAAA,aAAAyB,EAAA,EAAA,MAAAspB,WAAAtpB,EAAA,EAAA,MAAA0f,YAAA1f,EAAA8iB,EAAAA,MAAAA,aAAA9iB,UAAA+T,UAAAD,UAAA9T,UAAA+T,UAAAC,QAAAhU,EAAA,EAAA,MAAAhD,SAAAgD,EAAAiqB,EAAAA,MAAAA,OAAAjqB,UAAA5E,QAAA4E,EAAA,EAAA,MAAAgjB,UAP9CkH,qCAAC,OACS,EAAA,WAAA,SACK,eAAAnW,UAASD,QACX,aAAAC,UAASC,MAChB8O,GAAAA,WACOvkB,sBACAwsC,WAAAA,UACC,YAAA9gB,KACFX,UAAM,SACP,SAAAvV,UAASD,QACV9W,QAAAA,OACD,OAAA+W,UAASC,MACPgP,iBACCxD,UACAE,UACLpc,KACClI,KACN,CAAA,GAAA4E,QAAA+qC,UAAA/qC,QAAAwf,UAAAxf,QAAAzB,WAAAyB,QAAAspB,SAAAtpB,QAAA0f,UAAA1f,QAAA8iB,WAAA9iB,EAAA,EAAA,IAAA+T,UAAAD,QAAA9T,EAAA,EAAA,IAAA+T,UAAAC,MAAAhU,QAAAhD,OAAAgD,QAAAiqB,KAAAjqB,QAAA5E,MAAA4E,QAAAgjB,QAAAhjB,QAAAkqB,OAAAA,MAAAlqB,EAAA,EAAA;AAAAmqB,MAAAA;AAAAnqB,IAAA4rC,EAAAA,MAAAA,mBAAA5rC,UAAAsrC,oBAAAtrC,EAAA,EAAA,MAAAkqB,OAlBJC,sCAAC,WACCD,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAmBgB;AAAA,IACD;AAAA,EAAA,GACjB,GAAYlqB,QAAA4rC,iBAAA5rC,QAAAsrC,kBAAAtrC,QAAAkqB,KAAAlqB,QAAAmqB,OAAAA,MAAAnqB,EAAA,EAAA;AAAAoqB,MAAAA;AAAApqB,SAAAA,EAAAqrC,EAAAA,MAAAA,cAAArrC,UAAA+T,UAAAC,QAAAhU,EAAA6rC,EAAAA,MAAAA,cAAA7rC,UAAAmqB,OAzBdC,MAAAlD,2BAAA,KAAC,mBAAwB,WAAA,aAAkB,MAAAnT,UAASC,MACxC,UAAA;AAAA,IAAA;AAAA,IAEVmW;AAAAA,IAwBU;AAAA,EACZ,EAAA,CAAA,GAAkBnqB,QAAAqrC,YAAArrC,EAAA,EAAA,IAAA+T,UAAAC,MAAAhU,QAAA6rC,YAAA7rC,QAAAmqB,KAAAnqB,QAAAoqB,OAAAA,MAAApqB,EAAA,EAAA,GA5BlBoqB;AA4BkB,CAErB;AACDogB,UAAUh2B,cAAc;AA3OY,SAAA/R,QAAAyB,OAAA;AAiD3BgnC,QAAAA,eAAAA,GACLhnC,MAAKinC,gBAAiB;AAAC;AAlDS,SAAAhP,SAAAE,GAAA;AAiIxBA,SAAAA,MAAO,IAAA,IACPA,MAAO,KACPA,MAAO,IAAA,IAEJA,IAAK;AAAA;AArIgB,SAAAmP,OAAApP,KAAA;AA4IxBC,SAAAA,QAAO,KACPA,QAAO,IAAA,IACPA,QAAO,IAAA,IAEJA,MAAK;AAAA;AClSb,SAAAyP,gBAAAC,cAAA;AAAA,QAAA/rC,IAAAC,qBAAAA,EAAA,CAAA,GAGL,CAAAw4B,OAAAuT,QAAA,IAA0BzrC,MAAAA,SAASwrC,YAAY,GAC/CE,gBAAsBvqC,MAAAA,OAAAnF,MAA4C;AAAC2D,MAAAA;AAAAF,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEjC7R,KAAAA,CAAA87B,WAAAkQ,UAAA;AAChC,UAAAC,SAAAA,MAAA;AACEH,eAAShQ,SAAS;AAAA,IAAC;AAIjBiQ,QAAAA,cAAapqC,YACfuqC,aAAaH,cAAapqC,OAAQ,GAClCoqC,cAAapqC,UAAAtF,SAAA,CAGV2vC;AAAK,aAASC,OAAO;AACbtqC,kBAAAA,UAAWwqC,WAAWF,QAAQD,KAAK;AAAA,EAAA,GACjDlsC,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAbD,QAAAssC,gBAAsBpsC;AAahBG,MAAAA;AAAAL,SAAAA,SAAAy4B,SAECp4B,KAAA,CAACo4B,OAAO6T,aAAa,GAACtsC,OAAAy4B,OAAAz4B,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAtBK;AAAsB;ACzBlBksC,MAAAA,8BAA8B,IAC9BC,+BAA+B,GAC/BC,+BAA+B,GAE/BC,2BAA2B,GAC3BC,0BAA0B,GAE1B1L,8BAA8D;AAAA,EACzE,KAAO,CAAC,WAAW,aAAa,UAAU,QAAQ,OAAO;AAAA,EACzD,aAAa,CAAC,OAAO,WAAW,gBAAgB,cAAc,aAAa;AAAA,EAC3E,WAAW,CAAC,OAAO,aAAa,cAAc,YAAY,WAAW;AAAA,EACrE,QAAU,CAAC,cAAc,gBAAgB,OAAO,QAAQ,OAAO;AAAA,EAC/D,gBAAgB,CAAC,UAAU,cAAc,aAAa,cAAc,aAAa;AAAA,EACjF,cAAc,CAAC,UAAU,gBAAgB,WAAW,YAAY,WAAW;AAAA,EAC3E,MAAQ,CAAC,YAAY,cAAc,SAAS,OAAO,QAAQ;AAAA,EAC3D,cAAc,CAAC,QAAQ,YAAY,eAAe,aAAa,cAAc;AAAA,EAC7E,YAAY,CAAC,QAAQ,cAAc,aAAa,WAAW,YAAY;AAAA,EACvE,OAAS,CAAC,aAAa,eAAe,QAAQ,OAAO,QAAQ;AAAA,EAC7D,eAAe,CAAC,SAAS,aAAa,cAAc,aAAa,cAAc;AAAA,EAC/E,aAAa,CAAC,SAAS,eAAe,YAAY,WAAW,YAAY;AAC3E,GCRM2B,aAAa5gB,iBAAO6gB,OAAAA,aAAAA,OAAOC,OAAOtT,IAAI,CAAC,EAACtN,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,sBAE3BznB,uCAAuC,6BAQ7CkyC,cAAc5J,MAAAA,KACzBrgB,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAjF,SAAAqoB,OAAA4f,UAAAC,QAAAC,QAAAtvB,UAAAyhB,SAAAC,SAAAjM,SAAAqL,WAAA1T,QAAA6B,WAAAhP,QAAAuN,QAAA5lB;AAAAuE,WAAApD,SAiBT;AAAA,IAAA5B;AAAAA,IAAAqoB;AAAAA,IAAA4f;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAtvB;AAAAA,IAAAyhB;AAAAA,IAAAC;AAAAA,IAAAjM;AAAAA,IAAAqL;AAAAA,IAAA1T;AAAAA,IAAAnN;AAAAA,IAAAuN;AAAAA,IAAA5lB;AAAAA,IAAA,GAAAqnB;AAAAA,EAgBIlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAhF,SAAAgF,OAAAqjB,OAAArjB,OAAAijC,UAAAjjC,OAAAkjC,QAAAljC,OAAAmjC,QAAAnjC,OAAA6T,UAAA7T,OAAAs1B,SAAAt1B,OAAAu1B,SAAAv1B,OAAAspB,SAAAtpB,QAAA20B,WAAA30B,QAAAihB,QAAAjhB,QAAA8iB,WAAA9iB,QAAA8T,QAAA9T,QAAAqhB,QAAArhB,QAAAvE,UAAAT,UAAAgF,EAAA,CAAA,GAAAqjB,QAAArjB,EAAA,CAAA,GAAAijC,WAAAjjC,EAAA,CAAA,GAAAkjC,SAAAljC,EAAA,CAAA,GAAAmjC,SAAAnjC,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAs1B,UAAAt1B,EAAA,CAAA,GAAAu1B,UAAAv1B,EAAA,CAAA,GAAAspB,UAAAtpB,EAAA,CAAA,GAAA20B,YAAA30B,EAAA,EAAA,GAAAihB,SAAAjhB,EAAA,EAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAA8T,SAAA9T,EAAA,EAAA,GAAAqhB,SAAArhB,EAAA,EAAA,GAAAvE,QAAAuE,EAAA,EAAA;AAAAE,MAAAA;AAMOG,QAAAA,KAAArF,UAAU,cAAWuB;AAAYwG,MAAAA;AAAA/C,IAAA,EAAA,MAAAs1B,WAAAt1B,EAAAu1B,EAAAA,MAAAA,WAAAv1B,EAAAvE,EAAAA,MAAAA,SAAAuE,UAAAK,MAHxC0C,KAAA;AAAA,IAAAuyB;AAAAA,IAAAC;AAAAA,IAAAx6B,YAGOsF;AAAAA,IAAiC,GAC1C5E;AAAAA,EAAK,GACTuE,QAAAs1B,SAAAt1B,QAAAu1B,SAAAv1B,QAAAvE,OAAAuE,QAAAK,IAAAL,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA,GAAAE,KALM6C;AADT,QAAA0gC,aAAiCvjC;AAQhC8C,MAAAA;AAISkgB,QAAAA,KAAAggB,kBAAkBA,SAAM3mC,QACzBiqB,KAAA2c,kBAAkBA,SAAM5mC;AAAYkqB,MAAAA;AAAAzmB,IAAAkjB,EAAAA,MAAAA,MAAAljB,UAAAwmB,MAFpCC,KAAA;AAAA,IAAArhB,MACC8d;AAAAA,IAAoC/d,KACrCqhB;AAAAA,IAAoClhB,OAAA/I;AAAAA,IAAA8I,QAAA9I;AAAAA,EAAAA,GAG1CyD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAAAgD,KALMyjB;AADTid,QAAAA,aAAkC1gC,IAazB0jB,KAAA5D;AAAoC8D,MAAAA;AAAA5mB,YAAAhF,WAQpC4rB,KAAA5rB,UAAOL,uBAA4B,CAAA,GAAAqF,QAAAhF,SAAAgF,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA;AAAA6mB,MAAAA;AAAA7mB,IAAAqjB,EAAAA,MAAAA,SAAArjB,UAAAijC,YAAAjjC,EAAA,EAAA,MAAA0jC,cAIvC7c,KAAAxD,SACE/O,+BAAA,OAAA,EACM2uB,KAAO,UACLS,OAAS,YACT6I,OAAAA,6BACCC,QAA2BA,8BAC3BC,QAAAA,8BAEX,GAAAzsC,QAAAqjB,OAAArjB,QAAAijC,UAAAjjC,QAAA0jC,YAAA1jC,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA;AAAA+mB,MAAAA;AAAA,SAAA/mB,EAAA6T,EAAAA,MAAAA,YAAA7T,EAAA,EAAA,MAAAspB,WAAAtpB,UAAA20B,aAAA30B,EAAAihB,EAAAA,MAAAA,UAAAjhB,EAAA,EAAA,MAAAsD,OAAAtD,EAAAyjC,EAAAA,MAAAA,cAAAzjC,EAAA,EAAA,MAAA8T,UAAA9T,UAAAqhB,UAAArhB,EAAA0mB,EAAAA,MAAAA,MAAA1mB,EAAA,EAAA,MAAA4mB,MAAA5mB,UAAA6mB,MAtBHE,MAAAG,2BAAA,KAAC,YACS,EAAA,WAAA,iBACHR,GAAAA,IACWiO,kBAAAA,WACPrL,SACDrI,QACH3d,KACGwQ,QACAuN,QACDoiB,OAAQA,YACV7c,GAAAA,IAEJ/S,UAAAA;AAAAA,IAAAA;AAAAA,IAEAgT;AAAAA,EASH,EAAA,CAAA,GAAa7mB,QAAA6T,UAAA7T,QAAAspB,SAAAtpB,QAAA20B,WAAA30B,QAAAihB,QAAAjhB,QAAAsD,KAAAtD,QAAAyjC,YAAAzjC,QAAA8T,QAAA9T,QAAAqhB,QAAArhB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAA6mB,IAAA7mB,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA,GAvBb+mB;AAuBa,CAEhB,CACH;AACA6lB,YAAYp4B,cAAc;ACtGbq4B,MAAAA,2BACXx5B,0BACE,wCACA,IACF;ACHK,SAAAy5B,uBAAA;AAC6C,SAApCl5B,MAAAA,WAAAi5B,wBAAmC;AAErC;ACkBP,SAAAE,0BAAAnwC,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,EAAA,GAGL;AAAA,IAAA4T;AAAAA,IAAAq4B;AAAAA,EAA0BtvC,IAAAA,OAC1B,CAAAowC,eAAAC,gBAAA,IAA0CnB,kBAAqB,GAC/D,CAAAoB,eAAAC,gBAAA,IAA0CrB,oBAAmC,GAE7EsB,YAAkB,OAAOlB,SAAU,WAAWA,QAAQA,OAAK7H,QAAW,GACtEgJ,aAAmB,OAAOnB,SAAU,WAAWA,QAAQA,OAAKoB,SAAY;AAAAptC,MAAAA;AASzDG,QAAAA,KAAA2sC,gBAAa,IAAOI;AAASrqC,MAAAA;AAAA/C,WAAAqtC,cAAArtC,EAAAgtC,CAAAA,MAAAA,iBAAAhtC,EAAAktC,CAAAA,MAAAA,iBAAAltC,EAAA,CAAA,MAAAitC,oBAAAjtC,SAAAmtC,oBAAAntC,EAAA,CAAA,MAAAK,MANnC0C,KAAA;AAAA,IAAAiqC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC,WAMM/sC;AAAAA,IAA6BgtC;AAAAA,EAEzCrtC,GAAAA,OAAAqtC,YAAArtC,OAAAgtC,eAAAhtC,OAAAktC,eAAAltC,OAAAitC,kBAAAjtC,OAAAmtC,kBAAAntC,OAAAK,IAAAL,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GAAAE,KARM6C;AADT,QAAAxH,QAA6C2E;AAW5C8C,MAAAA;AAAA,SAAAhD,EAAA6T,CAAAA,MAAAA,YAAA7T,SAAAzE,SAGCyH,KAAAsR,2BAAA,IAAA,yBAAA,UAAA,EAA0C/Y,OAAQsY,SAAS,CAAA,GAAoC7T,OAAA6T,UAAA7T,OAAAzE,OAAAyE,OAAAgD,MAAAA,KAAAhD,EAAA,CAAA,GAA/FgD;AAA+F;AAInG+pC,0BAA0Bv4B,cAAc;ACwBxC,MAAM+4B,gBAAgBvrB,iBAAAA,OAAO8a,KAAK,EAAC5a,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAElC,yBAOYqrB,UAAU7qB,MAAAA,WAAW,SAChC/lB,OACAszB,cACA;AACM2T,QAAAA,yBAAyBlM,sBACzB;AAAA,IAACiM;AAAAA,EAAK,IAAI9uB,eACV;AAAA,IACJ9Z,SAAS8oC,WAAW;AAAA,IACpBzgB,OAAO0gB,YAAY;AAAA,IACnB1iC,kBAAkBwiC,wBAAwBjjC;AAAAA,IAC1CiT,UAAUmwB;AAAAA,IACVjmC;AAAAA,IACAyhB;AAAAA,IACA0kB,oBAAoBuJ,yBAAyB7wC,MAAMsnC,sBACjDjD,4BAA4BrkC,MAAM+3B,aAAa,QAAQ;AAAA,IACzDrL,UAAU;AAAA,IACVqL,WAAW2P,gBAAgB;AAAA,IAC3B9G,QAAQkQ;AAAAA,IACRzsB,SAAS;AAAA,IACTnN;AAAAA,IACAuN,SAAS;AAAA,IACT8Z,UAAUyI,MAAM+J,QAAQxS;AAAAA,IACxB+Q;AAAAA,IACA,GAAGppB;AAAAA,EACDlmB,IAAAA,OAEE5B,UADuB2a,wBAAAA,IACU,KAAQmuB,UACzCI,qBAAqBnkC,aAAa0tC,sBAAsB,GACxDnqC,MAAM5B,MAAAA,OAA8B,IAAI,GACxC,CAAC+iC,kBAAkBmJ,mBAAmB,IAAIrtC,MAAAA,SAA6B,IAAI,GAC3E0iC,WAAWvhC,MAA8B,OAAA,IAAI,GAC7CigC,eAA6B,YAC7B,CAACkM,iBAAiBC,kBAAkB,IAAIvtC,MAAAA,SAAS,CAAC;AAEU2vB,QAAAA,oBAAAA,cAAc,MAAM5sB,IAAIzB,OAAO;AAEjG,QAAM27B,SAASH,UAAU,GACnBI,gBACJ,OAAOiQ,cAAe,WAAWlQ,OAAOj8B,WAAWmsC,UAAU,KAAK,OAAOlQ,OAAO58B,SAE5EwkC,aAAa1yB,MAAAA,QAAQ,MAAM;AAC/B,UAAM5R,MAAoB,CAAE;AAG5BA,WAAAA,IAAIE,KACFqkC,gBAAK;AAAA,MACH5D,UAAUpgC,mBAAmB9E;AAAAA,MAC7B2nC;AAAAA,MACA5a,SAASqjB;AAAAA,MACThL;AAAAA,IACD,CAAA,CACH,GAGA7gC,IAAIE,KAAKqY,kBAAO;AAAA,MAACisB,UAAUoH;AAAAA,IAAyB,CAAA,CAAC,GAGrD5rC,IAAIE,KACFm0B,iBAAM;AAAA,MACJsM,UAAUpgC,mBAAmB9E;AAAAA,MAC7BolC;AAAAA,MACArY,SAASqjB;AAAAA,IACV,CAAA,CACH,GAGI5I,aACFjjC,IAAIE,KAAKqiB,WAAAA,MAAM;AAAA,MAACziB,SAASqiC;AAAAA,MAAU3Z,SAASqjB;AAAAA,IAAAA,CAAwB,CAAC,GAKnE3xC,WACF8F,IAAIE,KAAKwzB,MAAM,GAGV1zB;AAAAA,KACN,CAAC9F,SAAS+oC,WAAW1iC,iBAAiB6iC,kBAAkB,CAAC,GAEtD;AAAA,IAAC6J;AAAAA,IAAgBpZ;AAAAA,IAAWD;AAAAA,IAAgBgR;AAAAA,IAAMC;AAAAA,MAAUC,uBAAY;AAAA,IAC5ER;AAAAA,IACAzQ,WAAW2P;AAAAA,IACXuB,sBAAsBC,WAAAA;AAAAA,IACtBvkC,UAAU;AAAA,MAAC+/B,WAAWmD;AAAAA,IAAAA;AAAAA,EAAgB,CACvC,GAEKvB,SAASxO,eAAerR,OAAOre,GAC/Bm+B,SAASzO,eAAerR,OAAOpe,GAE/BqwB,UAAUZ,eAAe,mBAAmB,GAAGY,SAC/CC,UAAUb,eAAe,mBAAmB,GAAGa,SAE/CyY,YAAY/nB,MAAAA,SACZ,CAACgoB,QAAQC,SAAS,IAAIpC,gBAAgB,EAAK,GAC3CqC,oBAAoBrB,qBAAAA,GACpBsB,cAAcH,UAAUE,mBAAmBjB,kBAAkBc,WAE7DK,gBAAgBF,sBAAsB,MACtCG,gBAAgB,OAAOpC,SAAU,WAAWA,QAAQA,OAAO7H,QAAQ,GACnEkK,iBAAiB,OAAOrC,SAAU,WAAWA,QAAQA,OAAOoB,SAAS,GAErEF,YAAYiB,gBAAgBF,kBAAkBf,YAAYkB,eAC1DjB,aAAagB,gBAAgBF,kBAAkBd,aAAakB,gBAE5DC,qBAAqBvI,MAAAA,YACzB,CAAC5B,MAAeoK,cAAwB;AAClCJ,QAAAA;AAEF,UAAIhK,MAAM;AACFqK,cAAAA,mBAAmBD,YAAY,IAAIrB;AAEzCe,0BAAkBlB,iBAAiB5I,MAAMqK,gBAAgB,GACzDP,kBAAkBhB,iBAAiBa,WAAWU,gBAAgB;AAAA,MAAA,OACzD;AAECC,cAAAA,uBACJtB,aAAauB,MAA8BvB,aAAauB;AAExC3B,0BAAAA,iBAAiB5I,MAAMsK,oBAAoB,GAC7DR,kBAAkBhB,iBAAiB,MAAMsB,YAAY,IAAIpB,UAAU;AAAA,MAAA;AAAA;AAMrEa,gBAAU7J,MAHcoK,YAAY,IAAIpK,OAAO+I,YAAYC,UAG5B;AAAA,EAGnC,GAAA,CAACgB,eAAeF,mBAAmBf,WAAWY,WAAWX,YAAYa,SAAS,CAChF,GAEMW,aAAa5I,MAAAA,YAChB6I,CAAkB,MAAA;AACjBN,uBAAmB,EAAK,GACxBxK,WAAWpnC,OAAOmyC,SAASD,CAAC;AAAA,EAAA,GAE9B,CAAC9K,WAAWpnC,OAAO4xC,kBAAkB,CACvC,GACMQ,cAAc/I,MAAAA,YACjB6I,CAAkB,QAAA;AACjBN,uBAAmB,IAAO,EAAI,GAC9BxK,WAAWpnC,MAAMqyC,UAAUH,GAAC;AAAA,EAAA,GAE9B,CAAC9K,WAAWpnC,OAAO4xC,kBAAkB,CACvC,GACMU,oBAAoBjJ,MAAAA,YACvB6I,CAAkB,QAAA;AACjBN,uBAAmB,IAAO,EAAI,GAC9BxK,WAAWpnC,MAAMuyC,gBAAgBL,GAAC;AAAA,EAAA,GAEpC,CAAC9K,WAAWpnC,OAAO4xC,kBAAkB,CACvC,GACM3R,cAAcoJ,MAAAA,YACjB6I,CAAkB,QAAA;AACjBN,uBAAmB,EAAI,GACvBxK,WAAWpnC,OAAO6/B,UAAUqS,GAAC;AAAA,EAAA,GAE/B,CAAC9K,WAAWpnC,OAAO4xC,kBAAkB,CACvC,GACMY,mBAAmBnJ,MAAAA,YACtB6I,CAAkB,QAAA;AACjBN,uBAAmB,EAAI,GACvBxK,WAAWpnC,OAAOyyC,eAAeP,GAAC;AAAA,EAAA,GAEpC,CAAC9K,WAAWpnC,OAAO4xC,kBAAkB,CACvC,GACMc,mBAAmBrJ,MAAAA,YACtB6I,CAAkB,QAAA;AACjBN,uBAAmB,EAAK,GACxBxK,WAAWpnC,OAAO2yC,eAAeT,GAAC;AAAA,EAEpC,GAAA,CAAC9K,WAAWpnC,OAAO4xC,kBAAkB,CACvC;AAGqB,uBAAA;AAAA,IAACA;AAAAA,IAAoB/J;AAAAA,IAAkB2J;AAAAA,EAAAA,CAAY,GAGxEzsC,MAAAA,UAAU,MAAM;AACV6d,gBAAY4uB,eAAaI,mBAAmB,EAAK;AAAA,EAAA,GACpD,CAAChvB,UAAUgvB,oBAAoBJ,WAAW,CAAC,GAG9CzsC,gBAAU,MAAM;AACV,KAAC5D,WAAWqwC,eAAaI,mBAAmB,EAAK;AAAA,EAAA,GACpD,CAACzwC,SAASywC,oBAAoBJ,WAAW,CAAC,GAE7CzsC,gBAAU,MAAM;AAEd,QAAI,CAACysC,YAAa;AAElB,aAASoB,oBAAoBtrC,OAAsB;AAC7CA,YAAMxI,QAAQ,YAChB8yC,mBAAmB,IAAO,EAAI;AAAA,IAAA;AAIlCnsC,WAAAA,OAAOC,iBAAiB,WAAWktC,mBAAmB,GAE/C,MAAM;AACJjtC,aAAAA,oBAAoB,WAAWitC,mBAAmB;AAAA,IAC3D;AAAA,KACC,CAAChB,oBAAoBJ,WAAW,CAAC,GAGpCqB,sBAAgB,MAAM;AAIpB,UAAMC,kBAAkB,CACtB,GAAIruC,kBAAkB,CAACA,gBAAgB4E,WAAW,IAAI,CACtDw3B,GAAAA,eAAex3B,eAAe9C,SAASyL,KAAK3I,WAAW;AAGzD6nC,uBAAmB5uC,KAAK2a,IAAI,GAAG61B,eAAe,IAAI/C,0BAA0B,CAAC;AAAA,EAAA,GAC5E,CAACtrC,iBAAiBo8B,aAAa,CAAC;AAE7BuI,QAAAA,WAAWC,kBACdC,CAAmC,YAAA;AACzBrkC,aAAAA,UAAUqkC,SACnBP,OAAO;AAAA,EAAA,GAET,CAACA,MAAM,CACT,GAEMQ,cAAcF,kBACjBj7B,CAAgC,SAAA;AAC/B1H,QAAIzB,UAAUmJ,MACd06B,KAAKS,YAAYn7B,IAAI;AAAA,KAEvB,CAAC06B,IAAI,CACP,GAEMW,WAAW3kC,MAAAA,OAA2B,IAAI;AAGhDsQ,QAAAA,oBAAqBgyB,WAAmB1gC,KAAK,MAAM+iC,SAASxkC,OAAO;AAEnE,QAAM8mB,QAAQjW,MAAAA,QAAQ,MACfsxB,YAEEnb,MAAAA,aAAamb,WAAW;AAAA,IAC7B+K,QAAQF;AAAAA,IACRpS,SAASI;AAAAA,IACTwS,cAAcD;AAAAA,IACdG,cAAcD;AAAAA,IACdL,SAASD;AAAAA,IACTG,eAAeD;AAAAA,IACf5rC,KAAK+iC;AAAAA,EAAAA,CACN,IAVsB,MAWtB,CACDrC,WACA6K,YACAG,aACAE,mBACArS,aACAuS,kBACAE,gBAAgB,CACjB;AAYD,MARA3tC,gBAAU,MAAM;AACTgnB,QAAAA;AAELilB,aAAAA,oBAAoBvH,SAASxkC,OAAO,GAE7B,MAAM+rC,oBAAoB,IAAI;AAAA,EAAA,GACpC,CAACjlB,KAAK,CAAC,GAEN,CAACA,cAAgBrU,2BAAA,IAAA8S,WAAA,UAAA,EAAA;AAErB,MAAI5H,SAAiBmJ,QAAAA;AAEfglB,QAAAA,yCACH,eACC,EAAA,WAAQ,WACR,GAAI7qB,WACJ,KAAKqjB,aACL,OAAO;AAAA,IACL,GAAG4H;AAAAA,IACHva,UAAUqa,kBAAkB,IAAI,GAAGA,eAAe,OAAOtxC;AAAAA,EAAAA,GAE3D,SAEA,UAAA+X,+BAAC,aACKwO,EAAAA,GAAAA,WACJ,SACA,OAAOihB,WACP,UAAUiC,UACV,QACA,QACA,SACA,SACA,SACA,WACA,QACA,KAAKG,aACL,QACA,QAECpoC,UAAAA,SACH,EACF,CAAA,GAGI8V,WACJu6B,gBACCV,aACEp5B,+BAAA,QAAA,EAAO,iBAAiB,OAAOo5B,cAAe,WAAWA,aAAanxC,QACpEoxC,mBACH,IAEAA;AAGJ,SAGK3yC,2BAAAA,KAAAA,qBAAAA,EAAAA,UAAAA;AAAAA,IAAU,UAAAsZ,2BAAAA,IAACiyB,aAAAA,iBAAiB1yB,EAAAA,SAAAA,CAAS,IAAqBA;AAAAA,IAG1D8U;AAAAA,EAAAA,GACH;AAEJ,CAAC;AACD6kB,QAAQh5B,cAAc;AAMtB,SAAAm7B,qBAAAzvC,IAAA;AAAAF,QAAAA,IAAAC,uBAAA,CAAA,GAA8B;AAAA,IAAAuuC;AAAAA,IAAA/J;AAAAA,IAAA2J;AAAAA,EAAAA,IAAAluC;AAQ7BG,MAAAA;AAAAL,IAAAwuC,CAAAA,MAAAA,sBAAAxuC,SAAAykC,oBAIoCpkC,KAAAA,CAAA6B,QAAA0tC,aAAA;AAAA,IAC5BnL,qBAGHA,qBAAqBviC,UAAWA,kBAAMC,QAAoBsiC,iBAAgBriC,SAAUF,MAAM,MAG1FssC,qBAAwB,GAExBoB,SAAS;AAAA,EAEZ5vC,GAAAA,OAAAwuC,oBAAAxuC,OAAAykC,kBAAAzkC,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAXD6vC,QAAAA,cAAoBhtC,8BAAexC,EAWlC;AAAC,MAAA0C,IAAAC;AAAAhD,IAAA6vC,CAAAA,MAAAA,eAAA7vC,SAAAouC,eAKQrrC,KAAAA,MAAA;AAAA,QAAA,CACHqrC;AAAW;AAEhB,UAAA0B,kBAAA5rC,CAAA,UAAA;AACE2rC,kBAAY3rC,MAAKhC,QAAeG,MAAAA,OAAAE,oBAA2B,aAAautC,eAAe,CAAC;AAAA,IAAC;AAG3FxtC,WAAAA,OAAAA,iBAAwB,aAAawtC,eAAe,GAAC,MAExCztC,OAAAE,oBAA2B,aAAautC,eAAe;AAAA,EACnE9sC,GAAAA,KAAA,CAAC6sC,aAAazB,WAAW,GAACpuC,OAAA6vC,aAAA7vC,OAAAouC,aAAApuC,OAAA+C,IAAA/C,OAAAgD,OAAAD,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,CAAA,IAV7B2B,MAAAA,UAAUoB,IAUPC,EAA0B;AAAC;ACpcnB+sC,MAAAA,qBAAqB/tB,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAE3C,mBAKY6tB,UAAUhuB,iBAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAMjC,gDAEKgJ,SAASC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAaF6kB,sBAAsBjuB,iBAAAA,OAAOuJ,iBAAW,EAACrJ,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,cACvCgJ,MAAM;ACzBd,SAAA+kB,mBAAAtzC,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAA4T;AAAAA,IAAA6d;AAAAA,IAAAye;AAAAA,IAAA3hB;AAAAA,IAAAjzB;AAAAA,EAAAA,IAAkDqB;AAAKsD,MAAAA;AAAAF,IAAAmwC,CAAAA,MAAAA,YAAAnwC,SAAAzE,SAEvB2E,KAAAA,MAAA;AAG9BmsC,eAAA,MAAA;AACE8D,eAAS50C,KAAK;AAAA,OAAC,CACb;AAAA,EACLyE,GAAAA,OAAAmwC,UAAAnwC,OAAAzE,OAAAyE,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAND,QAAAgvC,cAAoB9uC;AAMCG,MAAAA;AAAAL,WAAAgvC,eAGnB3uC,KAAA6D,CAAA,UAAA;AACMA,UAAKxI,QAAS,WAAYg+B,CAAAA,uBAAuBx1B,MAAKksC,aAAc,KACtEpB,YAAY;AAAA,EAAC,GAEhBhvC,OAAAgvC,aAAAhvC,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AALH,QAAAmS,gBAAsB9R;AAOrB0C,MAAAA;AAAA,SAAA/C,EAAA6T,CAAAA,MAAAA,YAAA7T,EAAA,CAAA,MAAAgvC,eAAAhvC,EAAAmS,CAAAA,MAAAA,iBAAAnS,EAAA,CAAA,MAAA0xB,MAAA1xB,SAAAwuB,YAGCzrB,KASKuR,2BAAAA,IAAA,MARYka,EAAAA,2BACP,WAAA,sBACJkD,IACC,MAAA,UACIsd,sBACE78B,0BAEH,SACV,CAAA,GAAKnS,OAAA6T,UAAA7T,OAAAgvC,aAAAhvC,OAAAmS,eAAAnS,OAAA0xB,IAAA1xB,OAAAwuB,UAAAxuB,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA,GATL+C;AASK;ACpCOstC,SAAAA,oBACd5X,OACAz0B,MACmB;AACfA,SAAAA,KAAI5I,SAAS,iBACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO6X,aAAa;AAAA,IAAMC,SAAS;AAAA,IAAMC,OAAOxsC,KAAIwsC;AAAAA,EAAAA,IAG7DxsC,KAAI5I,SAAS,gBACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO8X,SAAS;AAAA,EAAA,IAGzBvsC,KAAI5I,SAAS,cACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO8X,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCxsC,KAAI5I,SAAS,eACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO6X,aAAa;AAAA,IAAME,OAAO;AAAA,IAAMj1C,OAAO;AAAA,EAAA,IAGvDyI,KAAI5I,SAAS,gBACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO8X,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCxsC,KAAI5I,SAAS,cACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO+X,OAAO/X,MAAM+X,SAASxsC,KAAIwsC;AAAAA,EAAAA,IAG1CxsC,KAAI5I,SAAS,wBACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO6X,aAAatsC,KAAIzI;AAAAA,IAAOk1C,aAAazsC,KAAIysC,eAAehY,MAAMgY;AAAAA,EAAAA,IAG9EzsC,KAAI5I,SAAS,wBACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAOgY,aAAazsC,KAAIysC;AAAAA,EAAAA,IAGjCzsC,KAAI5I,SAAS,iBACR;AAAA,IAAC,GAAGq9B;AAAAA,IAAO6X,aAAatsC,KAAIzI;AAAAA,IAAOi1C,OAAO;AAAA,IAAMj1C,OAAOyI,KAAIzI;AAAAA,EAAAA,IAG7Dk9B;AACT;ACzCO,MAAMiY,mCAAmC,CAC9C,WACA,SACA,OACA,SACA,QACA,OACA,UACA,YACA,QACA,OACA,UAAU,GAMCC,iCAA4C,gBAK5CC,2CAAwD,CAAC,gBAAgB,WAAW,GCiE3FC,uBAAuBA,CAACt1C,OAAeu1C,WAC3CA,SAASA,OAAOv1C,QAAQA,OAEpBw1C,wBAAwBA,CAACP,OAAeM,WAC5CA,OAAOv1C,MAAMy1C,YAAY,EAAE7gC,QAAQqgC,MAAMQ,YAAa,CAAA,IAAI,IAEtDC,oBAAoBtuB,MAAAA,WAAW,SAGnC/lB,OAuBAszB,cACA;AACM,QAAA;AAAA,IACJjf,QAAAA,UAAS;AAAA,IACT1N;AAAAA,IACAic;AAAAA,IACA0xB,cAAcC;AAAAA,IACd5yC,UAAAA,YAAW;AAAA,IACX+tB;AAAAA,IACAoF;AAAAA,IACA0f,UAAU32C;AAAAA,IACVwzB;AAAAA,IACA8gB;AAAAA,IACAjQ;AAAAA,IACArC;AAAAA,IACA4U;AAAAA,IACAlB;AAAAA,IACAmB;AAAAA,IACAC;AAAAA,IACA1hC,SAAS2hC;AAAAA,IACTloB,SAASqF,cAAc;AAAA,IACvBiW,UAAUnqC;AAAAA,IACVkwC;AAAAA,IACA1pB,SAAS;AAAA,IACTvB;AAAAA,IACA+xB;AAAAA,IACAC,cAAcC;AAAAA,IACdC;AAAAA,IACAC,cAAchB;AAAAA,IACdjG;AAAAA,IACArvC,OAAOu2C;AAAAA,IACP,GAAGhvB;AAAAA,EAAAA,IACDlmB,OAEE,CAAC67B,OAAOsZ,QAAQ,IAAIC,MAAAA,WAAW3B,qBAAqB;AAAA,IACxDC,aAAawB,aAAa;AAAA,IAC1BvB,SAAS;AAAA,IACTE,aAAa;AAAA,IACbD,OAAO;AAAA,IACPj1C,OAAOu2C,aAAa;AAAA,EAAA,CACrB,GAEK;AAAA,IAACxB;AAAAA,IAAaC;AAAAA,IAASE;AAAAA,IAAaD;AAAAA,IAAOj1C;AAAAA,EAAAA,IAASk9B,OAEpDwZ,sBAAsBhM,MAAAA,YAC1B,CAAC;AAAA,IAAC1qC,OAAAA;AAAAA,EAAAA,MACA+Y,2BAAAA,IAAC,MAAK,EAAA,WAAQ,UAAS,SAASqa,aAAa,QAAQ,GAAG,MAAK,WAC3D,UAAAra,2BAAA,IAAC,QAAK,MAAM/V,WAAU,cAAa,YAChChD,UACH,QAAA,CAAA,EAAA,CACF,GAEF,CAACgD,WAAUowB,WAAW,CACxB,GAEM+iB,eACJ,OAAOC,oBAAqB,aAAaA,mBAAmBM,qBAExDf,eACJ,OAAOC,oBAAqB,aAAaA,mBAAmBJ,uBAGxDmB,iBAAiBxwC,MAAAA,OAA8B,IAAI,GACnDywC,2BAA2BzwC,MAAAA,OAA8B,IAAI,GAC7D0wC,kBAAkB1wC,MAAgC,OAAA,IAAI,GACtD2wC,oBAAoB3wC,MAAAA,OAA8B,IAAI,GAGtD4wC,iBAAiB5wC,MAAAA,OAAO,EAAK,GAC7Bu8B,WAAWv8B,MAAOnG,OAAAA,KAAK,GACvBg3C,eAAe7wC,MAAAA,OAAOowC,SAAS,GAC/BU,wBAAwB9wC,aAAO,EAAK;AAIxCwuB,QAAAA,oBAAAA,cACA,MAAMkiB,gBAAgBvwC,OACxB;AAEA,QAAM4wC,YAAY,GAAG/gB,EAAE,YACjB7hB,UAAUrT,MAAMC,QAAQ+0C,WAAW,IAAIA,cAAch3C,aACrD8uB,UAAUvpB,aAAa4uB,WAAW,GAClC+jB,gBAAgBhgC,MAAAA,QACpB,MAAOnX,UAAU,OAAOsU,QAAQ8iC,KAAMC,CAAAA,MAAMA,EAAEr3C,UAAUA,KAAK,IAAIgB,QACjE,CAACsT,SAAStU,KAAK,CACjB,GACMs3C,kBAAkBngC,MAAAA,QACtB,MAAM7C,QAAQ5O,OAAQ6vC,CAAYN,WAAAA,QAAQU,aAAaV,OAAOM,MAAM,IAAI,EAAK,GAC7E,CAACI,cAAcrhC,SAAS2gC,KAAK,CAC/B,GACMsC,qBAAqBD,gBAAgB91C,QACrCg2C,eAAezC,cAAc,GAAG5e,EAAE,WAAW4e,WAAW,KAAK/zC,QAC7Dy2C,WAAYxC,UAAU,QAAQviB,WAAasiB,WAAWC,UAAU,MAEhEyC,iBAAiBhN,MAAAA,YACpB/hC,CAAwC,UAAA;AACvCmoC,eAAW,MAAM;AAIf,UAAImG,sBAAsB3wC;AACxB;AAGIN,YAAAA,YAA2BkwC,mBAAmB,CAAA,GAAItkC,OACtD+kC,eAAerwC,UAAU,CAACqwC,eAAerwC,OAAO,IAAI,CAAA,GACpDswC,yBAAyBtwC,UAAU,CAACswC,yBAAyBtwC,OAAO,IAAI,EAC1E;AAEA,UAAIqxC,cAAc;AAElB,UAAI/vC,SAASm3B;AACX,mBAAWwU,KAAKvtC;AACd,cAAIutC,MAAM3rC,SAASm3B,iBAAiBwU,EAAE1sC,SAASe,SAASm3B,aAAa,GAAG;AACxD,0BAAA;AACd;AAAA,UAAA;AAAA;AAKF4Y,sBAAgB,OAClBnB,SAAS;AAAA,QAAC32C,MAAM;AAAA,MAAY,CAAA,GAC5Bo3C,sBAAsB3wC,UAAU,IAC5BwvC,iBAAeA,cAAc,IAAI,GACjCtC,UAAQA,OAAO7qC,KAAK;AAAA,OAEzB,CAAC;AAAA,EAAA,GAEN,CAAC6qC,QAAQsC,eAAeI,eAAe,CACzC,GAEM0B,kBAAkBlN,MAAAA,YAAa/hC,CAAsC,YAAA;AACzE,UAAMkvC,iBAAiBf,kBAAkBxwC,SACnCwxC,iBAAiBnvC,QAAMhC,kBAAkBw9B,cAAcx7B,QAAMhC,SAAS,MACtEuuC,gBAAc2C,gBAAgBhxC,SAASixC,cAAc,KAAK;AAE5D5C,sBAAgB6B,eAAezwC,YACjCywC,eAAezwC,UAAU4uC,eAEzBsB,SAAS;AAAA,MAAC32C,MAAM;AAAA,MAAuBq1C,aAAAA;AAAAA,IAAAA,CAAY;AAAA,KAEpD,CAAE,CAAA,GAEC6C,qBAAqBrN,kBACxB5J,CAAc,MAAA;AACJ,aAAA;AAAA,MAACjhC,MAAM;AAAA,MAAgBG,OAAO8gC;AAAAA,IAAAA,CAAE,GAEzCmW,sBAAsB3wC,UAAU,IAE5BsuC,YAAUA,SAAS9T,CAAC,GAExB4B,SAASp8B,UAAUw6B,GAEfyC,YAAUA,SAASzC,CAAC,GACpBgV,iBAAeA,cAAc,IAAI,GAErCe,gBAAgBvwC,SAASg5B,MAAM;AAAA,EAAA,GAEjC,CAACiE,UAAUqR,UAAUkB,aAAa,CACpC,GAEMkC,oBAAoBtN,MAAAA,YACvB/hC,CAAsC,YAAA;AACjCA,QAAAA,QAAMxI,QAAQ,aAAa;AAG7B,UAFAwI,QAAMgnC,kBAEF,CAAC4H,mBAAoB;AAEzB,YAAMU,eAAeX,gBAAgBF,KAAMC,SAAMA,IAAEr3C,UAAU+0C,WAAW,GAClEmD,cAAcD,eAAeX,gBAAgB1iC,QAAQqjC,YAAY,IAAI,IACrEE,mBAAmBb,iBAAiBY,cAAc,KAAKX,kBAAkB;AAE3EY,0BACF3B,SAAS;AAAA,QAAC32C,MAAM;AAAA,QAAuBG,OAAOm4C,iBAAiBn4C;AAAAA,QAAOk1C,aAAa;AAAA,MAAA,CAAK;AAG1F;AAAA,IAAA;AAGEvsC,QAAAA,QAAMxI,QAAQ,WAAW;AAG3B,UAFAwI,QAAMgnC,kBAEF,CAAC4H,mBAAoB;AAEnBU,YAAAA,iBAAeX,gBAAgBF,KAAMC,CAAMA,QAAAA,IAAEr3C,UAAU+0C,WAAW,GAClEmD,gBAAcD,iBAAeX,gBAAgB1iC,QAAQqjC,cAAY,IAAI,IACrEE,qBACJb,gBACEY,kBAAgB,KACZX,qBAAqB,KACpBA,qBAAqBW,gBAAc,KAAKX,kBAAkB;AAG/DY,4BACF3B,SAAS;AAAA,QAAC32C,MAAM;AAAA,QAAuBG,OAAOm4C,mBAAiBn4C;AAAAA,QAAOk1C,aAAa;AAAA,MAAA,CAAK;AAG1F;AAAA,IAAA;AAGEvsC,QAAAA,QAAMxI,QAAQ,UAAU;AACjB,eAAA;AAAA,QAACN,MAAM;AAAA,MAAc,CAAA,GAC9Bo3C,sBAAsB3wC,UAAU,IAC5BwvC,iBAAeA,cAAc,IAAI,GACrCe,gBAAgBvwC,SAASg5B,MAAM;AAE/B;AAAA,IAAA;AAGF,UAAM34B,SAASgC,QAAMhC,QACfyxC,SAAStB,kBAAkBxwC;AAG9B8xC,SAAAA,WAAWzxC,UAAUyxC,QAAQvxC,SAASF,MAAM,MAC7C,CAACwuC,iCAAiC3uC,SAASmC,QAAMxI,GAAG,GACpD;AACA02C,sBAAgBvwC,SAASg5B,MAAM;AAE/B;AAAA,IAAA;AAAA,EACF,GAEF,CAACyV,aAAauC,iBAAiBC,oBAAoBzB,aAAa,CAClE,GAEMuC,oBAAoB3N,kBACvB/hC,CAAyC,YAAA;AAClC2vC,UAAAA,YAAY3vC,QAAMksC,cAAc70C;AAE7B,aAAA;AAAA,MAACH,MAAM;AAAA,MAAgBo1C,OAAOqD;AAAAA,IAAAA,CAAU,GAE7CxC,iBAAeA,cAAcwC,SAAS;AAAA,KAE5C,CAACxC,aAAa,CAChB,GAEMyC,eAAe7N,kBAAY,MAAM;AAC5B,aAAA;AAAA,MACP7qC,MAAM;AAAA,MACNo1C,OAAOj1C,QAAQs2C,YAAYt2C,OAAOm3C,aAAa,IAAI;AAAA,IAAA,CACpD;AAAA,EAAA,GACA,CAACA,eAAeb,aAAat2C,KAAK,CAAC,GAEhCw4C,mBAAmB9N,MAAAA,YACtB/hC,CAAwC,YAAA;AAClCqsC,gBACHwB,SAAS;AAAA,MAAC32C,MAAM;AAAA,IAAA,CAAc,GAE1BqhC,WAASA,QAAQv4B,OAAK,GACtBqtC,eAAauC;EAAa,GAGlC,CAACvD,SAAS9T,SAAS8U,aAAauC,YAAY,CAC9C,GAEME,0BAA0B/N,MAAAA,YAAY,MAAM;AAChDuM,0BAAsB3wC,UAAU;AAAA,KAC/B,EAAE,GAECoyC,0BAA0BhO,MAAAA,YAAY,MAAM;AAChDuM,0BAAsB3wC,UAAU;AAAA,KAC/B,EAAE,GAECqyC,yBAAyBjO,MAAAA,YAAY,MAAM;AACtC,aAAA;AAAA,MAAC7qC,MAAM;AAAA,IAAa,CAAA,GAC7B6iC,SAASp8B,UAAU,IACfi9B,YAAUA,SAAS,EAAE,GACrBuS,iBAAeA,cAAc,IAAI,GACrCe,gBAAgBvwC,SAASg5B,MAAM;AAAA,EAAA,GAC9B,CAACiE,UAAUuS,aAAa,CAAC,GAEtB8C,yBAAyBlO,kBAAY,MAAM;AACtC,aAAA;AAAA,MAAC7qC,MAAM;AAAA,IAAA,CAAc;AAAA,EAChC,GAAG,EAAE;AAGLuG,QAAAA,UAAU,MAAM;AAEVmwC,QAAAA,cAAcS,aAAa1wC,SAAS;AACtC0wC,mBAAa1wC,UAAUiwC,WAEnBA,cAAcv1C,WAChBw1C,SAAS;AAAA,QAAC32C,MAAM;AAAA,QAAgBG,OAAOu2C;AAAAA,MAAAA,CAAU,GACjD7T,SAASp8B,UAAUiwC;AAGrB;AAAA,IAAA;AAIEA,kBAAc7T,SAASp8B,YACzBo8B,SAASp8B,UAAUiwC,aAAa,MAEhCC,SAAS;AAAA,MAAC32C,MAAM;AAAA,MAAgBG,OAAOu2C,aAAa;AAAA,IAAA,CAAK;AAAA,KAE1D,CAACA,SAAS,CAAC,GAGdnwC,MAAAA,UAAU,MAAM;AACV,KAAC4uC,WAAWtS,SAASp8B,WACvBkwC,SAAS;AAAA,MAAC32C,MAAM;AAAA,MAAuBG,OAAO0iC,SAASp8B;AAAAA,IAAAA,CAAQ;AAAA,KAEhE,CAAC0uC,OAAO,CAAC,GAGZ5uC,MAAAA,UAAU,MAAM;AACd,UAAMyyC,cAAc/B,kBAAkBxwC;AAEtC,QAAI,CAACuyC,YAAa;AAElB,UAAMZ,iBAAeX,gBAAgBF,KAAMC,CAAMA,QAAAA,IAAEr3C,UAAU+0C,WAAW;AAExE,QAAIkD,gBAAc;AACVC,YAAAA,gBAAcZ,gBAAgB1iC,QAAQqjC,cAAY,GAClDa,oBAAoBD,YAAYrZ,WAAW0Y,aAAW;AAE5D,UAAIY,mBAAmB;AACrB,YAAIha,UAAUga,iBAAiB;AAE7B;AAGFvZ,6BAAqBuZ,iBAAiB;AAAA,MAAA;AAAA,IACxC;AAAA,EACF,GACC,CAAC/D,aAAauC,eAAe,CAAC;AAE3BpI,QAAAA,cAAc/3B,MAAAA,QAAQ,MAAM;AAC5B,QAAA,CAACub,WAAW,CAACzO,YAAYjkB;AACpB,aAAA;AAAA,QACL,cAAc;AAAA,QACd,SAAW44C;AAAAA,MACb;AAAA,EAID,GAAA,CAAC30B,UAAU20B,wBAAwBlmB,SAAS1yB,KAAK,CAAC,GAE/C+4C,uBAAuB5hC,MAAAA,QAC3B,MACE4W,QAAQrtB,IAAKogC,CAAAA,QACPA,QAAM,IAAU,IAChBA,QAAM,KACNA,QAAM,IAAU,IAEbA,MAAI,CACZ,GACH,CAAC/S,OAAO,CACV,GACMirB,oBAAoB7hC,cAAQ,MAAM4W,QAAQrtB,IAAKogC,CAAMn9B,QAAAA,KAAK4a,IAAIuiB,MAAI,GAAG,CAAC,CAAC,GAAG,CAAC/S,OAAO,CAAC,GACnFkrB,kBAA+C9hC,MAAAA,QACnD,MAAO,OAAO4+B,cAAe,WAAWA,aAAa72C,cACrD,CAAC62C,UAAU,CACb,GAEMmD,kBAAkBxO,MAAAA,YACrB/hC,CAAyC,YAAA;AACxC4vC,oBAEIU,gBAAgBvF,WAASuF,gBAAgBvF,QAAQ/qC,OAAK,GAE1Dm1B,KAAK,MAAM+Y,gBAAgBvwC,SAASg5B,MAAAA,CAAO;AAAA,EAE7C,GAAA,CAAC2Z,iBAAiBV,YAAY,CAChC,GAEMY,iBAAiBhiC,MAAAA,QACrB,MACE,CAAC8M,YAAY,CAACE,YAAY4xB,aACvBh9B,2BAAA,IAAA,KAAA,EAAI,eAAa0+B,UAAU,SAASsB,sBACnC,UAAChgC,2BAAA,IAAA,QAAA,EACC,cAAW,QACX,UAAU0+B,UACV,UAAAz0C,WACA,MAAMwpC,MAAAA,iBACN,MAAK,SACL,SAASwM,mBACT,GAAIC,iBACJ,SAASC,gBAAgB,CAAA,EAE7B,CAAA,IACEl4C,QACN,CACEijB,UACAwzB,UACAz0C,WACAk2C,iBACAnD,YACAgD,sBACAC,mBACAC,iBACA90B,QAAQ,CAEZ,GAEMi1B,aAAajiC,MAAAA,QAAQ,MACrB89B,UAAU,OACRj1C,UAAU,OACLs2C,YAAYt2C,OAAOm3C,aAAa,IAGlC,KAGFlC,OACN,CAACkC,eAAelC,OAAOqB,aAAat2C,KAAK,CAAC,GAEvC4jB,QACH7K,2BAAAA,IAAA,WAAA,KACKwO,WACJ,yBAAuBiwB,cACvB,qBAAkB,QAClB,iBAAeC,UACf,aAAWP,WACX,gBAAe,OACf,cAAa,OACb,aAAY,OACZ,QAAAxhC,SACA,aACA,gBACA,UACA,UAAA1S,WACA,MACA,WAAW0vB,WAAWgiB,qBACtB,IACA,WAAU,UACV,UAAU2D,mBACV,SAASM,wBACT,SAASH,kBACT,SACA,QACA,QACA,UACA,KAAK3B,iBACL,MAAK,YACL,YAAY,IACZ,QAAQxH,UAAU8J,gBAClB,OAAOC,WAAAA,CAEV,GAEKC,uBAAuB3O,kBAC1B/hC,CAAyC,YAAA;AAEpCA,YAAMxI,QAAQ,SACZ+0C,eAAa2B,gBAAgBvwC,SAASg5B,MAAM;AAAA,EAAA,GAGpD,CAAC4V,WAAW,CACd,GAEM1yC,UAAU2U,MAAAA,QAAQ,MAClBmgC,gBAAgB91C,WAAW,IAAU,sCAGtC,SACC,EAAA,WAAQ,yBACR,WAAW63C,sBACX,SAAS,GACT,GAAIxD,SACJ,UAAU,IAEV,UAAC98B,+BAAA,OAAA,EACC,IAAG,MACH,wBAAsB,IACtB,WAAQ,6BACR,IAAIm+B,WACJ,KAAKJ,mBACL,MAAK,WACL,OAAO,GAENQ,UAAAA,gBAAgB52C,IAAK60C,CAAW,aAAA;AAC/B,UAAM+D,SACJvE,gBAAgB,OAAOQ,SAAOv1C,UAAU+0C,cAAcoC,kBAAkB5B;AAE1E,0CACG,oBACC,EAAA,IAAI,GAAGpf,EAAE,WAAWof,SAAOv1C,KAAK,IAEhC,UAAU+3C,oBACV,UAAUuB,QACV,OAAO/D,SAAOv1C,OAEbstB,UAAa6oB,MAAAA,aAAAA,aAAaZ,QAAM,GAAG;AAAA,MAClCtxB,UAAUyO;AAAAA,MACVO,UAAUqmB;AAAAA,MACVra,UAAUiW,eAAeoE,SAAS,IAAI;AAAA,IAAA,CACvC,EATI/D,GAAAA,SAAOv1C,KAUd;AAAA,EAAA,CAEH,EACH,CAAA,EACF,CAAA,GAED,CACD+0C,aACAoC,eACAG,iBACAS,oBACAsB,sBACAljB,IACA0f,SACAqB,WACAhC,aACAxiB,SACAyjB,YAAY,CACb,GAEKoD,UAAUpiC,MAAAA,QAAQ,MAClBk/B,gBACKA,cACL;AAAA,IACE7zC;AAAAA,IACAg3C,QAAQ,CAAC/B;AAAAA,IACTgC,cAAc5C,gBAAgBvwC;AAAAA,IAC9BwtC,cAAc2E;AAAAA,IACdzE,cAAc0E;AAAAA,EAAAA,GAEhB9B,wBACF,IAGEW,uBAAuB,IAClB,OAIPx+B,2BAAA,IAAC,WACC,OAAO,IACP,eAAa,IACb,SACA,oBAAoBs8B,0CACpB,qBAAmB,IACnB,cAAcoD,yBACd,cAAcC,yBACd,MAAMjB,UACN,UAAS,QACT,WAAWrC,gCACX,QAAM,IACN,QACA,KAAKwB,0BACL,kBAAkBC,gBAAgBvwC,SAC9B+iC,GAAAA,SACJ,GAEH,CACD7mC,SACAi1C,UACAF,oBACAkB,yBACAC,yBACArP,SACA3jB,QACA2wB,aAAa,CACd;AAGC,SAAA1qB,2BAAA,KAAC,oBACC,EAAA,WAAQ,gBACR,QAAQ+rB,gBACR,SAASE,iBACT,WAAWI,mBACX,KAAKrB,gBAEJ/yB,UAAAA;AAAAA,IAAAA;AAAAA,IACA21B;AAAAA,EAAAA,GACH;AAEJ,CAAC;AAED7D,kBAAkBz8B,cAAc;AAQzB,MAAMygC,eAAehE,mBC1rBfiE,oBAAoBlzB,iBAAAA,OAAOmzB,GAAEjzB,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAQzC,yGAEYizB,eAAepzB,iBAAAA,OAAO8L,MAAM,EAAC5L,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAGzC,iCCUYkzB,cAAc1yB,MAAAA,WAAW,SACpC/lB,OACA0G,KACA;AACM,QAAA;AAAA,IAACuQ;AAAAA,IAAUqU;AAAAA,IAAWotB;AAAAA,IAAWt4C,OAAOu4C,WAAW;AAAA,IAAG,GAAGzyB;AAAAA,MAAalmB,OACtEI,QAAQ+C,aAAaw1C,QAAQ,GAC7B,CAAClR,MAAMmR,OAAO,IAAIj1C,MAAAA,SAAS,EAAK,GAChCk1C,mBAAmB/zC,MAAAA,OAAiC,IAAI,GACxDg0C,oBAAoBh0C,MAAAA,OAA8B,IAAI,GAEtDi0C,WAAW1P,MAAAA,YAAY,MAAMuP,QAAQ,EAAK,GAAG,CAAE,CAAA,GAC/CI,SAAS3P,MAAAA,YAAY,MAAMuP,QAAQ,EAAI,GAAG,CAAA,CAAE;AAElDhzC,uBAAqBmzC,UAAU,MAAM,CAACF,iBAAiB5zC,SAAS6zC,kBAAkB7zC,OAAO,CAAC;AAE1F,QAAMg0C,WAAWnjC,MAAQ,QAAA,MAAM0V,MAAAA,SAASC,QAAQxU,QAAQ,EAAE5S,OAAOqnB,MAAc,cAAA,GAAG,CAACzU,QAAQ,CAAC,GAEtFmrB,QAAQtsB,cAAQ,MAAM;AAC1B,UAAMwL,MAAM23B,SAAS94C;AAEjBmrB,QAAAA,aAAahK,MAAMgK,WAAW;AAC1B4tB,YAAAA,eAAe52C,KAAKmhC,KAAKnY,YAAY,CAAC,GACtC6tB,cAAc72C,KAAKC,MAAM+oB,YAAY,CAAC;AAE5C,aAAO,CACL,GAAG2tB,SAASzlC,MAAM,GAAG0lC,eAAe,CAAC,GACpCxhC,2BAAA,IAAA,SAAA,EACC,eAAa,IACb,SACEA,2BAAAA,IAAC,OAAM,EAAA,IAAG,MAAK,UAAS,QAAO,SAAStX,OAAO,OAC5C64C,UAASzlC,SAAAA,MAAM0lC,eAAe,GAAG53B,MAAM63B,WAAW,GACrD,GAGF,MACA,WAAU,OACV,QAAM,IACN,KAAKL,mBAEL,UAACphC,2BAAAA,IAAA,cAAA,EACC,UAAU,GACV,MAAK,SACL,SAAS+vB,OAAOsR,WAAWC,QAC3B,SAAS,GACT,KAAKH,kBACL,UAAUpR,MACV,MAAK,SAAG,CAAA,EAAA,GAbN,QAeN,GACA,GAAGwR,SAASzlC,MAAM8N,MAAM63B,WAAW,CAAC;AAAA,IAAA;AAIjCF,WAAAA;AAAAA,EAAAA,GACN,CAACF,UAAUC,QAAQ1tB,WAAWmc,MAAMwR,UAAU74C,KAAK,CAAC;AAEvD,SACGsX,2BAAAA,IAAA,mBAAA,EAAkB,WAAQ,eAAkBwO,GAAAA,WAAW,KACrDkc,UAAAA,MAAM/iC,IAAI,CAACqkC,MAAME,8CACfpZ,MAAAA,UACEoZ,EAAAA,UAAAA;AAAAA,IAAAA,YAAY,KACXlsB,2BAAA,IAAC,KAAI,EAAA,eAAW,IAAC,IAAG,MAAK,UAAUtX,OAChCs4C,uBAAchhC,+BAAA,MAAA,EAAK,OAAK,IAAC,cAAC,CAAA,GAC7B;AAAA,IAEDA,2BAAA,IAAA,KAAA,EAAI,IAAG,MAAMgsB,UAAK,KAAA,CAAA;AAAA,EAAA,KANNE,SAOf,CACD,GACH;AAEJ,CAAC;AACD6U,YAAY7gC,cAAc;ACrFnB,SAASwhC,YAAY;AAAA,EAACr5C,OAAAA;AAAiB,GAAc;AACpD,QAAA;AAAA,IAACqc;AAAAA,EAAAA,IAAS/b,MAAAA,YAAYN,OAAK;AAE1B,SAAA;AAAA,IACL,mBAAmB;AAAA,MACjBqB,SAAS;AAAA,IACX;AAAA,IAEA,KAAO;AAAA,IACP,MAAQ;AAAA,IACR,OAAS;AAAA,IACT,QAAU;AAAA,IACV,YAAc;AAAA,IACd,gBAAkB;AAAA,IAClB,SAAW;AAAA,IACX,YAAcgb,MAAM0S;AAAAA,EACtB;AACF;AAEO,SAASuqB,8BACdr5C,OACa;AACP,QAAA;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAYL,YAAAA,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMs5C,WAAY9xB,CAAc,cAAA;AAAA,IAAC,MAAM;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EAAQ,EAAG;AAC/E;AASO,SAAS+xB,qBAAqBv5C,OAA0D;AAC7F,SAAKA,MAAMw5C,WAEJt3B,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAFqBA,iBAAAA;AA4B9B;AC3Dau3B,MAAAA,gBAAgBhjC,0BAC3B,6BACA;AAAA,EAACa,SAAS;AAAG,CACf;ACZO,SAAAoiC,YAAA;AAAA,SACE1iC,MAAAA,WAAAyiC,aAAwB;AAAC;ACgFlC,SAASE,oBACPl1C,iBACAo8B,eACAv7B,QACS;AACL,SAAA,CAACb,mBAAmB,CAACo8B,gBAAsB,KAG7CrD,wBAAwB/4B,iBAAiBa,MAAM,KAC/Ck4B,wBAAwBqD,eAAev7B,MAAM;AAEjD;AAEA,MAAMs0C,eAAex0B,iCAAAA,OAAO8a,KAAK,EAAC5a,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAEhC1B,wBAAwBu1B,aAAaC,+BAA+BE,oBAAoB,GAEpFM,kBAAkBz0B,iBAAAA,OAAO0R,SAAS,EAACxR,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CASxC,0HAEKu0B,iBAAiB10B,iBAAAA,OAAOwN,IAAI,EAACtN,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CASlC,yGAEKw0B,eAAe30B,iBAAAA,OAAOkJ,IAAI,EAAChJ,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAIhC,oCAEKy0B,eAAe50B,iBAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAG/B,iCAEK00B,gBAAgB70B,iBAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAKhC,4DAEK20B,eAAe90B,iBAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAG/B,iCAEK40B,aAAap0B,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA,GAI5B;AAAA,IAAA+2C,sBAAAC;AAAAA,IAAAC,4BAAAC;AAAAA,IAAAtjC;AAAAA,IAAAujC,YAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA7lB;AAAAA,IAAA8lB;AAAAA,IAAAC;AAAAA,IAAAja,QAAAkQ;AAAAA,IAAAzsB,QAAA2N;AAAAA,IAAA9a;AAAAA,IAAAuN,QAAAqjB;AAAAA,IAAAx/B,OAAAy/B;AAAAA,EAAAA,IAeI/nC,OACJ4gC,SAAeH,aACfI,gBAAsBiQ,aAAalQ,OAAMj8B,WAAYmsC,UAAU,KAAA,OAAYlQ,OAAM58B,SACjFS,kBAAwBs2B,mBAAmB,EAAC/2B,SAC5CqgB,SAAelhB,aAAa6uB,UAAU,GACtCvN,SAAethB,aAAa2kC,UAAU,GACtCx/B,QAAcnF,aAAa4kC,SAAS,GACpCrhC,MAAY5B,MAAAA,OAAA,IAAkC,GAC9C01C,aAAmB11C,MAAAA,OAAA,IAAkC,GACrDkiC,QAAczK,YACd;AAAA,IAAAyC;AAAAA,EAAAA,IAAqBgI,OACrB8T,UAAgB,GAAGhmB,EAAE,UACrBimB,kBAAwBz2C,CAAAA,CAAQu2C,WAAYN,oBAAyB,IACrES,aAAmB12C,EAAQq2C,UAAWI;AAAez3C,MAAAA;AAAAF,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAE2B7R,KAAAA,MAAMoD,IAAGzB,SAAQ7B,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAAjGgS,MAAAA,oBAAkEke,cAAchwB,EAAiB;AAACG,MAAAA;AAAAL,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAGhG1R,KAAAA,MAAM+2C,WAAUv1C,SAAQ7B,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAF1BgS,MAAAA,oBACEqlC,qBACAh3C,EACF;AAAC,MAAA0C,IAAAC;AAAAhD,WAAAi3C,aAESl0C,KAAAA,MAAA;AACHk0C,iBAGD3zC,IAAGzB,WACLi5B,qBAAqBx3B,IAAGzB,OAAQ;AAAA,EAEjCmB,GAAAA,KAAA,CAACi0C,WAAW3zC,GAAG,GAACtD,OAAAi3C,WAAAj3C,OAAA+C,IAAA/C,OAAAgD,OAAAD,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,CAAA,IAPnB2B,gBAAUoB,IAOPC,EAAgB;AAACkgB,MAAAA;AAAAljB,IAAA,CAAA,MAAAqB,mBAAArB,EAAA47B,CAAAA,MAAAA,cAAA57B,EAAAy3C,CAAAA,MAAAA,WAAAz3C,SAAAy9B,iBAIhBva,KAAAhf,CAAA,UAAA;AACM,QAAA,CAAC03B,cAAU,CAAK6b;AAAO;AAE3B,UAAAv1C,SAAAiB,SAAAm3B;AAEIp4B,eAAWq0C,oBAAoBl1C,iBAAiBo8B,eAAev7B,MAAM,KAKrEgC,MAAKxI,QAAS,aAChBwI,MAAKgnC,eAAgB,GACrBhnC,MAAKinC,gBAAAA,GACLsM;EAAS,GAEZz3C,OAAAqB,iBAAArB,OAAA47B,YAAA57B,OAAAy3C,SAAAz3C,OAAAy9B,eAAAz9B,OAAAkjB,MAAAA,KAAAljB,EAAA,CAAA,GAjBLiS,iBACEiR,EAmBF;AAACsD,MAAAA;AAAAxmB,IAAA,EAAA,MAAAqB,mBAAArB,EAAA47B,EAAAA,MAAAA,cAAA57B,EAAAw3C,EAAAA,MAAAA,kBAAAx3C,UAAAy9B,iBAGCjX,KAAAoV,cACE4b,mBAAcnlC,CAAA,YAAA;AAEZ,UAAAwlC,WAAe3zC,QAAKhC;AAEhBA,iBAAWq0C,oBAAoBl1C,iBAAiBo8B,eAAev7B,QAAM,KAKzEs1C,eAAe;AAAA,EAAA,IACfx3C,QAAAqB,iBAAArB,QAAA47B,YAAA57B,QAAAw3C,gBAAAx3C,QAAAy9B,eAAAz9B,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAAzmB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACJ0U,KAAAA,MAAOnjB,CAAAA,IAAGzB,OAAA,GAAS7B,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAbrBwC,qBACEgkB,IAYAC,EACF;AAACC,MAAAA;AAAA1mB,IAAAu3C,EAAAA,MAAAA,UAAAv3C,EAAA,EAAA,MAAA03C,WAAA13C,EAAAy3C,EAAAA,MAAAA,WAAAz3C,EAAA,EAAA,MAAA23C,mBAAA33C,UAAA43C,cAMQlxB,KAAAkxB,cACEtjC,2BAAAA,IAAA,cAAA,EACC,UAAC4S,2BAAA,KAAA,MAAA,EAAW,OAAA,cAAsB,SAAA,GAChC,UAAA;AAAA,IAAA5S,+BAAC,KAAU,EAAA,MAAA,GAAY,SAAC,GACrBijC,UACC,UAAAjjC,+BAAC,MAASojC,EAAAA,IAAAA,SAAe,MAAA,GAAU,QAAA,YAC3B,iBACR,CAAA,GAEJ;AAAA,IACCC,kDACE,KAAS,EAAA,MAAA,QACR,UAACrjC,+BAAA,QAAA,EACY,cAAA,gBACD,UAAA,CAACmjC,SACL9L,MAAQA,iBACT,MAAA,SACI8L,SAAM,SACN,SAAC,GAAA,EAEd,CAAA;AAAA,EAAA,EAAA,CAEJ,EACF,CAAA,GACDz3C,QAAAu3C,QAAAv3C,QAAA03C,SAAA13C,QAAAy3C,SAAAz3C,QAAA23C,iBAAA33C,QAAA43C,YAAA53C,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA;AAAA4mB,MAAAA;AAAA5mB,YAAA6T,YAED+S,oCAAC,eAAoB,EAAA,MAAC,GAAOwwB,KAAAA,YAAsB,UAAC,IAC1C,UACV,GAAgBp3C,QAAA6T,UAAA7T,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA;AAAA6mB,MAAAA;AAAA7mB,YAAAs3C,UAEfzwB,KAAAywB,UAAUhjC,+BAAC,gBAAmB,UAAE,OAAA,CAAA,GAAetU,QAAAs3C,QAAAt3C,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA;AAAA+mB,MAAAA;AAAA/mB,IAAA0mB,EAAAA,MAAAA,MAAA1mB,UAAA4mB,MAAA5mB,EAAA,EAAA,MAAA6mB,MA/BlDE,MAACG,2BAAA,KAAA,cAAA,EAAuB,WAAA,UACrBR,UAAAA;AAAAA,IAAAA;AAAAA,IA0BDE;AAAAA,IAICC;AAAAA,EAAAA,GACH,GAAe7mB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAA6mB,IAAA7mB,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA;AAAAgnB,MAAAA;AAAAhnB,IAAA,EAAA,MAAAihB,UAAAjhB,EAAA8T,EAAAA,MAAAA,UAAA9T,EAAAqhB,EAAAA,MAAAA,UAAArhB,UAAA+mB,OAjCjBC,MAAC1S,2BAAA,IAAA,gBAAA,EAAuB2M,QAAa3d,KAAawQ,QAAgBuN,QAChE0F,eAiCF,GAAiB/mB,QAAAihB,QAAAjhB,QAAA8T,QAAA9T,QAAAqhB,QAAArhB,QAAA+mB,KAAA/mB,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA;AAAAinB,MAAAA;AAAA,SAAAjnB,EAAAgnB,EAAAA,MAAAA,OAAAhnB,UAAAkF,SAnCnB+hB,qCAAC,iBAAwB,EAAA,WAAA,cAAoB/hB,OAC3C8hB,UAAAA,IAmCF,CAAA,GAAkBhnB,QAAAgnB,KAAAhnB,QAAAkF,OAAAlF,QAAAinB,OAAAA,MAAAjnB,EAAA,EAAA,GApClBinB;AAoCkB,CAErB;AAED8vB,WAAWviC,cAAc;AAOlB,MAAMsjC,SAASn1B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAA,QAAAtD,IAAAC,qBAAAA,EAAA,EAAA,GAI/B83C,SAAezB,aACf;AAAA,IAAA1S;AAAAA,MAAgB9uB,YAAY;AAAC,MAAAkjC,eAAAC,cAAApkC,UAAAujC,YAAAE,QAAAC,QAAA7lB,IAAA8K,YAAAgb,gBAAAC,SAAAhb,SAAAiR,YAAA5qB,WAAAhP,QAAA5T,IAAAG,IAAA0C,IAAAC,IAAAkgB,IAAAsD,IAAAC;AAAAzmB,WAAApD,SAC7B;AAAA,IAAAo6C,sBAAA92C;AAAAA,IAAAg3C,4BAAA72C;AAAAA,IAAA63C,YAAAn1C;AAAAA,IAAAo1C,YAAAn1C;AAAAA,IAAA6Q;AAAAA,IAAAujC;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAA7lB;AAAAA,IAAA8K;AAAAA,IAAAgb;AAAAA,IAAAC;AAAAA,IAAAhb;AAAAA,IAAAnT,SAAApG;AAAAA,IAAAsa,QAAAkQ;AAAAA,IAAAtpB,UAAA4zB;AAAAA,IAAAlkC;AAAAA,IAAA5O,OAAAshB;AAAAA,IAAA2U,SAAA8c;AAAAA,IAAAj9C,SAAAyrB;AAAAA,IAAA,GAAA3D;AAAAA,EAAAA,IAsBIlmB,OAAKoD,OAAApD,OAAAoD,OAAAg4C,eAAAh4C,OAAAi4C,cAAAj4C,OAAA6T,UAAA7T,OAAAo3C,YAAAp3C,OAAAs3C,QAAAt3C,OAAAu3C,QAAAv3C,OAAA0xB,IAAA1xB,OAAAw8B,YAAAx8B,OAAAw3C,gBAAAx3C,QAAAy3C,SAAAz3C,QAAAy8B,SAAAz8B,QAAA0tC,YAAA1tC,QAAA8iB,WAAA9iB,QAAA8T,QAAA9T,QAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAymB,OAAAuxB,gBAAAh4C,EAAA,CAAA,GAAAi4C,eAAAj4C,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAo3C,aAAAp3C,EAAA,CAAA,GAAAs3C,SAAAt3C,EAAA,CAAA,GAAAu3C,SAAAv3C,EAAA,CAAA,GAAA0xB,KAAA1xB,EAAA,CAAA,GAAAw8B,aAAAx8B,EAAA,CAAA,GAAAw3C,iBAAAx3C,EAAA,CAAA,GAAAy3C,UAAAz3C,EAAA,EAAA,GAAAy8B,UAAAz8B,EAAA,EAAA,GAAA0tC,aAAA1tC,EAAA,EAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAA8T,SAAA9T,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,GAAAgD,KAAAhD,EAAA,EAAA,GAAAkjB,KAAAljB,EAAA,EAAA,GAAAwmB,KAAAxmB,EAAA,EAAA,GAAAymB,KAAAzmB,EAAA,EAAA;AArBei3C,QAAAA,YAAA/2C,OAAgB3D,cAAhB2D,IACMi3C,kBAAA92C,OAAuB9D,cAAvB8D,IAChB+3C,iBAAAr1C,OAAkBxG,aAAlBwG,IACZo1C,aAAAn1C,OAAczG,aAAdyG,IAUS2rB,cAAAzL,OAAe3mB,aAAf2mB,IAIFyhB,YAAAne,OAAajqB,aAAbiqB,IAEEsd,WAAArd,OAAgBlqB,cAAhBkqB,IAGX4xB,eAAqBL,kBAAkBD,OAAM3zB,YAAa,UAC1DgX,cAAoB6c,iBAAiBF,OAAM5c,WAAYyI,MAAKmU,OAAA5c,UAE5DngC,UAD6B2a,wBAAAA,IACO,KAAWmuB,UAC/CtG,SAAeH,UAAAA,GACfI,gBAAsBiQ,aAAalQ,OAAMj8B,WAAYmsC,UAAU,KAAA,OAAYlQ,OAAM58B,SACjFS,kBAAwBs2B,mBAAmB,EAAC/2B,SAC5Cs3C,aAAmBn4C,aAAaq4C,cAAc,GAC9C9uB,UAAgBvpB,aAAa4uB,WAAW,GACxCvK,WAAiBrkB,aAAas4C,YAAY,GAC1CnzC,QAAcnF,aAAa4kC,SAAS,GACpCxJ,UAAgBp7B,aAAaq7B,WAAW,GACxCkd,YAAkB52C,MAAAA,OAAA,IAAkC,GACpD62C,aAAmB72C,aAAA,IAAkC,GACrD82C,UAAgB92C,aAAA,IAAkC,GAClD+2C,oBAA0B/2C,MAAAA,OAAA,IAA+B;AAACglB,MAAAA;AAAA1mB,YAAAy8B,WAGxD/V,KAAAxiB,CAAA,UAAA;AACEu4B,cAAUv4B,KAAK;AAEf,UAAAhC,SAAegC,MAAKhC,QACpBw2C,cAAoBF,QAAO32C;AAEvB62C,QAAAA,eAAex2C,WAAWo2C,UAASz2C,SAAQ;AAC7Cm5B,0BAAoB0d,WAAW;AAAC;AAAA,IAAA;AAK9BA,QAAAA,eAAex2C,WAAWq2C,WAAU12C,SAAQ;AAC9Ci5B,2BAAqB4d,WAAW;AAAC;AAAA,IAAA;AAK/B7e,kBAAc31B,MAAKhC,MAAO,MAC5Bu2C,kBAAiB52C,UAAWqC,MAAKhC;AAAAA,EAAA,GAEpClC,QAAAy8B,SAAAz8B,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA;AAtBH68B,QAAAA,cAAoBnW,IA0BpBgxB,UAAgB,GAAGhmB,EAAE,UAErBinB,sBAA4Bj3C,aAAAnF,MAAgC;AAACqqB,MAAAA;AAAA5mB,IAAAqB,EAAAA,MAAAA,mBAAArB,UAAAy9B,iBAKzB7W,KAAAA,MAAA;AAC9B+xB,wBAAmB92C,WACrBuqC,aAAauM,oBAAmB92C,OAAQ,GAG1C82C,oBAAmB92C,UAAWwqC,WAAA,MAAA;AAC5B,YAAA/R,gBAAAn3B,SAAAm3B;AAA4C,UAExCA,kBAAkBic,oBAAoBl1C,iBAAiBo8B,eAAenD,aAAa,GAAC;AACtF,cAAAud,WAAeY,kBAAiB52C;AAAQ,YAEpC,CAACK,YAAM,CAAKiB,SAAAyL,KAAAxM,SAAuBF,QAAM,GAAC;AAE5C,gBAAA02C,gBAAoBJ,QAAO32C;AACvB62C,2BAAa5d,qBAAqB4d,aAAW;AAAC;AAAA,QAAA;AAKpDx2C,iBAAM24B,MAAO;AAAA,MAAA;AAAA,OAAC,CAEd;AAAA,EACL76B,GAAAA,QAAAqB,iBAAArB,QAAAy9B,eAAAz9B,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA;AAtBD,QAAA64C,kBAAwBjyB;AAsBYC,MAAAA;AAAA7mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAoB9B8U,KAAAvS,+BAAA,OAAA,EAAUgkC,KAAAA,WAAqB,UAAA,EAAK,CAAA,GAAAt4C,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA;AAAA+mB,MAAAA;AAAA/mB,IAAAi3C,EAAAA,MAAAA,aAAAj3C,UAAAk4C,cAAAl4C,EAAA,EAAA,MAAAm4C,cAAAn4C,EAAA6T,EAAAA,MAAAA,YAAA7T,EAAAo3C,EAAAA,MAAAA,cAAAp3C,EAAAs3C,EAAAA,MAAAA,UAAAt3C,EAAAu3C,EAAAA,MAAAA,UAAAv3C,EAAA,EAAA,MAAAm3C,mBAAAn3C,EAAA,EAAA,MAAA0xB,MAAA1xB,EAAAw3C,EAAAA,MAAAA,kBAAAx3C,UAAAy3C,WAAAz3C,EAAA,EAAA,MAAA0tC,cAAA1tC,EAAA,EAAA,MAAA8T,UAAA9T,EAAA,EAAA,MAAAkF,SACpC6hB,qCAAC,cACuBkwB,iCACME,6CAChBC,YACJE,QACAC,QACJ7lB,IACY8lB,gBACPC,SACD/J,oBACAwK,oBACHM,cACG1kC,QACAqkC,oBACDjzC,iBAGT,GAAalF,QAAAi3C,WAAAj3C,QAAAk4C,YAAAl4C,QAAAm4C,YAAAn4C,QAAA6T,UAAA7T,QAAAo3C,YAAAp3C,QAAAs3C,QAAAt3C,QAAAu3C,QAAAv3C,QAAAm3C,iBAAAn3C,QAAA0xB,IAAA1xB,QAAAw3C,gBAAAx3C,QAAAy3C,SAAAz3C,QAAA0tC,YAAA1tC,QAAA8T,QAAA9T,QAAAkF,OAAAlF,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA;AAAAgnB,MAAAA;AAAAhnB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACbiV,MAAA1S,+BAAA,OAAA,EAAUikC,KAAAA,YAAsB,UAAA,EAAK,CAAA,GAAAv4C,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA;AAAAinB,MAAAA;AAAAjnB,YAAAhF,WAAAgF,EAAA68B,EAAAA,MAAAA,eAAA78B,EAAA,EAAA,MAAA64C,mBAAA74C,UAAA0xB,MAAA1xB,EAAA03C,EAAAA,MAAAA,WAAA13C,EAAAw8B,EAAAA,MAAAA,cAAAx8B,EAAA,EAAA,MAAAspB,WAAAtpB,UAAAokB,YAAApkB,EAAAsD,EAAAA,MAAAA,OAAAtD,EAAA,EAAA,MAAA8iB,aAAA9iB,UAAA+mB,OAAA/mB,EAAA,EAAA,MAAAm7B,WAnCvClU,MAACC,2BAAAA,KAAA,cAAA,EAAY,GACPpE,WACM9nB,UAAAA,SACAsuB,UAAAA,SACClF,WAAAA,UACMszB,mBAAAA,SACjB,cAAA,IACQ,WAAA,UACJhmB,IACQ8K,YACHqc,0BACAhc,sBACJv5B,KACA,MAAA,UACI63B,SAETtU,UAAAA;AAAAA,IAAAA;AAAAA,IACAE;AAAAA,IAkBAC;AAAAA,EACF,EAAA,CAAA,GAAehnB,QAAAhF,SAAAgF,QAAA68B,aAAA78B,QAAA64C,iBAAA74C,QAAA0xB,IAAA1xB,QAAA03C,SAAA13C,QAAAw8B,YAAAx8B,QAAAspB,SAAAtpB,QAAAokB,UAAApkB,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAA+mB,KAAA/mB,QAAAm7B,SAAAn7B,QAAAinB,OAAAA,MAAAjnB,EAAA,EAAA;AAAAmnB,MAAAA;AAAA,SAAAnnB,EAAA0tC,EAAAA,MAAAA,cAAA1tC,UAAAinB,OArCjBE,MAAC7S,2BAAAA,IAAA,QAAwBo5B,EAAAA,iBAAAA,YACvBzmB,UAqCF,IAAA,CAAA,GAASjnB,QAAA0tC,YAAA1tC,QAAAinB,KAAAjnB,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA,GAtCTmnB;AAsCS,CAEZ;AACD2wB,OAAOtjC,cAAc;AC5Zd,SAAAskC,eAAAl8C,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAA4T;AAAAA,IAAAuQ;AAAAA,IAAA+W;AAAAA,EAAAA,IAAsCv+B;AAAK,MAAAsD,IAAAG;AAAAL,IAAAokB,CAAAA,MAAAA,YAAApkB,SAAAm7B,WAGlC96B,KAAA;AAAA,IAAA6T,SAAA;AAAA,IAAAkQ;AAAAA,IAAA+W;AAAAA,EAAAA,GAINn7B,OAAAokB,UAAApkB,OAAAm7B,SAAAn7B,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAAE,KAJMG;AADT,QAAA44B,eAAyC/4B;AAOxC6C,MAAAA;AAAA,SAAA/C,EAAA6T,CAAAA,MAAAA,YAAA7T,SAAAi5B,gBAEMl2B,KAAAuR,2BAAAA,IAAA,cAAA,UAAA,EAA+B2kB,OAAAA,cAAeplB,SAAAA,CAAS,GAAyB7T,OAAA6T,UAAA7T,OAAAi5B,cAAAj5B,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GAAhF+C;AAAgF;AAGzF+1C,eAAetkC,cAAc;AChB7B,MAAMukC,gBAAgB/2B,iBAAAA,OAAO6K,IAAG3K,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAO/B,6DAEK62B,MAAMh3B,iBAAAA,OAAOuS,GAAG,EAACrS,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAItB,oCAOY82B,UAAUt2B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA1B,WAAAjD,MAAAguB,SAAArI,QAAA6B,WAAA5iB;AAAAF,WAAApD,SAIhC;AAAA,IAAA2B,UAAAA;AAAAA,IAAAjD;AAAAA,IAAAguB;AAAAA,IAAArI;AAAAA,IAAAjkB,OAAAkD;AAAAA,IAAA,GAAA4iB;AAAAA,EAAA,IAAgFlmB,OAAKoD,OAAApD,OAAAoD,OAAAzB,WAAAyB,OAAA1E,MAAA0E,OAAAspB,SAAAtpB,OAAAihB,QAAAjhB,OAAA8iB,WAAA9iB,OAAAE,OAAA3B,YAAAyB,EAAA,CAAA,GAAA1E,OAAA0E,EAAA,CAAA,GAAAspB,UAAAtpB,EAAA,CAAA,GAAAihB,SAAAjhB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AACrF,QAAAhD,QAAc+C,aADiCG,OAAe3D,eAAf2D,EACX;AAAC,MAEjC,CAAC5E,QAAQA,KAAIyB,WAAa,GAAA;AAAAsD,QAAAA;AAAA,WAAAL,EAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACrB1R,MAAAiU,+BAAA8S,WAAAA,UAAA,CAAA,CAAA,GAAKpnB,OAAAK,OAAAA,MAAAL,EAAA,CAAA,GAALK;AAAAA,EAAAA;AAAKA,MAAAA;AAAA,MAAAL,EAAA,CAAA,MAAAzB,aAAAyB,EAAA1E,CAAAA,MAAAA,QAAA0E,EAAAspB,EAAAA,MAAAA,WAAAtpB,UAAAihB,QAAA;AAAAle,QAAAA;AAAA/C,MAAAzB,EAAAA,MAAAA,aAAAyB,UAAAspB,WAAAtpB,EAAA,EAAA,MAAAihB,UAMEle,MAAAA,CAAArH,MAAA+T,MACR6E,2BAAA,IAAC,KAAc/V,EAAAA,UAAAA,WAA2B+qB,SAAiBrI,QACxDvlB,kBAD2B,CAE9B,GACDsE,QAAAzB,WAAAyB,QAAAspB,SAAAtpB,QAAAihB,QAAAjhB,QAAA+C,OAAAA,MAAA/C,EAAA,EAAA,GAJAK,KAAA/E,KAAIW,IAAK8G,GAIT,GAAC/C,OAAAzB,WAAAyB,OAAA1E,MAAA0E,QAAAspB,SAAAtpB,QAAAihB,QAAAjhB,QAAAK;AAAAA,EAAA;AAAAA,SAAAL,EAAA,EAAA;AAAA+C,MAAAA;AAAA/C,IAAAhD,EAAAA,MAAAA,SAAAgD,UAAAK,MALJ0C,oCAAC,QAAU,EAAA,IAAA,QAAc/F,OACtBqD,UAAAA,GAAAA,CAKH,GAASL,QAAAhD,OAAAgD,QAAAK,IAAAL,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA;AAAAgD,MAAAA;AAAA,SAAAhD,EAAAsD,EAAAA,MAAAA,OAAAtD,UAAA8iB,aAAA9iB,EAAA,EAAA,MAAA+C,MAPXC,oCAAC,iBAAsB,WAAA,cAAc8f,WAAgBxf,KACnDP,UAOF,IAAA,GAAgB/C,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAA+C,IAAA/C,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA,GARhBgD;AAQgB,CAEnB;AACDi2C,QAAQzkC,cAAc;ACnCT0kC,MAAAA,cAAc7lC,0BACzB,2BACA,IACF;ACvBA,SAAS8lC,aAAav4C,SAAsB;AAC1C,SACG+4B,oBAAoB/4B,OAAO,KAAKA,QAAQ65B,aAAa,eAAe,MAAM,UAC1Eb,oBAAoBh5B,OAAO,KAAK,CAACA,QAAQ4e;AAE9C;AAKO,SAAS45B,sBAAsB73C,UAAwC;AACrEA,SAAAA,SAASN,OAAOk4C,YAAY;AACrC;AAKgBE,SAAAA,YAAYzc,aAA0B77B,IAA2B;AAC/E,QAAMk2B,OAAiB,CAAE;AAEzB,MAAI6X,IAAI/tC;AAER,SAAO+tC,MAAMlS,eAAa;AACxB,UAAM0c,gBAAgBxK,EAAEwK;AAEpB,QAAA,CAACA,cAAsBriB,QAAAA;AAG3B,UAAMhnB,QADWzT,MAAMwwB,KAAKssB,cAAcve,UAAU,EAC7B5qB,QAAQ2+B,CAAC;AAIhC,QAFA7X,KAAKsiB,QAAQtpC,KAAK,GAEdqpC,kBAAkB1c;AACb3F,aAAAA;AAGLqiB,QAAAA;AAAAA,EAAAA;AAGCriB,SAAAA;AACT;AAEA,MAAMuiB,aAAuB,CAAE;AAKfC,SAAAA,cAAc7c,aAAiCr7B,UAA+B;AAC5F,MAAI,CAACq7B,YAAa;AAEZ3gC,QAAAA,0BAAU4K,QAA+B;AAE/C,aAAW9F,MAAMQ;AACftF,QAAIgM,IAAIlH,IAAIs4C,YAAYzc,aAAa77B,EAAE,CAAC;AAGpC24C,QAAAA,QAAQA,CAACC,GAAgBC,MAAmB;AAChD,UAAMn0C,KAAKxJ,IAAI+L,IAAI2xC,CAAC,KAAKH,YACnBxzC,KAAK/J,IAAI+L,IAAI4xC,CAAC,KAAKJ,YAEnBt7B,MAAMhf,KAAK4a,IAAIrU,GAAG1I,QAAQiJ,GAAGjJ,MAAM;AAGzC,aAAS0S,IAAI,GAAGA,IAAIyO,KAAKzO,KAAK,GAAG;AACzBoqC,YAAAA,SAASp0C,GAAGgK,CAAC,KAAK,IAClBqqC,SAAS9zC,GAAGyJ,CAAC,KAAK;AAExB,UAAIoqC,WAAWC;AACb,eAAOD,SAASC;AAAAA,IAAAA;AAIb,WAAA;AAAA,EACT;AAEAv4C,WAASw4C,KAAKL,KAAK;AACrB;AC7DO,SAASM,kBAAkBp9C,OAKf;AACX,QAAA;AAAA,IAACsV;AAAAA,IAAW+nC;AAAAA,IAAeC;AAAAA,IAAahI;AAAAA,EAAAA,IAAkBt1C,OAC1D6E,cAAcC,MAAAA,OAAsB,CAAA,CAAE,GACtC,CAAC+xC,aAAa0G,eAAe,IAAI55C,MAAS,SAAA,EAAE,GAC5C65C,iBAAiB14C,MAAAA,OAAO+xC,WAAW,GACnCnZ,gBAAgB5nB,MAAAA,QAAQ,MAAMjR,YAAYI,QAAQ4xC,WAAW,KAAK,MAAM,CAACA,WAAW,CAAC,GACrF4G,UAAUn5C,CAAQgxC,CAAAA,eAAerwC,SAEjCy4C,iBAAiBrU,MAAAA,YAAasU,CAA4B,oBAAA;AAC9CA,oBAAAA,eAAe,GAC/BH,eAAev4C,UAAU04C;AAAAA,EAAAA,GACxB,CAAA,CAAE,GAECC,QAAQvU,MACZ,YAAA,CAACrlC,SAA6B4tB,aAAqC;AAC7D,QAAA,CAAC5tB,QAAS,QAAO;;AAOrB,QALIa,YAAYI,QAAQsO,QAAQvP,OAAO,MAAM,OAC3Ca,YAAYI,QAAQb,KAAKJ,OAAO,GAChC64C,cAAcvH,eAAerwC,SAASJ,YAAYI,OAAO,IAGvD2sB,UAAU;AACZ,YAAMisB,gBAAgBh5C,YAAYI,QAAQsO,QAAQvP,OAAO;AAEzD05C,qBAAeG,aAAa;AAAA,IAAA;AAG9B,WAAO,MAAM;AACX,YAAMjpC,MAAM/P,YAAYI,QAAQsO,QAAQvP,OAAO;AAE3C4Q,YAAM,MACR/P,YAAYI,QAAQmK,OAAOwF,KAAK,CAAC;AAAA,IAErC;AAAA,EAAA,GAEF,CAAC0gC,gBAAgBoI,cAAc,CACjC,GAEMnoC,gBAAgB8zB,MAAAA,YACnB/hC,CAA+C,UAAA;AAE1CA,QAAAA,MAAMxI,QAAQ,OAAO;AACnBu+C,uBACFA,cAAcpf,MAAM;AAGtB;AAAA,IAAA;AAIE32B,QAAAA,MAAMxI,QAAQ,QAAQ;AAClBwvC,YAAAA,eAAAA,GACNhnC,MAAMinC,gBAAgB;AAGtB,YAAMpqC,KADoBq4C,sBAAsB33C,YAAYI,OAAO,EACtC,CAAC;AAE9B,UAAI,CAACd,GAAI;AAET,YAAM25C,eAAej5C,YAAYI,QAAQsO,QAAQpP,EAAE;AAEnDu5C,qBAAeI,YAAY;AAE3B;AAAA,IAAA;AAIEx2C,QAAAA,MAAMxI,QAAQ,OAAO;AACjBwvC,YAAAA,eAAAA,GACNhnC,MAAMinC,gBAAgB;AAEhBwP,YAAAA,sBAAoBvB,sBAAsB33C,YAAYI,OAAO,GAC7Dd,OAAK45C,oBAAkBA,oBAAkB59C,SAAS,CAAC;AAEzD,UAAI,CAACgE,KAAI;AAET,YAAM25C,iBAAej5C,YAAYI,QAAQsO,QAAQpP,IAAE;AAEnDu5C,qBAAeI,cAAY;AAE3B;AAAA,IAAA;AAGEx2C,QAAAA,MAAMxI,QAAQ,WAAW;AACrBwvC,YAAAA,eAAAA,GACNhnC,MAAMinC,gBAAgB;AAEtB,YAAMwP,sBAAoBvB,sBAAsB33C,YAAYI,OAAO,GAC7D+4C,eAAeD,oBAAkB59C;AAEvC,UAAI69C,iBAAiB,EAAG;AAExB,YAAMvH,iBAAiB5xC,YAAYI,QAAQu4C,eAAev4C,OAAO;AAE7Dg5C,UAAAA,eAAeF,oBAAkBxqC,QAAQkjC,cAAc;AAE3CwH,sBAAAA,eAAe,IAAID,gBAAgBA;AAE7C75C,YAAAA,OAAK45C,oBAAkBE,YAAY,GACnCH,iBAAej5C,YAAYI,QAAQsO,QAAQpP,IAAE;AAEnDu5C,qBAAeI,cAAY;AAE3B;AAAA,IAAA;AAGEx2C,QAAAA,MAAMxI,QAAQ,aAAa;AACvBwvC,YAAAA,eAAAA,GACNhnC,MAAMinC,gBAAgB;AAEtB,YAAMwP,sBAAoBvB,sBAAsB33C,YAAYI,OAAO,GAC7D+4C,iBAAeD,oBAAkB59C;AAEvC,UAAI69C,mBAAiB,EAAG;AAExB,YAAMvH,mBAAiB5xC,YAAYI,QAAQu4C,eAAev4C,OAAO;AAE7Dg5C,UAAAA,iBAAeF,oBAAkBxqC,QAAQkjC,gBAAc;AAE3DwH,wBAAgBA,iBAAe,KAAKD;AAE9B75C,YAAAA,OAAK45C,oBAAkBE,cAAY,GACnCH,iBAAej5C,YAAYI,QAAQsO,QAAQpP,IAAE;AAEnDu5C,qBAAeI,cAAY;AAE3B;AAAA,IAAA;AAGExoC,iBACFA,UAAUhO,KAAK;AAAA,EAAA,GAGnB,CAACgO,WAAW+nC,eAAeK,cAAc,CAC3C,GAEMQ,uBAAuB7U,MAAAA,YAC1B/hC,CAAyC,YAAA;AACxC,UAAMtD,YAAUsD,QAAMksC,eAChBsK,iBAAej5C,YAAYI,QAAQsO,QAAQvP,SAAO;AAExD05C,mBAAeI,cAAY;AAAA,KAE7B,CAACJ,cAAc,CACjB,GAEMS,uBAAuB9U,kBAAY,MAAM;AAM7CqU,mBAAe,EAAE,GACjBpI,eAAerwC,SAASg5B,MAAM;AAAA,EAAA,GAC7B,CAACqX,gBAAgBoI,cAAc,CAAC;AAGnC34C,SAAAA,MAAAA,UAAU,MAAM;AACd,QAAI,CAAC04C,QAAS;AAERW,UAAAA,QAAQ3tC,sBAAsB,MAAM;AACxC,UAAIomC,gBAAgB,IAAI;AACtB,YAAIyG,gBAAgB,SAAS;AAE3B,gBAAMn5C,OADoBq4C,sBAAsB33C,YAAYI,OAAO,EACtC,CAAC;AAE9B,cAAId,MAAI;AACN,kBAAM25C,iBAAej5C,YAAYI,QAAQsO,QAAQpP,IAAE;AAEnDu5C,2BAAeI,cAAY;AAAA,UAAA;AAAA,QAC7B;AAGF,YAAIR,gBAAgB,QAAQ;AACpBS,gBAAAA,sBAAoBvB,sBAAsB33C,YAAYI,OAAO,GAC7Dd,OAAK45C,oBAAkBA,oBAAkB59C,SAAS,CAAC;AAEzD,cAAIgE,MAAI;AACN,kBAAM25C,iBAAej5C,YAAYI,QAAQsO,QAAQpP,IAAE;AAEnDu5C,2BAAeI,cAAY;AAAA,UAAA;AAAA,QAC7B;AAGF;AAAA,MAAA;AAKF95C,OAFgBa,YAAYI,QAAQ4xC,WAAW,KAAK,OAE3C5Y,MAAM;AAAA,IAAA,CAChB;AAEM,WAAA,MAAMtU,qBAAqBy0B,KAAK;AAAA,KACtC,CAACvH,aAAa4G,SAASC,gBAAgBJ,WAAW,CAAC,GAE/C;AAAA,IACL5f;AAAAA,IACAmZ;AAAAA,IACAqH;AAAAA,IACAC;AAAAA,IACA5oC;AAAAA,IACAqoC;AAAAA,EACF;AACF;ACpMA,MAAMS,aAAaj5B,iBAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAG7B,gCAOY+4B,OAAOv4B,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAAk7C,MAAAA,cAAAtnC,UAAA2jC,gBAAA4D,UAAAC,aAAAC,cAAAppC,WAAA+nC,eAAAsB,iBAAAz4B,WAAA5iB,IAAAG;AAAAL,MAAAA,SAAApD,OAAA;AAI7B,UAAA;AAAA,MAAAiX,UAAA9Q;AAAAA,MAAAy4C;AAAAA,MAAAC;AAAAA,MAAAjE,gBAAAx0C;AAAAA,MAAAo4C,UAAAl4B;AAAAA,MAAAm4B,aAAA70B;AAAAA,MAAA80B,cAAA70B;AAAAA,MAAAvU,WAAAwU;AAAAA,MAAAuzB,eAAArzB;AAAAA,MAAA0C,SAAAzC;AAAAA,MAAA00B,iBAAAx0B;AAAAA,MAAAmzB,aAAAlzB;AAAAA,MAAAhqB,OAAAiqB;AAAAA,MAAA,GAAAE;AAAAA,IAAAA,IAiBIvqB;AAjBJiX,eAAA9Q,KAAAy0C,iBAAAx0C,KAAAo4C,WAAAl4B,KAAAm4B,cAAA70B,KAAA80B,eAAA70B,KAAAvU,YAAAwU,KAAAuzB,gBAAArzB,KAAA1mB,KAAA2mB,KAAA00B,kBAAAx0B,MAAAo0B,eAAAn0B,MAAA3mB,KAAA4mB,MAAAnE,YAAAqE,MAiBSnnB,OAAApD,OAAAoD,OAAAm7C,cAAAn7C,OAAA6T,UAAA7T,OAAAw3C,gBAAAx3C,OAAAo7C,UAAAp7C,OAAAq7C,aAAAr7C,OAAAs7C,cAAAt7C,OAAAkS,WAAAlS,OAAAi6C,eAAAj6C,OAAAu7C,iBAAAv7C,QAAA8iB,WAAA9iB,QAAAE,IAAAF,QAAAK;AAAAA,EAAA;AAAAL,mBAAAA,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAw3C,iBAAAx3C,EAAA,CAAA,GAAAo7C,WAAAp7C,EAAA,CAAA,GAAAq7C,cAAAr7C,EAAA,CAAA,GAAAs7C,eAAAt7C,EAAA,CAAA,GAAAkS,YAAAlS,EAAA,CAAA,GAAAi6C,gBAAAj6C,EAAA,CAAA,GAAAu7C,kBAAAv7C,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA;AALPspB,QAAAA,UAAAppB,OAAW3D,aAAX2D,IAGAlD,QAAAqD,OAAS9D,aAAT8D,IAGF65C,cACEiB,iBAAkBv+C,MAAK4+C,cAAe,WAAa5+C,MAAK6+C,aAAc,iBAExEn4C,MAAY5B,MAAAA,OAAA,IAAkC;AAACqB,MAAAA;AAAA/C,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEiChP,KAAAA,MAAMO,IAAGzB,SAAQ7B,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA,GAAjGgS,MAAAA,oBAAkEke,cAAcntB,EAAiB;AAEjG,QAAA;AAAA,IAAA64B;AAAAA,MAAqBzC,SAAS;AAACn2B,MAAAA;AAAAhD,IAAAkS,EAAAA,MAAAA,aAAAlS,UAAAi6C,iBAAAj6C,EAAA,EAAA,MAAAk6C,eASTl3C,KAAA;AAAA,IAAAkP;AAAAA,IAAA+nC;AAAAA,IAAAC;AAAAA,IAAAhI,gBAAwD5uC;AAAAA,EAAAA,GAAItD,QAAAkS,WAAAlS,QAAAi6C,eAAAj6C,QAAAk6C,aAAAl6C,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA;AAPlF,QAAA;AAAA,IAAAs6B;AAAAA,IAAAmZ;AAAAA,IAAAqH;AAAAA,IAAAC;AAAAA,IAAA5oC;AAAAA,IAAAqoC;AAAAA,MAOIR,kBAAkBh3C,EAA4D,GAElF04C,uBAA6Bh6C,MAAAA,OAAA,IAAgC;AAACwhB,MAAAA;AAAAljB,YAAAu7C,mBAE5Dr4B,KAAAniB,CAAA,OAAA;AAEM26C,yBAAoB75C,YAKtB65C,qBAAoB75C,WACpB65C,qBAAoB75C,UAAA,OAGtByB,IAAGzB,UAAWd,IAGVuC,IAAGzB,WAAY05C,oBACjBG,qBAAoB75C,UAAW05C,gBAAgBj4C,IAAGzB,OAAQ;AAAA,EAAC,GAE9D7B,QAAAu7C,iBAAAv7C,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA;AAlBH,QAAA27C,kBAAwBz4B;AAoBvB,MAAAsD,IAAAC;AAAAzmB,IAAAyzC,EAAAA,MAAAA,eAAAzzC,UAAAs7C,gBAGS90B,KAAAA,MAAA;AACJ80B,oBAAcA,aAAa7H,WAAW;AAAA,EACzChtB,GAAAA,KAAA,CAACgtB,aAAa6H,YAAY,GAACt7C,QAAAyzC,aAAAzzC,QAAAs7C,cAAAt7C,QAAAwmB,IAAAxmB,QAAAymB,OAAAD,KAAAxmB,EAAA,EAAA,GAAAymB,KAAAzmB,EAAA,EAAA,IAF9B2B,MAAAA,UAAU6kB,IAEPC,EAA2B;AAACC,MAAAA;AAAA1mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAGoB2U,KAAAA,MAAOpjB,CAAAA,IAAGzB,OAAA,GAAS7B,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA,GAAtEwC,qBAAqBo5B,cAAc4b,gBAAgB9wB,EAAmB;AAACE,MAAAA;AAAA5mB,IAAA47B,EAAAA,MAAAA,cAAA57B,UAAAo7C,YAKnEx0B,KAAA1iB,CAAA,UAAA;AACO03B,kBAED13B,MAAKxI,QAAS,aAChBwI,MAAKinC,gBAAiB,GAClBiQ,YAAUA;EAAS,GAE1Bp7C,QAAA47B,YAAA57B,QAAAo7C,UAAAp7C,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA,GATLiS,iBACE2U,EAWF;AAAC,MAAAC,IAAAE;AAAA/mB,IAAA,EAAA,MAAAs6B,iBAAAt6B,EAAAyzC,EAAAA,MAAAA,eAAAzzC,UAAA86C,wBAAA96C,EAAA,EAAA,MAAA+6C,wBAAA/6C,EAAAw6C,EAAAA,MAAAA,SAAAx6C,EAAAw3C,EAAAA,MAAAA,kBAAAx3C,EAAA,EAAA,MAAAo7C,YAAAp7C,EAAAq7C,EAAAA,MAAAA,eAAAr7C,UAAAu7C,mBAGQx0B,MAAA;AAAA,IAAA7S,SAAA;AAAA,IAAAomB;AAAAA,IAAAmZ;AAAAA,IAAA+G;AAAAA,IAAAhD;AAAAA,IAAA4D;AAAAA,IAAAC;AAAAA,IAAAO,kBAQad;AAAAA,IAAoBe,kBACpBd;AAAAA,IAAoBQ;AAAAA,IAAAlM,cAIxByL;AAAAA,IAAoBvL,cACpBwL;AAAAA,EAAAA,GACf/6C,QAAAs6B,eAAAt6B,QAAAyzC,aAAAzzC,QAAA86C,sBAAA96C,QAAA+6C,sBAAA/6C,QAAAw6C,OAAAx6C,QAAAw3C,gBAAAx3C,QAAAo7C,UAAAp7C,QAAAq7C,aAAAr7C,QAAAu7C,iBAAAv7C,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA,GAAA6mB,KAfME;AADT,QAAAxrB,QAAgCsrB;AA4B/BG,MAAAA;AAAAhnB,IAAA6T,EAAAA,MAAAA,YAAA7T,UAAAhD,SAaKgqB,MAAC1S,2BAAAA,IAAA,OAAatX,EAAAA,OAAe,SAAE,CAAA,GAAQgD,QAAA6T,UAAA7T,QAAAhD,OAAAgD,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA;AAAAinB,MAAAA;AAAAjnB,IAAAmS,EAAAA,MAAAA,iBAAAnS,EAAA,EAAA,MAAA27C,mBAAA37C,EAAAspB,EAAAA,MAAAA,WAAAtpB,EAAA,EAAA,MAAA8iB,aAAA9iB,UAAAgnB,OATzCC,MAAC3S,2BAAAA,IAAA,YAAA,EACS,WAAA,QACJwO,GAAAA,WACO3Q,WAAY,eACdmX,SACJqyB,sBACA,MAAA,QACK,UAAA,IAEV30B,UACF,IAAA,CAAA,GAAahnB,QAAAmS,eAAAnS,QAAA27C,iBAAA37C,QAAAspB,SAAAtpB,QAAA8iB,WAAA9iB,QAAAgnB,KAAAhnB,QAAAinB,OAAAA,MAAAjnB,EAAA,EAAA;AAAAmnB,MAAAA;AAAA,SAAAnnB,EAAAinB,EAAAA,MAAAA,OAAAjnB,UAAAzE,SAXf4rB,MAAA7S,2BAAAA,IAAA,YAAA,UAAA,EAA6B/Y,OAC3B0rB,UAAAA,IAAAA,CAWF,GAAuBjnB,QAAAinB,KAAAjnB,QAAAzE,OAAAyE,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA,GAZvBmnB;AAYuB,CAE1B;AACD+zB,KAAK1mC,cAAc;AClHZ,MAAMsnC,aAAan5B,MAAAA,WAAW,SACnC/lB,OACAszB,cACA;AACM,QAAA;AAAA,IACJ6rB,uCAAuCC,6BAA6B;AAAA,IACpE36C,iBAAiB46C;AAAAA,IACjB7uB,QAAQ8uB;AAAAA,IACRxqB;AAAAA,IACAyqB,MAAMC;AAAAA,IACN3E;AAAAA,IACA4E;AAAAA,IACA1nB,WAAW2nB;AAAAA,IACXC,eAAeC;AAAAA,IACfhf,QAAQif,oBAAoB;AAAA,IAC5B7X;AAAAA,IACA8X,eAAeC;AAAAA,IACfpY,iBAAiBqY;AAAAA,EACfhgD,IAAAA,OACE,CAACynC,MAAMmR,OAAO,IAAIj1C,MAAAA,SAAS,EAAK,GAChC,CAAC25C,aAAa2C,cAAc,IAAIt8C,eAAkC,IAAI,GACtE,CAACu8C,eAAeC,gBAAgB,IAAIx8C,MAAmC,SAAA,IAAI,GAC3E,CAACy8C,cAAcC,oBAAoB,IAAI18C,MAAAA,SAAwB,CAAA,CAAE,GACjE28C,UAAUx7C,MAAAA,OAAgB2iC,IAAI;AAGpC1iC,QAAAA,UAAU,MAAM;AACV06C,cAAUhY,QAAQ,CAAC6Y,QAAQr7C,WAC7Bw6C,OAAO;AAAA,KAER,CAACA,QAAQhY,IAAI,CAAC,GAGjB1iC,gBAAU,MAAM;AACV81C,eAAW,CAACpT,QAAQ6Y,QAAQr7C,WAC9B41C,QAAQ;AAAA,KAET,CAACA,SAASpT,IAAI,CAAC,GAElB1iC,gBAAU,MAAM;AACdu7C,YAAQr7C,UAAUwiC;AAAAA,EAAAA,GACjB,CAACA,IAAI,CAAC;AAEH8Y,QAAAA,oBAAoBlX,MAAAA,YAAY,MAAM;AAC1CuP,YAASnZ,CAAM,MAAA,CAACA,CAAC,GACjBwgB,eAAe,IAAI;AAAA,KAClB,CAAE,CAAA,GAKCO,kBAAkBnX,kBACrB/hC,CAAwB,UAAA;AACnBmgC,YAAMngC,MAAMgnC,eAAe;AAAA,EAAA,GAEjC,CAAC7G,IAAI,CACP,GAEMgZ,sBAAsBpX,kBAAa/hC,CAAkD,YAAA;AAGrFA,QAAAA,QAAMxI,QAAQ,eAAewI,QAAMxI,QAAQ,WAAWwI,QAAMxI,QAAQ,KAAK;AAC3EwI,cAAMgnC,kBACNsK,QAAQ,EAAI,GACZqH,eAAe,OAAO;AAEtB;AAAA,IAAA;AAKE34C,QAAAA,QAAMxI,QAAQ,WAAW;AAC3BwI,cAAMgnC,kBACNsK,QAAQ,EAAI,GACZqH,eAAe,MAAM;AAErB;AAAA,IAAA;AAAA,KAED,CAAE,CAAA,GAECS,yBAAyBrX,kBAC5B/hC,CAAsB,YAAA;AACrB,UAAMhC,SAASgC,QAAMhC;AAEfA,QAAAA,kBAAkBC,QAIpB26C,EAAkB56C,kBAAAA,WAAW46C,iBAAiBA,cAAc16C,SAASF,MAAM,KAI/E;AAAA,iBAAWnB,MAAMi8C;AACf,YAAI96C,WAAWnB,MAAMA,GAAGqB,SAASF,MAAM;AACrC;AAIJszC,cAAQ,EAAK;AAAA,IAAA;AAAA,EAAA,GAEf,CAACsH,eAAeE,YAAY,CAC9B,GAEMO,mBAAmBtX,kBAAY,MAAM;AACzCuP,YAAQ,EAAK,GACTwG,CACAc,8BAAAA,iBAAeA,cAAcjiB,MAAM;AAAA,EAAA,GACtC,CAACiiB,eAAed,0BAA0B,CAAC,GAExCnN,aAAa5I,MAAAA,YAChB/hC,CAAsB,YAAA;AACrB,UAAMhC,WAASgC,QAAMs5C;AAErB,QAAMt7C,oBAAkBC,MAIxB;AAAA,iBAAWpB,QAAMi8C;AACf,YAAIj8C,SAAOmB,YAAUnB,KAAGqB,SAASF,QAAM;AACrC;AAIJszC,cAAQ,EAAK;AAAA,IAAA;AAAA,KAEf,CAACwH,YAAY,CACf,GAEMS,kBAAkBxX,kBAAY,MAAM;AACxCuP,YAAQ,EAAK,GACTwG,CACAc,8BAAAA,iBAAeA,cAAcjiB,MAAM;AAAA,EAAA,GACtC,CAACiiB,eAAed,0BAA0B,CAAC,GAExCT,kBAAkBtV,MAAallC,YAAAA,CAAAA,UACnCk8C,qBAAsBS,CAAQA,QAAAA,IAAIvwC,OAAO,CAACpM,IAAE,CAAC,CAAC,GAEvC,MAAMk8C,qBAAsBS,CAAAA,UAAQA,MAAIz8C,OAAQ08C,SAAQA,QAAQ58C,IAAE,CAAC,IACzE,CAAE,CAAA,GAaCo7C,OAAOC,YAAYvzB,MAAAA,aAAauzB,UAXT;AAAA,IAC3B,mBAAmB1qB;AAAAA,IACnB,eAAiBmd;AAAAA,IACjB,gBAAkByO;AAAAA,IAClB,UAAYC;AAAAA,IACZ,aAAeE;AAAAA,IACf,eAAiBX;AAAAA,IACjBvB;AAAAA,IACArB;AAAAA,EAAAA,CAGuD,GAEnD9sB,SAAS1a,cACb,MACEwpC,cACArzB,MAAAA,aAAaqzB,YAAY;AAAA,IACvB,WAAW;AAAA,IACXxqB;AAAAA,IACA,SAAWyrB;AAAAA,IACX,WAAaE;AAAAA,IACb,aAAeD;AAAAA,IACf,iBAAiB;AAAA,IACjB,iBAAiB/Y;AAAAA,IACjB,KAAO0Y;AAAAA,IACP,UAAYb,WAAWt/C,MAAM4xB,YAAY6V;AAAAA,EAAAA,CAC1C,GACH,CAAC6X,YAAYiB,mBAAmBE,qBAAqBD,iBAAiB1rB,IAAI2S,IAAI,CAChF;AAGAryB,QAAAA,oBACEke,cACA,MAAM4sB,eACN,CAACA,aAAa,CAChB;AAEMc,QAAAA,eAA2ClrC,MAAAA,QAC/C,OAAO;AAAA,IACLrR,iBAAiB46C;AAAAA,IACjB5kC,UAAU;AAAA,IACVsd,WAAW2nB;AAAAA,IACX9e,QAAQif;AAAAA,IACRlY,iBAAiBqY;AAAAA,IACjB37B,QAAQ07B;AAAAA,IACR7oC,QAAQ0oC;AAAAA,IACR,GAAI5X,WAAW,CAAA;AAAA,EAAC,IAElB,CACEqX,4BACAK,sBACAK,0BACAH,0BACAC,mBACAG,4BACAhY,OAAO,CAEX;AAGE,SAAAtwB,2BAAAA,IAAC,SAAQ,EAAA,WAAQ,0BAA0BspC,cAAc,SAASzB,MAAM,MACrE/uB,UAAU,UAAA9Y,2BAAA,IAAA8S,WAAA,UAAA,CAAE,CAAA,GACf;AAEJ,CAAC;AACD00B,WAAWtnC,cAAc;ACrQZqpC,MAAAA,cAAc77B,iBAAAA,OAAO87B,GAAE57B,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAKnC;AACD07B,YAAYrpC,cAAc;ACEnB,SAASupC,sBAA8C;AACrDj/B,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAqBT;AAEO,SAASk/B,qBACdphD,OACwB;AAClB,QAAA;AAAA,IAACsiB;AAAAA,MAAStiB,OACV;AAAA,IAACoc;AAAAA,IAAOvd;AAAAA,EAAAA,IAASwB,MAAAA,YAAYL,MAAMD,KAAK,GACxCqX,OAAOgF,MAAMsW,WAAWpQ,KAAK;AAE5BJ,SAAAA,iBAAAA;AAAAA,MACH0M,gBAAgBxS,OAAOhF,KAAKqL,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAShCmM,gBAAgBxS,OAAOhF,KAAKwL,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnCgM,gBAAgBxS,OAAOhF,KAAK2Z,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKpCnC,gBAAgBxS,OAAOhF,KAAKwa,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjChD,gBAAgBxS,OAAOhF,KAAKgM,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpCwL,gBAAgBxS,OAAOhF,KAAK2Z,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAU1CnC,gBAAgBxS,OAAOhF,KAAKwL,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnCgM,gBAAgBxS,OAAOhF,KAAK2Z,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpCnC,gBAAgBxS,OAAOhF,KAAKwa,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjChD,gBAAgBxS,OAAOhF,KAAKgM,OAAO,CAAC;AAAA;AAAA;AAAA,gBAGpCwL,gBAAgBxS,OAAOhF,KAAK2Z,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO9ClyB,OAAOoa,MAAMlB,IAAI;AAAA;AAEvB;ACzGO,MAAMspC,aAAaj8B,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EACnCnB,uBACA+8B,qBACAC,oBAAoB;AAEtBC,WAAWzpC,cAAc;ACTlB,SAAA0pC,UAAA;AACL3iD,QAAAA,QAAcqY,iBAAAslC,WAAsB;AAAC,MAAA,CAEhC39C;AAAKuB,UAAAA,IAAAA,MACQ,kCAAkC;AAAA,MAMhD,CAAC26B,SAASl8B,KAAK,KAAKA,MAAK2Y,YAAgB;AAAApX,UAAAA,IAAAA,MAC3B,gDAAgD;AAG3DvB,SAAAA;AAAK;ACsBP,SAAA4iD,UAAAvhD,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,EAAA;AAAA8tB,MAAAA,eAAAla,UAAAuqC,WAAAnP,SAAArK,SAAA9hB,WAAA5iB,IAAAG,IAAA0C,IAAAC,IAAAkgB,IAAAsD,IAAAjI;AAAAve,WAAApD,SAIL;AAAA,IAAA4oB,IAAAtlB;AAAAA,IAAA2T;AAAAA,IAAAtV,UAAA8B;AAAAA,IAAAisB,MAAAyB;AAAAA,IAAAouB,MAAAiC;AAAAA,IAAAnP;AAAAA,IAAA3lB,SAAAvmB;AAAAA,IAAA6hC;AAAAA,IAAA3jB,QAAAje;AAAAA,IAAAhG,OAAAkmB;AAAAA,IAAA3E;AAAAA,IAAAvK,MAAAwS;AAAAA,IAAA,GAAA1D;AAAAA,EAAA,IAcIlmB,OAAKoD,OAAApD,OAAAoD,OAAA+tB,eAAA/tB,OAAA6T,UAAA7T,OAAAo+C,WAAAp+C,OAAAivC,SAAAjvC,OAAA4kC,SAAA5kC,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,IAAAL,OAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAue,SAAAwP,gBAAA/tB,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAo+C,YAAAp+C,EAAA,CAAA,GAAAivC,UAAAjvC,EAAA,CAAA,GAAA4kC,UAAA5kC,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,GAAAgD,KAAAhD,EAAA,EAAA,GAAAkjB,KAAAljB,EAAA,EAAA,GAAAwmB,KAAAxmB,EAAA,EAAA,GAAAue,OAAAve,EAAA,EAAA;AAbP,QAAAwlB,KAAAtlB,OAAa3D,SAAR,WAAL2D,IAEA3B,YAAA8B,OAAY9D,aAAZ8D,IAIAipB,UAAAvmB,OAAWxG,aAAXwG,IAEAke,SAAAje,OAAUzG,aAAVyG,IACAhG,QAAAkmB,OAAS3mB,aAAT2mB,IAEAlP,OAAAwS,OAAgBjqB,SAAT,YAAPiqB,IAGF21B,OAAa+B,WACb;AAAA,IAAApqC;AAAAA,EAAA,IAAiBW,gBACjB;AAAA,IAAA6lB;AAAAA,IAAAkgB;AAAAA,IAAAhD;AAAAA,IAAA4D;AAAAA,IAAAC;AAAAA,IAAAO,kBAAAyC;AAAAA,IAAA9C;AAAAA,EAAAA,IAQIY,MACJP,mBAAyByC,qBAAqBlC,KAAI9M,cAClD,CAAAzS,aAAA0hB,cAAA,IAAsC/9C,MAAAA,aAAwD,GAC9F,CAAA8jC,MAAAmR,OAAA,IAAwBj1C,iBAAc,GACtC,CAAA25C,aAAA2C,cAAA,IAAsCt8C,MAAAA,aAAsC,GAC5Es0C,SAAe3zC,CAAQo5B,CAAAA,iBAAkBA,kBAAkBsC,aAC3D,CAAA2hB,YAAAC,aAAA,IAAoCj+C,iBAAc;AAACkmB,MAAAA;AAAAzmB,YAAA47C,oBAGjDn1B,KAAAviB,CAAA,UAAA;AACEs6C,oBAAmB,GACnB5C,iBAAiB13C,KAAK,GACtBsxC,UAAY;AAAA,EAAC,GACdx1C,QAAA47C,kBAAA57C,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA;AALH,QAAAovC,mBAAyB3oB;AAOxBC,MAAAA;AAAA1mB,YAAA48B,eAGClW,KAAArU,CAAA,YAAA;AACMnO,YAAKxI,QAAS,gBAChBwI,QAAKinC,mBAELqK,UAAa,GAEbnoC,sBAAA,MAAA;AACEuvB,mBAAW/B,MAAA;AAAA,IAAA,CACZ;AAAA,EAAC,GAEL76B,QAAA48B,aAAA58B,QAAA0mB,MAAAA,KAAA1mB,EAAA,EAAA;AAXH,QAAAy+C,oBAA0B/3B;AAazBE,MAAAA;AAAA5mB,YAAAivC,WAGCroB,KAAA83B,CAAA,YAAA;AACEzP,cAAU/qC,OAAK,GAEf24C,eAAe,OAAO,GACtBrH,UAAY;AAAA,EAAC,GACdx1C,QAAAivC,SAAAjvC,QAAA4mB,MAAAA,KAAA5mB,EAAA,EAAA;AANH,QAAAgvC,cAAoBpoB;AAQnBC,MAAAA;AAAA7mB,YAAAq7C,eAEwCx0B,KAAAA,MAAA;cAC1B,GACbw0B,cAAW;AAAA,EAAA,GACZr7C,QAAAq7C,aAAAr7C,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA;AAHD,QAAA2+C,uBAA6B93B;AAGZE,MAAAA;AAAA/mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEwBgV,MAAAA,MAAMy3B,gBAAkB,GAACx+C,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA;AAAlE,QAAA4+C,uBAA6B73B;AAA0C,MAAAC,KAAAC;AAAAjnB,IAAAw6C,EAAAA,MAAAA,SAAAx6C,UAAA48B,eAG7D5V,MAAAA,MAAMwzB,MAAM5d,WAAW,GAAG3V,MAAA,CAACuzB,OAAO5d,WAAW,GAAC58B,QAAAw6C,OAAAx6C,QAAA48B,aAAA58B,QAAAgnB,KAAAhnB,QAAAinB,QAAAD,MAAAhnB,EAAA,EAAA,GAAAinB,MAAAjnB,EAAA,EAAA,IAAxD2B,MAAAA,UAAUqlB,KAA0BC,GAAoB;AAAC,MAAAE,KAAAE;AAAArnB,YAAA60C,UAG/C1tB,MAAAA,MAAA;AACH0tB,cAAQW,UAAa;AAAA,EAAC,GAC1BnuB,OAACwtB,MAAM,GAAC70C,QAAA60C,QAAA70C,QAAAmnB,KAAAnnB,QAAAqnB,QAAAF,MAAAnnB,EAAA,EAAA,GAAAqnB,MAAArnB,EAAA,EAAA,IAFX2B,gBAAUwlB,KAEPE,GAAQ;AAAC,MAAAkC,KAAAC;AAAAxpB,YAAAqkC,QAGF9a,MAAAA,MAAA;AACH8a,YAAMma,gBAAmB;AAAA,EAAC,GAC9Bh1B,OAAC6a,IAAI,GAACrkC,QAAAqkC,MAAArkC,QAAAupB,KAAAvpB,QAAAwpB,QAAAD,MAAAvpB,EAAA,EAAA,GAAAwpB,MAAAxpB,EAAA,EAAA,IAFT2B,gBAAU4nB,KAEPC,GAAM;AAAC,MAAAC,KAAAC;AAAA1pB,YAAAk6C,eAGAzwB,MAAAA,MAAA;AAAA,QAAA,CACHywB;AAAW;AAGhB,UAAAc,QAAc3tC,4BAA4BwvC,eAAc,IAAK,CAAC;AAEjDt2B,WAAAA,MAAAA,qBAAqBy0B,KAAK;AAAA,EAAC,GACvCtxB,OAACwwB,WAAW,GAACl6C,QAAAk6C,aAAAl6C,QAAAypB,KAAAzpB,QAAA0pB,QAAAD,MAAAzpB,EAAA,EAAA,GAAA0pB,MAAA1pB,EAAA,EAAA,IAPhB2B,gBAAU8nB,KAOPC,GAAa;AAACC,MAAAA;AAAA3pB,IAAA,EAAA,MAAA6T,YAAA7T,EAAA,EAAA,MAAA2+C,wBAAA3+C,EAAA,EAAA,MAAAy+C,qBAAAz+C,EAAAo+C,EAAAA,MAAAA,aAAAp+C,EAAAw3C,EAAAA,MAAAA,kBAAAx3C,EAAAo7C,EAAAA,MAAAA,YAAAp7C,EAAAu7C,EAAAA,MAAAA,mBAAAv7C,UAAAk6C,eAGfvwB,MAAArV,2BAAA,IAAC,QACK8pC,GAAAA,WACY5G,gBACN4D,UACGuD,aAAmB,sBACrBF,8BACGG,cAAAA,sBACGrD,iBACJrB,sBAGf,CAAA,GAAOl6C,QAAA6T,UAAA7T,QAAA2+C,sBAAA3+C,QAAAy+C,mBAAAz+C,QAAAo+C,WAAAp+C,QAAAw3C,gBAAAx3C,QAAAo7C,UAAAp7C,QAAAu7C,iBAAAv7C,QAAAk6C,aAAAl6C,QAAA2pB,OAAAA,MAAA3pB,EAAA,EAAA;AAZT,QAAA6+C,YACEl1B;AAYDC,MAAAA;AAAA5pB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEiC6X,MAAAk1B,CAAA,YAAA;AAChC,UAAA58C,SAAegC,QAAKksC;AAAc,QAE9BjtC,SAAAm3B,kBAA2Bp4B,UAI3BgC,QAAKxI,QAAS,cAAY;AAC5BmhD,qBAAe,OAAO,GACtBrH,UAAY,GACZgJ,gBAAkB;AAAC;AAAA,IAAA;AAAA,EAAA,GAItBx+C,QAAA4pB,OAAAA,MAAA5pB,EAAA,EAAA;AAdDmS,QAAAA,gBAAsByX,KAuBFC,MAAArE,OAAO,WAAW+4B,aAAUhiD,QAC5ButB,MAAAtE,OAAO,WAAW+4B,aAAUhiD,QAC3BwtB,OAACw0B,cAAc1J,SAAS,KAAEt4C,QAChCytB,MAAAjqB,aAAakhB,MAAM,GAQtBgJ,MAAAzE,OAAO,WAAW,WAAQjpB;AAAY2tB,MAAAA;AAAAlqB,IAAA+tB,EAAAA,MAAAA,iBAAA/tB,UAAAzB,aAGzC2rB,MAAA6D,iBACE7G,2BAAA,KAAA,MAAA,EAAW3oB,MAAOA,WAChB+pB,UAAAA;AAAAA,IAAAA,MAAAA,eAAeyF,aAAa,KAAKA;AAAAA,IACjClI,QAAAA,mBAAmBkI,aAAa,KAAKzZ,2BAAA,IAAC,eAAa,CAAA,CAAA;AAAA,EAAA,EACtD,CAAA,GACDtU,QAAA+tB,eAAA/tB,QAAAzB,WAAAyB,QAAAkqB,OAAAA,MAAAlqB,EAAA,EAAA;AAAAmqB,MAAAA;AAAAnqB,IAAAzB,EAAAA,MAAAA,aAAAyB,UAAAue,QAED4L,MAAC7V,2BAAA,IAAA,OAAU,MAAA,GACT,yCAAC,MAAW/V,EAAAA,iBAAuB,cAAA,YAAkB,QAAA,UAC/C,eACN,CAAA,EACF,CAAA,GAAMyB,QAAAzB,WAAAyB,QAAAue,MAAAve,QAAAmqB,OAAAA,MAAAnqB,EAAA,EAAA;AAAAoqB,MAAAA;AAAApqB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAGJqY,MAAC9V,2BAAA,IAAAyqC,MAAA,kBAAA,CAAmB,CAAA,GAAA/+C,QAAAoqB,OAAAA,MAAApqB,EAAA,EAAA;AAAAqqB,MAAAA;AAAArqB,YAAAzB,aADtB8rB,MAAC/V,+BAAA,MAAA,EAAW/V,MAAAA,WACV6rB,UAAAA,KACF,GAAOpqB,QAAAzB,WAAAyB,QAAAqqB,OAAAA,MAAArqB,EAAA,EAAA;AAAAsqB,MAAAA;AAAAtqB,IAAAspB,EAAAA,MAAAA,WAAAtpB,EAAA,EAAA,MAAAhD,SAAAgD,EAAAkqB,EAAAA,MAAAA,OAAAlqB,EAAA,EAAA,MAAAmqB,OAAAnqB,UAAAqqB,OAhBTC,MAACpD,gCAAA,MAAA,EAAUlqB,YAAgBssB,SACxBY,UAAAA;AAAAA,IAAAA;AAAAA,IAODC;AAAAA,IAMAE;AAAAA,EAGF,EAAA,CAAA,GAAOrqB,QAAAspB,SAAAtpB,QAAAhD,OAAAgD,QAAAkqB,KAAAlqB,QAAAmqB,KAAAnqB,QAAAqqB,KAAArqB,QAAAsqB,OAAAA,MAAAtqB,EAAA,EAAA;AAAAg/C,MAAAA;AAAAh/C,YAAAwlB,MAAAxlB,EAAAgvC,EAAAA,MAAAA,eAAAhvC,EAAA,EAAA,MAAAovC,oBAAApvC,UAAA8iB,aAAA9iB,EAAA8T,EAAAA,MAAAA,UAAA9T,EAAA6pB,EAAAA,MAAAA,OAAA7pB,EAAA,EAAA,MAAA8pB,OAAA9pB,UAAA+pB,OAAA/pB,EAAAgqB,EAAAA,MAAAA,OAAAhqB,EAAA,EAAA,MAAAiqB,OAAAjqB,UAAAsqB,OAAAtqB,EAAA,EAAA,MAAAgU,QAnCTgrC,MAAC1qC,2BAAAA,IAAA,YAAA,EACUkR,WAAAA,IACD,WAAA,aACKA,aAAAA,IACT1C,GAAAA,WACU,gBAAA+G,KACA,gBAAAC,KACC,iBAAAC,KACN,SAAAC,KACFhW,OAAAA,MACEF,SAAK,QACLk7B,sBACE78B,WAAAA,eACGi9B,cAAe,kBACxBkP,qBACK,UAAA,IACJ,MAAAr0B,KAENK,UAAAA,IAAAA,CAkBF,GAAatqB,QAAAwlB,IAAAxlB,QAAAgvC,aAAAhvC,QAAAovC,kBAAApvC,QAAA8iB,WAAA9iB,QAAA8T,QAAA9T,QAAA6pB,KAAA7pB,QAAA8pB,KAAA9pB,QAAA+pB,KAAA/pB,QAAAgqB,KAAAhqB,QAAAiqB,KAAAjqB,QAAAsqB,KAAAtqB,QAAAgU,MAAAhU,QAAAg/C,OAAAA,MAAAh/C,EAAA,EAAA;AAAAi/C,MAAAA;AAAAj/C,SAAAA,EAAA,EAAA,MAAA6+C,aAAA7+C,EAAAqkC,EAAAA,MAAAA,QAAArkC,EAAA4kC,EAAAA,MAAAA,WAAA5kC,UAAAg/C,OArCfC,MAAA3qC,2BAAAA,IAAC,WAAO,GAAKswB,SAAkBia,SAAAA,WAAmB,WAAA,sBAA2Bxa,MAC3E2a,UAqCF,IAAA,CAAA,GAAUh/C,QAAA6+C,WAAA7+C,QAAAqkC,MAAArkC,QAAA4kC,SAAA5kC,QAAAg/C,KAAAh/C,QAAAi/C,OAAAA,MAAAj/C,EAAA,EAAA,GAtCVi/C;AAsCU;AAIdd,UAAU3pC,cAAc;AChLjB,MAAM0qC,WAAWv8B,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA8tB,MAAAA,eAAAC,oBAAAna,UAAA2L,UAAA2/B,SAAAlQ,SAAAlmC,eAAAC,aAAAF,cAAAD,YAAAugB,UAAAC,UAAAsE,SAAA7K,WAAAs8B,cAAAl/C,IAAAG,IAAA0C,IAAAC,IAAAkgB,IAAAsD,IAAAjI;AAAAve,WAAApD,SAKjC;AAAA,IAAA4oB,IAAAtlB;AAAAA,IAAA2T;AAAAA,IAAA2L;AAAAA,IAAAjhB,UAAA8B;AAAAA,IAAA8+C;AAAAA,IAAA7yB,MAAAyB;AAAAA,IAAAU,WAAAT;AAAAA,IAAAihB;AAAAA,IAAA3lB,SAAAvmB;AAAAA,IAAAqmB;AAAAA,IAAAC;AAAAA,IAAAxgB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA2kB;AAAAA,IAAA1M,QAAAje;AAAAA,IAAAwrB,UAAA4wB;AAAAA,IAAApiD,OAAAkmB;AAAAA,IAAA3E;AAAAA,IAAAvK,MAAAwS;AAAAA,IAAA,GAAA1D;AAAAA,EAAAA,IAuBIlmB,OAAKoD,OAAApD,OAAAoD,OAAA+tB,eAAA/tB,OAAAguB,oBAAAhuB,OAAA6T,UAAA7T,OAAAwf,UAAAxf,OAAAm/C,SAAAn/C,OAAAivC,SAAAjvC,OAAA+I,eAAA/I,OAAAgJ,aAAAhJ,OAAA8I,cAAA9I,QAAA6I,YAAA7I,QAAAopB,UAAAppB,QAAAqpB,UAAArpB,QAAA2tB,SAAA3tB,QAAA8iB,WAAA9iB,QAAAo/C,cAAAp/C,QAAAE,IAAAF,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,IAAAxmB,QAAAue,SAAAwP,gBAAA/tB,EAAA,CAAA,GAAAguB,qBAAAhuB,EAAA,CAAA,GAAA6T,WAAA7T,EAAA,CAAA,GAAAwf,WAAAxf,EAAA,CAAA,GAAAm/C,UAAAn/C,EAAA,CAAA,GAAAivC,UAAAjvC,EAAA,CAAA,GAAA+I,gBAAA/I,EAAA,CAAA,GAAAgJ,cAAAhJ,EAAA,CAAA,GAAA8I,eAAA9I,EAAA,CAAA,GAAA6I,aAAA7I,EAAA,EAAA,GAAAopB,WAAAppB,EAAA,EAAA,GAAAqpB,WAAArpB,EAAA,EAAA,GAAA2tB,UAAA3tB,EAAA,EAAA,GAAA8iB,YAAA9iB,EAAA,EAAA,GAAAo/C,eAAAp/C,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAK,KAAAL,EAAA,EAAA,GAAA+C,KAAA/C,EAAA,EAAA,GAAAgD,KAAAhD,EAAA,EAAA,GAAAkjB,KAAAljB,EAAA,EAAA,GAAAwmB,KAAAxmB,EAAA,EAAA,GAAAue,OAAAve,EAAA,EAAA;AAtBP,QAAAwlB,KAAAtlB,OAAa3D,SAAR,WAAL2D,IAGA3B,YAAA8B,OAAY9D,aAAZ8D,IAKAipB,UAAAvmB,OAAWxG,aAAXwG,IAQAke,SAAAje,OAAUzG,aAAVyG,IAEAhG,QAAAkmB,OAAS3mB,aAAT2mB,IAEAlP,OAAAwS,OAAgBjqB,SAAT,YAAPiqB,IAGF;AAAA,IAAA1S;AAAAA,EAAiBW,IAAAA,aACjB0nC,GAAAA,OAAa+B,WACb;AAAA,IAAA5jB;AAAAA,IAAAkgB;AAAAA,IAAAa;AAAAA,IAAAO,kBAAAyC;AAAAA,IAAAxC,kBAAAwD;AAAAA,EAAA,IAMIlD,MACJP,mBAAyByC,qBAAqBlC,KAAI9M,cAClDwM,mBAAyBwD,qBAAqBlD,KAAI5M,cAClD,CAAA3S,aAAA0hB,cAAA,IAAsC/9C,mBAAoC,GAC1Es0C,SAAe3zC,CAAAA,CAAQo5B,iBAAkBA,kBAAkBsC,aAC3Dt5B,MAAY5B,MAAAA,OAAA,IAAkC;AAAC+kB,MAAAA;AAAAzmB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAEiC0U,KAAAA,MAAMnjB,IAAGzB,SAAQ7B,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAAjGgS,MAAAA,oBAAkEke,cAAczJ,EAAiB;AAAC,MAAAC,IAAAE;AAAA5mB,IAAAw6C,EAAAA,MAAAA,SAAAx6C,UAAA48B,eAAA58B,EAAA,EAAA,MAAAo/C,gBAExF14B,KAAAA,MAAM8zB,MAAM5d,aAAawiB,YAAY,GAAGx4B,KAAC4zB,CAAAA,OAAO5d,aAAawiB,YAAY,GAACp/C,QAAAw6C,OAAAx6C,QAAA48B,aAAA58B,QAAAo/C,cAAAp/C,QAAA0mB,IAAA1mB,QAAA4mB,OAAAF,KAAA1mB,EAAA,EAAA,GAAA4mB,KAAA5mB,EAAA,EAAA,IAApF2B,gBAAU+kB,IAAwCE,EAAkC;AAACC,MAAAA;AAAA7mB,IAAAwf,EAAAA,MAAAA,YAAAxf,UAAAivC,WAAAjvC,EAAA,EAAA,MAAAq7C,eAGnFx0B,KAAA3iB,CAAA,UAAA;AACMsb,iBACAyvB,WAASA,QAAQ/qC,KAAK,GACtBm3C,eAAaA;EAAY,GAC9Br7C,QAAAwf,UAAAxf,QAAAivC,SAAAjvC,QAAAq7C,aAAAr7C,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA;AALH,QAAAgvC,cAAoBnoB;AAOnB,MAAAE,KAAAC;AAAAhnB,IAAAspB,EAAAA,MAAAA,WAAAtpB,EAAA+I,EAAAA,MAAAA,iBAAA/I,EAAAgJ,EAAAA,MAAAA,eAAAhJ,UAAA8I,gBAAA9I,EAAA,EAAA,MAAA6I,cAAA7I,EAAA,EAAA,MAAAopB,YAAAppB,EAAA,EAAA,MAAAqpB,YAGQrC,MAAA;AAAA,IAAAsC;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAxgB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,GAQNhJ,QAAAspB,SAAAtpB,QAAA+I,eAAA/I,QAAAgJ,aAAAhJ,QAAA8I,cAAA9I,QAAA6I,YAAA7I,QAAAopB,UAAAppB,QAAAqpB,UAAArpB,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA,GAAA+mB,MARMC;AADT,QAAAs4B,eAAqBv4B,KAaGE,MAAAlnB,aAAaxB,SAAQ;AAAC4oB,MAAAA;AAAAnnB,YAAAinB,OAAtBE,MAAAF,IAAsBhrB,IAAAwG,OAAiB,GAACzC,QAAAinB,KAAAjnB,QAAAmnB,OAAAA,MAAAnnB,EAAA,EAAA;AAAhE,QAAAu/C,kBAAwBp4B;AAAwCE,MAAAA;AAAArnB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAErCsV,MAAAtmB,CAAA,OAAA;AACtBc,QAAAA,UAAWd,IACdu9C,eAAev9C,EAAE;AAAA,EAAA,GAClBf,QAAAqnB,OAAAA,MAAArnB,EAAA,EAAA;AAHD,QAAAw/C,SAAen4B,KAUGkC,MAAA/D,OAAO,YAAYmI,SACnBnE,MAAAhE,OAAO,YAAYmI,UAAU,KAAEpxB,QAC9BktB,MAAAorB,SAAS,KAAEt4C,QACXmtB,MAAAlK,WAAW,KAAEjjB,QAEnBotB,MAAA5pB,aAAakhB,MAAM,GAClB2I,MAAA7pB,aAAA,CAAc,GACjB8pB,MAAArK,WAAW,YAAYxL,MAQxB8V,MAAAtE,OAAO,WAAW,WAAQjpB;AAAYwtB,MAAAA;AAAA/pB,IAAA,EAAA,MAAA+tB,iBAAA/tB,EAAA,EAAA,MAAAguB,sBAAAhuB,EAAA,EAAA,MAAAzB,aAAAyB,EAAAm/C,EAAAA,MAAAA,WAAAn/C,EAAAu/C,EAAAA,MAAAA,mBAAAv/C,EAAAs/C,EAAAA,MAAAA,gBAAAt/C,EAAAhD,EAAAA,MAAAA,SAAAgD,UAAAue,QAE3CwL,OAACgE,iBAAiBxP,QAAQyP,uBACzB9G,2BAAA,KAAC,QAAQ,IAAA,QAAYlqB,KAAAA,OAAa,OAAA,UAAasiD,GAAAA,cAC5CvxB,UAAAA;AAAAA,IACC,iBAAA7G,2BAAA,KAAC,MAAW3oB,EAAAA,iBACT+pB,UAAAA;AAAAA,MAAAA,MAAAA,eAAeyF,aAAa,KAAKA;AAAAA,MACjClI,QAAAA,mBAAmBkI,aAAa,KAAKzZ,2BAAA,IAAC,eAAa,CAAA,CAAA;AAAA,IAAA,GACtD;AAAA,IAGDiK,QACCjK,2BAAAA,IAAC,KAAU,EAAA,MAAA,GACT,UAACA,2BAAA,IAAA,MAAA,EAAW/V,MAAAA,WAAuB,cAAA,YAAkB,QAAA,UAC/C,eACN,CAAA,GACF;AAAA,IAGD4gD,WACE7qC,2BAAAA,IAAA,SAAA,EACWirC,UAAAA,iBACJJ,MAAM,SACL,OAAA;AAAA,MAAA9/C,WAAA;AAAA,MAAAC,cAAA;AAAA,IAAA,GAEX;AAAA,IAEC0uB,sBACC9G,2BAAA,KAAC,MAAW3oB,EAAAA,MAAOA,WAChB+pB,UAAAA;AAAAA,MAAAA,MAAAA,eAAe0F,kBAAkB,KAAKA;AAAAA,MACtCnI,QAAAA,mBAAmBmI,kBAAkB,KAAK1Z,2BAAA,IAAC,oBAAkB,CAAA,CAAA;AAAA,IAAA,EAChE,CAAA;AAAA,EAAA,EAEJ,CAAA,GACDtU,QAAA+tB,eAAA/tB,QAAAguB,oBAAAhuB,QAAAzB,WAAAyB,QAAAm/C,SAAAn/C,QAAAu/C,iBAAAv/C,QAAAs/C,cAAAt/C,QAAAhD,OAAAgD,QAAAue,MAAAve,QAAA+pB,OAAAA,MAAA/pB,EAAA,EAAA;AAAAgqB,MAAAA;AAAAhqB,IAAA6T,EAAAA,MAAAA,YAAA7T,UAAAs/C,gBACAt1B,MAAAnW,YACCS,2BAAA,IAAC,KAAO,EAAA,IAAA,QAAM,GAAKgrC,cAChBzrC,SACH,CAAA,GACD7T,QAAA6T,UAAA7T,QAAAs/C,cAAAt/C,QAAAgqB,OAAAA,MAAAhqB,EAAA,EAAA;AAAAiqB,MAAAA;AAAAjqB,SAAAA,EAAA,EAAA,MAAAwlB,MAAAxlB,EAAA,EAAA,MAAAwf,YAAAxf,EAAA,EAAA,MAAAgvC,eAAAhvC,EAAA47C,EAAAA,MAAAA,oBAAA57C,EAAA67C,EAAAA,MAAAA,oBAAA77C,UAAA8iB,aAAA9iB,EAAA,EAAA,MAAA8T,UAAA9T,EAAA,EAAA,MAAAupB,OAAAvpB,EAAAwpB,EAAAA,MAAAA,OAAAxpB,EAAAypB,EAAAA,MAAAA,OAAAzpB,EAAA0pB,EAAAA,MAAAA,OAAA1pB,EAAA2pB,EAAAA,MAAAA,OAAA3pB,EAAA,EAAA,MAAA4pB,OAAA5pB,EAAA,EAAA,MAAA6pB,OAAA7pB,EAAA8pB,EAAAA,MAAAA,OAAA9pB,EAAA+pB,EAAAA,MAAAA,OAAA/pB,UAAAgqB,OA1DHC,MAAA/C,2BAAAA,KAAC,YACS,EAAA,WAAA,YACH,MAAA,YACDpE,GAAAA,WACU,gBAAAyG,KACA,gBAAAC,KACC,iBAAAC,KACA,iBAAAC,KACFlE,aAAAA,IACJ,SAAAmE,KACC,UAAAC,KACH,OAAAC,KACE/V,SAAK,QACJ0L,UACDwvB,SAAAA,aACK4M,cAAAA,kBACAC,gCACT2D,KAAK,QACA,UAAC,IACL,MAAA11B,KAELC,UAAAA;AAAAA,IAAAA;AAAAA,IAiCAC;AAAAA,EAAAA,EAKH,CAAA,GAAahqB,QAAAwlB,IAAAxlB,QAAAwf,UAAAxf,QAAAgvC,aAAAhvC,QAAA47C,kBAAA57C,QAAA67C,kBAAA77C,QAAA8iB,WAAA9iB,QAAA8T,QAAA9T,QAAAupB,KAAAvpB,QAAAwpB,KAAAxpB,QAAAypB,KAAAzpB,QAAA0pB,KAAA1pB,QAAA2pB,KAAA3pB,QAAA4pB,KAAA5pB,QAAA6pB,KAAA7pB,QAAA8pB,KAAA9pB,QAAA+pB,KAAA/pB,QAAAgqB,KAAAhqB,QAAAiqB,OAAAA,MAAAjqB,EAAA,EAAA,GA3DbiqB;AA2Da,CAEhB;AACDi1B,SAAS1qC,cAAc;AA5IY,SAAA/R,QAAAic,GAAA;AAAA,SAsEyBA,IAAK;AAAA;AC3GjE,MAAM+gC,WAAWr0B,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GASXs0B,YAAY5gC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,oBAYE2gC,QAAQ;AAAA;AAAA;AAAA;AAAA,GAUfE,gBAAgB7gC,iBAAAA;AAAAA,aAChB,CAAC;AAAA,EAAC8gC;AAAQ,MAAOA,WAAW,IAAI,CAAE;AAAA;AAAA;AAAA;AAAA,MAIzC,CAAC;AAAA,EAACC;AAAS,MACXA,YACIH,YACA5gC,iBAAAA;AAAAA;AAAAA,WAEC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCnCLghC,mBAAiB99B,iCAAAA,OAAOgH,GAAG,EAAC9G,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAEhCnB,EAAAA,uBAAuB2+B,aAAa,GAezBI,WAAWp9B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAAisC,MAAAA,OAAAjrB,QAAA6B,WAAA5iB;AAAAF,WAAApD,SAIjC;AAAA,IAAAojD,UAAA9/C;AAAAA,IAAAgsC;AAAAA,IAAAjrB;AAAAA,IAAA,GAAA6B;AAAAA,EAAAA,IAAwDlmB,OAAKoD,OAAApD,OAAAoD,OAAAksC,OAAAlsC,OAAAihB,QAAAjhB,OAAA8iB,WAAA9iB,OAAAE,OAAAgsC,QAAAlsC,EAAA,CAAA,GAAAihB,SAAAjhB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAtDggD,QAAAA,WAAA9/C,OAAgB3D,cAAhB2D,IACP+/C,CAAAA,SAAAC,UAAA,IAA8B3/C,MAAAA,SAAkB2rC,CAAoB,KAAA;AAAC,MAAA7rC,IAAA0C;AAAA/C,WAAAksC,SAE3D7rC,KAAAA,MAAA;AAAA,QAAA,CACH6rC;AAAK,aACDgU,aAAe;AAGxBnyC,UAAAA,UAAgBs+B,WAAA,MAAA;AACd6T,mBAAe;AAAA,OACdhU,KAAK;AAAC,WAAA,MAAA;AAGPE,mBAAar+B,OAAO;AAAA,IAAC;AAAA,EAAA,GAEtBhL,MAACmpC,KAAK,GAAClsC,OAAAksC,OAAAlsC,OAAAK,IAAAL,OAAA+C,OAAA1C,KAAAL,EAAA,CAAA,GAAA+C,KAAA/C,EAAA,CAAA,IAZV2B,gBAAUtB,IAYP0C,EAAO;AAMGC,QAAAA,KAAAjD,aAAakhB,MAAM;AAACiC,MAAAA;AAAA,SAAAljB,EAAAggD,CAAAA,MAAAA,YAAAhgD,EAAA,CAAA,MAAAsD,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,EAAA,EAAA,MAAAgD,MAAAhD,UAAAigD,WAH/B/8B,KAAA5O,2BAAA,IAACwrC,kBAAc,EAAA,GACTh9B,WACOk9B,WAAAA,UACF,SAAAh9C,IACCi9C,UAAAA,SACL38C,IAAAA,CACL,GAAAtD,OAAAggD,UAAAhgD,OAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAgD,IAAAhD,QAAAigD,SAAAjgD,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA,GANFkjB;AAME,CAEL;AACD68B,SAASvrC,cAAc;ACjDvB,MAAMsrC,iBAAiB99B,iCAAAA,OAAO+9B,QAAQ,EAAC79B,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EACrCvlB,CAIG,UAAA;AACG,QAAA;AAAA,IAACS;AAAAA,IAAO8iD;AAAAA,MAAUvjD,OAClB;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK,GACvCyjD,YAAY7iD,KAAK4iD,MAAM;AAEdtkD,SAAAA,YAAYC,OAAOuB,OAAQiB,CAAc,cAAA;AAChDC,UAAAA,YAAW6hD,UAAU3iD,MAAMa,SAAS;AAGnC,WAAA;AAAA,MAACL,QAFUM,UAASM,aAAaN,UAASE,iBAAiBF,UAASG;AAAAA,IAElD;AAAA,EAAA,CAC1B;AAGH,CAAC,GAsCY2hD,eAAe19B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAA6iB,WAAA5iB;AAAAF,WAAApD,SAKrC;AAAA,IAAA4B,MAAA0B;AAAAA,IAAA,GAAA4iB;AAAAA,EAAAA,IAAiClmB,OAAKoD,OAAApD,OAAAoD,OAAA8iB,WAAA9iB,OAAAE,OAAA4iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AACtC,QAAA3C,QAAc0C,aADPG,OAAQ3D,aAAR2D,EACwB;AAACG,MAAAA;AAAA,SAAAL,EAAA3C,CAAAA,MAAAA,SAAA2C,SAAAsD,OAAAtD,EAAA,CAAA,MAAA8iB,aAEzBziB,oCAAC,kBAAc,GAAKyiB,WAAkBzlB,OAAYiG,KAAY,QAAA,OAAS,CAAA,GAAAtD,OAAA3C,OAAA2C,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAvEK;AAAuE,CAC/E;AACDggD,aAAa7rC,cAAc;AAMpB,MAAM8rC,gBAAgB39B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAA6iB,WAAA5iB;AAAAF,WAAApD,SAKtC;AAAA,IAAA4B,MAAA0B;AAAAA,IAAA,GAAA4iB;AAAAA,EAAAA,IAAiClmB,OAAKoD,OAAApD,OAAAoD,OAAA8iB,WAAA9iB,OAAAE,OAAA4iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AACtC,QAAA3C,QAAc0C,aADPG,OAAQ3D,aAAR2D,EACwB;AAACG,MAAAA;AAAA,SAAAL,EAAA3C,CAAAA,MAAAA,SAAA2C,SAAAsD,OAAAtD,EAAA,CAAA,MAAA8iB,aAEzBziB,oCAAC,kBAAc,GAAKyiB,WAAkBzlB,OAAYiG,KAAY,QAAA,QAAU,CAAA,GAAAtD,OAAA3C,OAAA2C,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAxEK;AAAwE,CAChF;AACDigD,cAAc9rC,cAAc;AAMrB,MAAM+rC,kBAAkB59B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAA6iB,WAAA5iB;AAAAF,WAAApD,SAKxC;AAAA,IAAA4B,MAAA0B;AAAAA,IAAA,GAAA4iB;AAAAA,EAAAA,IAAiClmB,OAAKoD,OAAApD,OAAAoD,OAAA8iB,WAAA9iB,OAAAE,OAAA4iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AACtC,QAAA3C,QAAc0C,aADPG,OAAQ3D,aAAR2D,EACwB;AAACG,MAAAA;AAAA,SAAAL,EAAA3C,CAAAA,MAAAA,SAAA2C,SAAAsD,OAAAtD,EAAA,CAAA,MAAA8iB,aAEzBziB,oCAAC,kBAAc,GAAKyiB,WAAkBzlB,OAAYiG,KAAY,QAAA,UAAY,CAAA,GAAAtD,OAAA3C,OAAA2C,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAA1EK;AAA0E,CAClF;AACDkgD,gBAAgB/rC,cAAc;AAMvB,MAAMgsC,eAAe79B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAA6iB,WAAA5iB;AAAAF,WAAApD,SAKrC;AAAA,IAAA4B,MAAA0B;AAAAA,IAAA,GAAA4iB;AAAAA,EAAAA,IAAiClmB,OAAKoD,OAAApD,OAAAoD,OAAA8iB,WAAA9iB,OAAAE,OAAA4iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AACtC,QAAA3C,QAAc0C,aADPG,OAAQ3D,aAAR2D,EACwB;AAACG,MAAAA;AAAA,SAAAL,EAAA3C,CAAAA,MAAAA,SAAA2C,SAAAsD,OAAAtD,EAAA,CAAA,MAAA8iB,aAEzBziB,oCAAC,kBAAc,GAAKyiB,WAAkBzlB,OAAYiG,KAAY,QAAA,OAAS,CAAA,GAAAtD,OAAA3C,OAAA2C,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GAAvEK;AAAuE,CAC/E;AACDmgD,aAAahsC,cAAc;AClG3B,MAAMisC,eAAez+B,iBAAAA,OAAO8L,MAAM,EAAC5L,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAElC,oBAKYu+B,MAAM/9B,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAAswC,MAAAA,SAAAjkB,MAAAoF,IAAAivB,OAAA1R,SAAAxS,SAAA3Z,WAAA0L,UAAAtuB,IAAAG;AAAAL,WAAApD,SAQ5B;AAAA,IAAA0vB;AAAAA,IAAAoF;AAAAA,IAAA6e;AAAAA,IAAAhyC,UAAA2B;AAAAA,IAAAygD;AAAAA,IAAA1R;AAAAA,IAAAxS;AAAAA,IAAAnT,SAAAjpB;AAAAA,IAAAmuB;AAAAA,IAAA,GAAA1L;AAAAA,EAAAA,IAWIlmB,OAAKoD,OAAApD,OAAAoD,OAAAuwC,SAAAvwC,OAAAssB,MAAAtsB,OAAA0xB,IAAA1xB,OAAA2gD,OAAA3gD,OAAAivC,SAAAjvC,OAAAy8B,SAAAz8B,OAAA8iB,WAAA9iB,OAAAwuB,UAAAxuB,OAAAE,IAAAF,QAAAK,OAAAkwC,UAAAvwC,EAAA,CAAA,GAAAssB,OAAAtsB,EAAA,CAAA,GAAA0xB,KAAA1xB,EAAA,CAAA,GAAA2gD,QAAA3gD,EAAA,CAAA,GAAAivC,UAAAjvC,EAAA,CAAA,GAAAy8B,UAAAz8B,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAwuB,WAAAxuB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAK,KAAAL,EAAA,EAAA;AAPP,QAAAzB,YAAA2B,OAAY3D,aAAZ2D,IAIAopB,UAAAjpB,OAAW9D,aAAX8D,IAIFiD,MAAY5B,MAAA,OAAA,IAAqC,GACjDk/C,aAAmBl/C,aAAA,EAAY;AAACqB,MAAAA;AAAA/C,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAI9BhP,KAAAA,MAAMO,IAAGzB,SAAQ7B,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA,GAFnBgS,MAAAA,oBACEke,cACAntB,EACF;AAACC,MAAAA;AAAAhD,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAE8B/O,KAAAA,MAAA;AAC7B49C,eAAU/+C,UAAA;AAAA,EAAA,GACX7B,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA;AAFD,QAAA6uC,aAAmB7rC;AAEbkgB,MAAAA;AAAAljB,YAAAy8B,WAGJvZ,KAAAhf,CAAA,UAAA;AACE08C,eAAU/+C,UAAA,IACN46B,WAASA,QAAQv4B,KAAK;AAAA,EAAC,GAC5BlE,QAAAy8B,SAAAz8B,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA;AAJH,QAAA68B,cAAoB3Z;AAMnB,MAAAsD,IAAAC;AAAAzmB,YAAAuwC,WAES/pB,KAAAA,MAAA;AACJ+pB,eAAO,CAAKqQ,WAAU/+C,YACpByB,IAAGzB,WAAUyB,IAAGzB,QAAAg5B,MACpB+lB,GAAAA,WAAU/+C,UAAA;AAAA,EAAA,GAEX4kB,MAAC8pB,OAAO,GAACvwC,QAAAuwC,SAAAvwC,QAAAwmB,IAAAxmB,QAAAymB,OAAAD,KAAAxmB,EAAA,EAAA,GAAAymB,KAAAzmB,EAAA,EAAA,IALZ2B,gBAAU6kB,IAKPC,EAAS;AAMO,QAAAC,KAAA8H,WAAW,SAAS,SAYzB5H,KAAA4H,WAAiB,IAAA;AAAA3H,MAAAA;AAAA,SAAA7mB,EAAAzB,EAAAA,MAAAA,aAAAyB,EAAA,EAAA,MAAA68B,eAAA78B,UAAAssB,QAAAtsB,EAAA0xB,EAAAA,MAAAA,MAAA1xB,EAAA,EAAA,MAAA2gD,SAAA3gD,EAAAivC,EAAAA,MAAAA,WAAAjvC,EAAA,EAAA,MAAAspB,WAAAtpB,UAAA8iB,aAAA9iB,EAAAwuB,EAAAA,MAAAA,YAAAxuB,EAAA,EAAA,MAAA0mB,MAAA1mB,UAAA4mB,MAf7BC,oCAAC,cACS,EAAA,WAAA,OACJ/D,GAAAA,WACW,iBAAA4D,IACLnoB,UAAAA,WACJ+tB,MACFoF,IACC,MAAA,SACIud,SACDJ,QAAS,YACRhS,SAAU,aACVvT,SACJhmB,KACA,MAAA,OACKkrB,UACA,UAAA5H,IACJ+5B,MAAI,OACL,MAAA,SACL,CAAA,GAAA3gD,QAAAzB,WAAAyB,QAAA68B,aAAA78B,QAAAssB,MAAAtsB,QAAA0xB,IAAA1xB,QAAA2gD,OAAA3gD,QAAAivC,SAAAjvC,QAAAspB,SAAAtpB,QAAA8iB,WAAA9iB,QAAAwuB,UAAAxuB,QAAA0mB,IAAA1mB,QAAA4mB,IAAA5mB,QAAA6mB,MAAAA,KAAA7mB,EAAA,EAAA,GAlBF6mB;AAkBE,CAEL;AACD65B,IAAIlsC,cAAc;ACvFlB,MAAMqsC,eAAe7+B,iBAAAA,OAAOoS,MAAM,EAAClS,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAOlC,8FAKY2+B,UAAUn+B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAA4iB,cAAAC;AAAA9iB,WAAApD,SAIhC;AAAA,IAAAiX,UAAAgP;AAAAA,IAAA,GAAAC;AAAAA,EAAAA,IAA+ClmB,OAAKoD,OAAApD,OAAAoD,OAAA6iB,cAAA7iB,OAAA8iB,cAAAD,eAAA7iB,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA;AACpD,QAAA,CAAA66C,cAAAkG,eAAA,IAAwCxgD,MAAAA,WAAW;AAACL,MAAAA;AAAA,MAAAF,EAAA6iB,CAAAA,MAAAA,gBAAA7iB,SAAA66C,cAAA;AAEpD,UAAAhnC,WAAsCuU,MAAAA,SAAAC,QAAiBxF,YAAY,EAAC5hB,OAAAqnB,oBAAsB;AAACjoB,QAAAA;AAAAL,aAAA66C,gBAEjEx6C,MAAAA,CAAAsoB,OAAAC,eACxBC,MAAAA,aAAaF,OAAK;AAAA,MAAA4nB,SACPsK,iBAAiBjyB;AAAAA,MAAUltB,KAC/BktB;AAAAA,MAAU6T,SAAAA,MACAskB,gBAAgBn4B,UAAU;AAAA,IAC1C,CAAA,GAAC5oB,OAAA66C,cAAA76C,OAAAK,OAAAA,MAAAL,EAAA,CAAA,GALSE,KAAA2T,SAAQ5X,IAAKoE,GAM1B,GAACL,OAAA6iB,cAAA7iB,OAAA66C,cAAA76C,OAAAE;AAAAA,EAAA;AAAAA,SAAAF,EAAA,CAAA;AANDghD,QAAAA,OAAa9gD,IAQb+gD,UAAgBD,KAAIjkD;AAAOsD,MAAAA;AAAAL,WAAAihD,WAGzB5gD,KAAA6D,CAAA,UAAA;AACMA,UAAKxI,QAAS,eAChBqlD,gBAAeG,CAAAA,eAAiBA,YAAYD,UAAO,KAAQA,OAAO,GAGhE/8C,MAAKxI,QAAS,gBAChBqlD,gBAAeI,CAAiBD,iBAAAA,cAAa,KAAID,OAAO;AAAA,EAAC,GAE5DjhD,OAAAihD,SAAAjhD,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AATH,QAAAmS,gBAAsB9R;AAWrB0C,MAAAA;AAAA/C,SAAAA,EAAA,EAAA,MAAAmS,iBAAAnS,EAAAsD,EAAAA,MAAAA,OAAAtD,EAAA8iB,EAAAA,MAAAA,aAAA9iB,UAAAghD,QAGCj+C,KAACuR,2BAAA,IAAA,cAAA,EACS,WAAA,WAAS,GACbwO,WACO3Q,WAAY,eAClB7O,KACA,MAAA,WAED,UAAA,MACN,GAAetD,QAAAmS,eAAAnS,QAAAsD,KAAAtD,QAAA8iB,WAAA9iB,QAAAghD,MAAAhhD,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA,GARf+C;AAQe,CAElB;AACD+9C,QAAQtsC,cAAc;ACnDf,MAAM4sC,WAAWz+B,MAAAA,WAAW,SAAA/lB,OAAA0G,KAAA;AAAAtD,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAA6Y,MAAAgK;AAAA9iB,WAAApD,SAKjC;AAAA,IAAAkc;AAAAA,IAAA,GAAAgK;AAAAA,EAAAA,IAA6BlmB,OAAKoD,OAAApD,OAAAoD,OAAA8Y,MAAA9Y,OAAA8iB,cAAAhK,OAAA9Y,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA;AASpB,QAAAE,KAAAtD,MAAK49B,aAAAj+B,SAAuB,IAAOK,MAAK49B;AAASn6B,MAAAA;AAAA,SAAAL,SAAA8Y,QAAA9Y,EAAApD,CAAAA,MAAAA,MAAAiX,YAAA7T,EAAAsD,CAAAA,MAAAA,OAAAtD,EAAA,CAAA,MAAA8iB,aAAA9iB,SAAAE,MAN7DG,oCAAC,KACS,EAAA,WAAA,YACJyiB,GAAAA,WACEhK,MACDxV,KACA,MAAA,YACK,UAAApD,IAETtD,UAAKiX,MAAAA,SACR,CAAA,GAAM7T,OAAA8Y,MAAA9Y,EAAA,CAAA,IAAApD,MAAAiX,UAAA7T,OAAAsD,KAAAtD,OAAA8iB,WAAA9iB,OAAAE,IAAAF,OAAAK,MAAAA,KAAAL,EAAA,CAAA,GATNK;AASM,CAET;AACD+gD,SAAS5sC,cAAc;AC/BhB,MAAM6sC,UAAUr/B,iBAAAA,OAAOkJ,IAAI,EAAChJ,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAElC,qBAEKm/B,mBAAmBl2B,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GASnBm2B,qBAAqB;AAEpB,SAASC,WACd5kD,OACwB;AAClB,QAAA;AAAA,IAACoc;AAAAA,EAAS/b,IAAAA,wBAAYL,MAAMD,KAAK,GAEjC8kD,kBAAkBzoC,MAAMoU,OAAOhO,QAAQxiB,MAAMoX,IAAI,EAAEqL,QAAQ7F;AAEjE,SAAK5c,MAAM8kD,YASJ5iC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,sBAMayiC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKxBA,kBAAkB;AAAA,oBACdE,eAAe;AAAA,wBACXH,gBAAgB;AAAA,4BACZ1kD,MAAM8kD,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,qBAKtBhnD,uCAAuC;AAAA;AAAA;AAAA,MA3BjDokB,iBAAAA;AAAAA;AAAAA;AAAAA,uBAGYpkB,uCAAuC;AAAA;AAAA;AAAA;AA4B9D;ACvCA,MAAMinD,mBAA4D;AAAA,EAChEjpB,OAAO;AAAA,EACPkpB,SAAS;AAAA,EACTC,SAAS;AAAA,EACThpB,MAAM;AACR,GAEMipB,cAAc;AAAA,EAClBppB,OAAO;AAAA,EACPkpB,SAAS;AAAA,EACTC,SAAS;AAAA,EACThpB,MAAM;AACR,GAEMkpB,QAAQ;AAAA,EACZrpB,OAAO;AAAA,EACPkpB,SAAS;AAAA,EACTC,SAAS;AAAA,EACThpB,MAAM;AACR,GAEMmpB,cAAchgC,iCAAAA,OAAOwN,IAAI,EAACtN,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAC9Bq/B,UAAU;AAUL,SAAAS,MAAArlD,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,EAAA;AAAA,MAAAiiD,UAAAC,aAAAhnD,UAAAs8C,SAAA30B,WAAA4C,QAAAxlB,IAAAqlB;AAAAvlB,WAAApD,SAGL;AAAA,IAAAslD;AAAAA,IAAAC;AAAAA,IAAAhnD;AAAAA,IAAAs8C;AAAAA,IAAAx2B,QAAA/gB;AAAAA,IAAAqlB;AAAAA,IAAAG;AAAAA,IAAA,GAAA5C;AAAAA,EAA4FlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAAkiD,UAAAliD,OAAAmiD,aAAAniD,OAAA7E,UAAA6E,OAAAy3C,SAAAz3C,OAAA8iB,WAAA9iB,OAAA0lB,QAAA1lB,OAAAE,IAAAF,OAAAulB,UAAA28B,WAAAliD,EAAA,CAAA,GAAAmiD,cAAAniD,EAAA,CAAA,GAAA7E,WAAA6E,EAAA,CAAA,GAAAy3C,UAAAz3C,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAA0lB,SAAA1lB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAulB,QAAAvlB,EAAA,CAAA;AAAhDihB,QAAAA,SAAA/gB,OAAU3D,aAAV2D,IACjDkiD,WAAiB18B,SAAMi8B,iBAAoBj8B,MAAM,IAAI,WACrD28B,aAAmB38B,SAAMo8B,YAAep8B,MAAM,IAAI,WAClD48B,OAAa58B,SAAMq8B,MAASr8B,MAAM,IAAI;AAAQrlB,MAAAA;AAAAL,WAAAulB,SAgBnCllB,KAAAklB,SACEjR,+BAAA,MAAA,EAAW,MAAA,GAAU,QAAA,2BAEtB,GACDtU,OAAAulB,OAAAvlB,QAAAK,MAAAA,KAAAL,EAAA,EAAA;AAAA+C,MAAAA;AAAA/C,YAAAmiD,eACAp/C,KAAAo/C,eACE7tC,+BAAA,MAAA,EAAK,OAAA,IAAY,MAAC,0BAEnB,GACDtU,QAAAmiD,aAAAniD,QAAA+C,MAAAA,KAAA/C,EAAA,EAAA;AAAAgD,MAAAA;AAAAhD,IAAAK,EAAAA,MAAAA,MAAAL,UAAA+C,MAXLC,KAACsR,2BAAAA,IAAA,SAAA,EAAc,MAAA,GAAY,SAAA,GACzB,UAAC4S,gCAAA,OAAA,EAAa,OAAC,GACZ7mB,UAAAA;AAAAA,IAAAA;AAAAA,IAKA0C;AAAAA,EAAAA,EAKH,CAAA,EACF,CAAA,GAAU/C,QAAAK,IAAAL,QAAA+C,IAAA/C,QAAAgD,MAAAA,KAAAhD,EAAA,EAAA;AAAAkjB,MAAAA;AAAAljB,IAAAqiD,EAAAA,MAAAA,cAAAriD,UAAAkiD,YAAAliD,EAAA,EAAA,MAAAy3C,WAETv0B,KAAAg/B,YACE5tC,2BAAAA,IAAA,KAAA,EAAa,SAAA,GACZ,UAACA,2BAAAA,IAAA,QAAA,EACI,IAAA,UACGq3B,MAAAA,iBACD,MAAA,SACI,YACH0W,MAAS,YACN5K,kBACF,OAAA;AAAA,IAAA7sB,eAAgB;AAAA,EAAA,GAAM,GAEjC,GACD5qB,QAAAqiD,YAAAriD,QAAAkiD,UAAAliD,QAAAy3C,SAAAz3C,QAAAkjB,MAAAA,KAAAljB,EAAA,EAAA;AAAAwmB,MAAAA;AAAAxmB,IAAAgD,EAAAA,MAAAA,MAAAhD,UAAAkjB,MA5BHsD,KAACU,2BAAA,KAAA,MAAW,EAAA,OAAA,cACVlkB,UAAAA;AAAAA,IAAAA;AAAAA,IAeCkgB;AAAAA,EAAAA,EAaH,CAAA,GAAOljB,QAAAgD,IAAAhD,QAAAkjB,IAAAljB,QAAAwmB,MAAAA,KAAAxmB,EAAA,EAAA;AAAAymB,MAAAA;AAAA,SAAAzmB,UAAAoiD,YAAApiD,EAAA7E,EAAAA,MAAAA,YAAA6E,EAAAihB,EAAAA,MAAAA,UAAAjhB,EAAA,EAAA,MAAA8iB,aAAA9iB,UAAAsiD,QAAAtiD,EAAA,EAAA,MAAAwmB,MAvCTC,KAACnS,2BAAAA,IAAA,aAAA,EACS,WAAA,SACFguC,MAAI,GACNx/B,WACO,WAAC,GACJ7B,QACA,QAAA,GACFmhC,gBACKjnD,WAAAA,UAEXqrB,UA8BF,GAAA,CAAA,GAAcxmB,QAAAoiD,UAAApiD,QAAA7E,UAAA6E,QAAAihB,QAAAjhB,QAAA8iB,WAAA9iB,QAAAsiD,MAAAtiD,QAAAwmB,IAAAxmB,QAAAymB,MAAAA,KAAAzmB,EAAA,EAAA,GAxCdymB;AAwCc;AAIlBw7B,MAAMztC,cAAc;ACpGb,SAAA+tC,aAAA;AACEvvC,SAAAA,2BAAAlC,WAAArO,OAAA05B,MAIP;AAAC;AALI,SAAAA,SAAA;AAAA,SAAA;AAAA;AAAA,SAAA15B,QAAA;AAAA,SAAA;AAAA;AAQP,MAAMqO,YAAYA,MAAM,MAAM;AAAC,GCXlB0xC,eAAenvC,0BAC1B,4BACA,IACF;ACNA,IAAIovC,UAAU;AAGP,SAASC,kBAA0B;AACxC,SAAO55B,OAAO25B,SAAS;AACzB;ACyBA,MAAME,sBAAsB3gC,iBAAAA,OAAO8a,KAAK,EAAC5a,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAOxC,sEAEKygC,iBAAiB5gC,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAOhC;AAKM,SAAA0gC,cAAAjmD,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAA4T;AAAAA,IAAAyV,SAAAppB;AAAAA,IAAAkpB;AAAAA,IAAAC;AAAAA,IAAA8R;AAAAA,EAA6Dv+B,IAAAA,OAA5C0sB,UAAAppB,OAAW3D,aAAX2D;AAAWG,MAAAA;AAAAL,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACoB1R,KAAA,CAAA,GAAEL,OAAAK,MAAAA,KAAAL,EAAA,CAAA;AAAlD,QAAA,CAAAy4B,OAAAqqB,SAAA,IAA2BviD,MAAAA,SAAqBF,EAAE;AAAC0C,MAAAA;AAAA/C,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACoBhP,KAAA,CAAA,GAAE/C,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA;AAAzE+iD,QAAAA,YAAkBrhD,aAAqDqB,EAAE,GACzEs3C,UAAgBkI,WAAW,GAC3BS,uBAA6BrtC,wBAAwB;AAAC,MAAA3S,IAAAkgB,IAAAsD;AAAAxmB,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAGzCmR,KAAA;AAAA,IAAAroB,SAAA;AAAA,IAAA,CAAAH,uCAAA,GAAA;AAAA,IAAAuK,GAAA;AAAA,IAAAnK,OAAA;AAAA,IAAAC,YAKK;AAAA,EAAA,GAGHyrB,KAAA,CAAA,GAAA,GAAA,CAAA,GAASxmB,OAAAkjB,IAAAljB,OAAAwmB,OAAAtD,KAAAljB,EAAA,CAAA,GAAAwmB,KAAAxmB,EAAA,CAAA;AAAA,MAAAymB,IAAAC;AAAA1mB,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KADX0U,KAAA;AAAA,IAAA5rB,SACE2rB;AAAAA,IAAS,CAAA9rB,uCAAA,GAAA,CAAA,GAAA,GAAA,CAAA;AAAA,IAAAuK,GAAA;AAAA,IAAAnK,OAAA;AAAA,EAAA,GAOT4rB,KAAA,CAAA,GAAA,GAAA,CAAA,GAAS1mB,OAAAymB,IAAAzmB,OAAA0mB,OAAAD,KAAAzmB,EAAA,CAAA,GAAA0mB,KAAA1mB,EAAA,CAAA;AAAA4mB,MAAAA;AAAA5mB,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACyB6U,KAAA,CAAA,GAAA,GAAA,CAAA,GAAS5mB,OAAA4mB,MAAAA,KAAA5mB,EAAA,CAAA;AAE7B6mB,QAAAA,KAAAm8B,uBAA8B,IAAA;AAAAj8B,MAAAA;AAAA/mB,WAAA6mB,MAnBlDE,MAAA;AAAA,IAAAnsB,SACIsoB;AAAAA,IAMRloB,SACQyrB;AAAAA,IAKRxrB,MAAA;AAAA,MAAAJ,SAGU6rB;AAAAA,MAAS,CAAAhsB,uCAAA,GACyBksB;AAAAA,MAAS9rB,OAAA;AAAA,MAAAI,YAAA;AAAA,QAAAC,UAE7B0rB;AAAAA,MAAAA;AAAAA,IAA8B;AAAA,EAExD7mB,GAAAA,OAAA6mB,IAAA7mB,OAAA+mB,OAAAA,MAAA/mB,EAAA,CAAA,GAAAgD,KArBM+jB;AADT,QAAAk8B,WAAiBjgD;AAwBhB,MAAAgkB,KAAAC;AAAAjnB,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAuDQkV,MAAA;AAAA,IAAA/S,SAAA;AAAA,IAAAlT,MApDPwhC,CAAA,WAAA;AAEE,YAAAwJ,WAAA/P,CAA8CinB,YAAAA,MAAAA,sBAAsBJ,UAAUrqB,OAAK,CAAC,GAEpF/G,KAAW8Q,OAAM9Q,MAAOgxB,mBACxBvnD,WAAiBqnC,OAAMrnC,YAAiB,KAExCgoD,UAAAA,MAAA;AACE,cAAAC,YAAkBL,UAASlhD,QAAS6vB,EAAE,GAAA0xB;AAEtCpX,iBAAQqX,CAAA,cAAA;AACN,gBAAA7xC,MAAY6xC,UAASC,UAAAC,CAAkBA,MAAAA,EAAC7xB,OAAQA,EAAE;AAAC,cAE/ClgB,MAAQ,IAAA;AACVgyC,kBAAAA,SAAeH,UAASjzC,OAAQ;AAE1BpE,mBAAAA,OAAAA,OAAQwF,MAAM,GAEbgyC;AAAAA,UAAAA;AAGFH,iBAAAA;AAAAA,QAAAA,CACR,GAEGD,cAAS7mD,WACX6vC,aAAagX,SAAS,GAAC,OAChBL,UAASlhD,QAAS6vB,EAAE;AAAA,MAAA;AAIvB+xB,aAAAA,SAAAA,CAAAA,gBACCJ,YAASpiD,OAAAyiD,CAAAA,QACCH,IAAC7xB,OAAQA,EAAE,EAACvkB,OAAA,CAAA;AAAA,QAAAg2C;AAAAA,QAAAzxB;AAAAA,QAAA8Q,QAAA;AAAA,UAAA,GAKXA;AAAAA,UAAMrnC;AAAAA,QAAAA;AAAAA,MAAA,CAAA,CAErB,CACJ,GAEG4nD,UAASlhD,QAAS6vB,EAAE,MACtB0a,aAAa2W,UAASlhD,QAAS6vB,EAAE,EAAA0xB,SAAW,GAAC,OACtCL,UAASlhD,QAAS6vB,EAAE,IAG7BqxB,UAASlhD,QAAS6vB,EAAE,IAAA;AAAA,QAAA0xB,WAAgB/W,WAAW8W,SAAShoD,QAAQ;AAAA,MAAA,GAEzDu2B;AAAAA,IAAAA;AAAAA,EAAE,GAGgB1xB,OAAAinB,OAAAA,MAAAjnB,EAAA,CAAA,GAA3BgnB,MAAOC;AArDT,QAAA1rB,QAAiCyrB;AAsD3B,MAAAG,KAAAE;AAAArnB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAIJoV,MAAAA,MAAA,MAAA;AACO,eAAA;AAAA,MAAAi8B,WAAAO;AAAAA,IAAqBh/C,KAAAA,OAAA5I,OAAcgnD,UAASlhD,OAAQ;AACvDuqC,mBAAagX,WAAS;AAGxBL,cAASlhD,UAAA,CAAA;AAAA,EAAA,GAEXwlB,MAAA,CAAA,GAAErnB,QAAAmnB,KAAAnnB,QAAAqnB,QAAAF,MAAAnnB,EAAA,EAAA,GAAAqnB,MAAArnB,EAAA,EAAA,IARJ2B,MAAAA,UACEwlB,KAOAE,GACF;AAACkC,MAAAA;AAAAvpB,IAAA,EAAA,MAAAq6C,WAAAr6C,EAAA,EAAA,MAAAspB,WAAAtpB,EAAA,EAAA,MAAAopB,YAAAppB,EAAAqpB,EAAAA,MAAAA,YAAArpB,EAAAgjD,EAAAA,MAAAA,wBAAAhjD,EAAAy4B,EAAAA,MAAAA,SAAAz4B,EAAAijD,EAAAA,MAAAA,YAAAjjD,UAAAm7B,WAKI5R,MAAA8wB,WACE/lC,2BAAA,IAAA,qBAAA,EAA4B,WAAA,iBAAyB6mB,SACpD,UAAA7mB,2BAAAA,IAAC,kBACC,UAACA,2BAAAA,IAAA,KAAA,EAAagV,SAAmBF,UAAoBC,UACnD,UAAA/U,2BAAA,IAACiyB,aAAyB,iBAAA,EAAA,SAAA,IACvB9N,UAAAA,MAAKx8B,IAAAutB,CAAAA,SAAA;AAAM,UAAA;AAAA,MAAA25B,SAAAS;AAAAA,MAAAlyB,IAAAmyB;AAAAA,MAAArhB,QAAAshB;AAAAA,IAAAA,IAAAt6B;AAAqB,WAExBkI,2BAAAA,IAAAA,aAAAA,OAAAA,KAAAA,EACE,QAAA,YACC,SAAA,WACA,SAAA,WACH,MAAA,QACKuxB,UAER,YAAAD,uBAAoB;AAAA,MAAA7nD,UAAA;AAAA,IAAA,IAAA;AAAA,MAAAC,MAET;AAAA,MAAQ2oD,SAAA;AAAA,MAAAC,WAAA;AAAA,IAAA,GAGrB,yCAAC,OACW,EAAA,UAAAxhB,SAAM0f,UACH,aAAA1f,SAAM2f,aACVgB,SAAM,WACP,QAAA3gB,SAAM9c,QACP,OAAA8c,SAAMjd,OACH,UAAAid,SAAMrnC,UAAS,EAAA,GAlBtBu2B,IAoBP;AAAA,EAAA,CACD,EACH,CAAA,EACF,CAAA,GACF,GACF,GACD1xB,QAAAq6C,SAAAr6C,QAAAspB,SAAAtpB,QAAAopB,UAAAppB,QAAAqpB,UAAArpB,QAAAgjD,sBAAAhjD,QAAAy4B,OAAAz4B,QAAAijD,UAAAjjD,QAAAm7B,SAAAn7B,QAAAupB,OAAAA,MAAAvpB,EAAA,EAAA;AAAAwpB,MAAAA;AAAA,SAAAxpB,EAAA6T,EAAAA,MAAAA,YAAA7T,UAAAupB,OAnCHC,MAAAtC,2BAAA,KAAA,aAAA,UAAA,EAA8B3rB,OAC3BsY,UAAAA;AAAAA,IAAAA;AAAAA,IACA0V;AAAAA,EAAAA,EAkCH,CAAA,GAAwBvpB,QAAA6T,UAAA7T,QAAAupB,KAAAvpB,QAAAwpB,OAAAA,MAAAxpB,EAAA,EAAA,GApCxBwpB;AAoCwB;AAI5Bq5B,cAAcruC,cAAc;ACxLrB,SAAAyvC,WAAA;AACL1oD,QAAAA,QAAcqY,iBAAA4uC,YAAuB;AAAC,MAAA,CAEjCjnD;AAAKuB,UAAAA,IAAAA,MACQ,mCAAmC;AAAA,MAMjD,CAAC26B,SAASl8B,KAAK,KAAKA,MAAK2Y,YAAgB;AAAApX,UAAAA,IAAAA,MAC3B,iDAAiD;AAG5DvB,SAAAA;AAAK;ACpBE2oD,SAAAA,qBACdzrB,OACA0rB,cACA9Q,gBACoB;AACpB,QAAM7hC,MAAM2yC,aAAah0C,QAAQkjC,cAAc,GACzCqK,MAAMyG,aAAa/zC,MAAM,GAAGoB,GAAG,GAC/B0M,MAAMw/B,IAAI3gD;AAEhB,WAAS0S,IAAIyO,MAAM,GAAGzO,KAAK,GAAGA,KAAK,GAAG;AACpC,UAAM20C,UAAU1G,IAAIjuC,CAAC,EAAEgrB,aAAa,eAAe;AAEnD,QAAI,CAAC2pB;AACH;AAGIC,UAAAA,WAAWD,QAAQtvB,MAAM,GAAG;AAElCuvB,aAASC,IAAI;AAEb,UAAM7lC,IAAc,CAAE;AAEtB,QAAIu0B,WAAW;AAEf,aAASuR,IAAI,GAAGA,IAAIF,SAAStnD,QAAQwnD,KAAK,GAAG;AACzCvjD,QAAAA,KAAKqjD,SAASE,CAAC,CAAC;AAEZC,YAAAA,IAAI/lC,EAAEhF,KAAK,GAAG;AAEpB,UAAI,CAACgf,MAAM+rB,CAAC,GAAGxR,UAAU;AACZ,mBAAA;AACX;AAAA,MAAA;AAAA,IACF;AAGEA,QAAAA;AACF,aAAO0K,IAAIjuC,CAAC;AAAA,EAAA;AAIT,SAAA;AACT;AAEgBg1C,SAAAA,qBACdhsB,OACA0rB,cACA9Q,gBACoB;AACd7hC,QAAAA,MAAM2yC,aAAah0C,QAAQkjC,cAAc,GACzCqK,MAAMyG,aAAa/zC,MAAMoB,GAAG,GAC5B0M,MAAMimC,aAAapnD;AAEzB,WAAS0S,IAAI,GAAGA,IAAIyO,KAAKzO,KAAK,GAAG;AAC3B,QAAA,CAACiuC,IAAIjuC,CAAC;AACR;AAGF,UAAM20C,UAAU1G,IAAIjuC,CAAC,EAAEgrB,aAAa,eAAe;AAEnD,QAAI,CAAC2pB;AACH;AAGIC,UAAAA,WAAWD,QAAQtvB,MAAM,GAAG;AAElCuvB,aAASC,IAAI;AAEb,UAAM7lC,IAAc,CAAE;AAEtB,QAAIu0B,WAAW;AAEf,aAASuR,IAAI,GAAGA,IAAIF,SAAStnD,QAAQwnD,KAAK,GAAG;AACzCvjD,QAAAA,KAAKqjD,SAASE,CAAC,CAAC;AAEZC,YAAAA,IAAI/lC,EAAEhF,KAAK,GAAG;AAEpB,UAAI,CAACgf,MAAM+rB,CAAC,GAAGxR,UAAU;AACZ,mBAAA;AACX;AAAA,MAAA;AAAA,IACF;AAGEA,QAAAA;AACF,aAAO0K,IAAIjuC,CAAC;AAAA,EAAA;AAIT,SAAA;AACT;AAEO,SAASi1C,kBAAkB3jD,IAAuB;AAKvD,MAJIA,GAAG05B,aAAa,MAAM,MAAM,cAC9B15B,GAAG85B,MAAM,GAGP95B,GAAG05B,aAAa,MAAM,MAAM,QAAQ;AACtC,UAAMgF,aAAa1+B,GAAG0+B;AAElBA,kBAAcA,sBAAsBC,eACtCD,WAAW5E,MAAM;AAAA,EAAA;AAGvB;AClGa8pB,MAAAA,cAActxC,0BACzB,2BACA,IACF,GCkBauxC,OAAO5hB,MAAAA,KAClBrgB,MAAAA,WAAW,SAAA/lB,OAAAszB,cAAA;AAAAlwB,QAAAA,IAAAC,uBAAA,EAAA;AAAA4T,MAAAA,UAAA4oB,SAAA3Z,WAAA5iB;AAAAF,WAAApD,SAKT;AAAA,IAAAiX;AAAAA,IAAA7W,OAAAkD;AAAAA,IAAAu8B;AAAAA,IAAA,GAAA3Z;AAAAA,EAAAA,IAAqDlmB,OAAKoD,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAAy8B,SAAAz8B,OAAA8iB,WAAA9iB,OAAAE,OAAA2T,WAAA7T,EAAA,CAAA,GAAAy8B,UAAAz8B,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAzC,QAAAhD,QAAAkD,OAAS3D,aAAT2D,IACjBoD,MAAY5B,MAAAA,OAAA,IAAkC,GAC9C,CAAA2xC,gBAAAwR,iBAAA,IAA4CtkD,MAAAA,aAAiC,GAC7Ek4C,oBAA0B/2C,aAAO2xC,cAAc;AAAC,MAAAhzC,IAAA0C;AAAA/C,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACXhP,KAAA,CAAE/C,GAAAA,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GAAAK,KAAF0C;AAArC,QAAAk0B,OAAuB52B;AAAqB2C,MAAAA;AAAAhD,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACoB/O,KAAA,CAAA,GAAEhD,OAAAgD,MAAAA,KAAAhD,EAAA,CAAA;AAAlE,QAAA,CAAAmkD,cAAAW,eAAA,IAAwCvkD,MAAAA,SAAwByC,EAAE;AAACkgB,MAAAA;AAAAljB,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KACrBmR,KAAA,CAAA,GAAEljB,OAAAkjB,MAAAA,KAAAljB,EAAA,CAAA;AAAhD,QAAA,CAAAy4B,OAAAuT,QAAA,IAA0BzrC,MAAAA,SAAoB2iB,EAAE,GAChD6hC,WAAiBrjD,MAAAA,OAAO+2B,KAAK;AAACjS,MAAAA;AAAAxmB,IAAA,CAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAI5ByU,KAAAA,MAAMljB,IAAGzB,SAAQ7B,OAAAwmB,MAAAA,KAAAxmB,EAAA,CAAA,GAFnBgS,MAAAA,oBACEke,cACA1J,EACF;AAAC,MAAAC,IAAAC;AAAA1mB,WAAAqzC,kBAES5sB,KAAAA,MAAA;AACRgyB,sBAAiB52C,UAAWwxC;AAAAA,EAAc,GACzC3sB,MAAC2sB,cAAc,GAACrzC,OAAAqzC,gBAAArzC,QAAAymB,IAAAzmB,QAAA0mB,OAAAD,KAAAzmB,EAAA,EAAA,GAAA0mB,KAAA1mB,EAAA,EAAA,IAFnB2B,gBAAU8kB,IAEPC,EAAgB;AAAC,MAAAE,IAAAC;AAAA7mB,YAAAy4B,SAEV7R,KAAAA,MAAA;AACRm+B,aAAQljD,UAAW42B;AAAAA,EAAK,GACvB5R,MAAC4R,KAAK,GAACz4B,QAAAy4B,OAAAz4B,QAAA4mB,IAAA5mB,QAAA6mB,OAAAD,KAAA5mB,EAAA,EAAA,GAAA6mB,KAAA7mB,EAAA,EAAA,IAFV2B,gBAAUilB,IAEPC,EAAO;AAACE,MAAAA;AAAA/mB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAGTgV,MAAAA,CAAAnmB,SAAAokD,QAAAhS,UAAAxkB,cACEwd,SAAQttB,CAAA,OAAA;AAAA,IAAA,GAAaA;AAAAA,IAAC,CAAGuY,MAAI,GAAA;AAAA,MAAAr2B;AAAAA,MAAAoyC;AAAAA,IAAAA;AAAAA,IAAwB,GAEjDxkB,YACFq2B,kBAAkBjkD,OAAO,GAAC,MAAA;AAI1BorC,aAAQiZ,CAAA,QAAA;AACN,YAAAC,WAAA;AAAA,QAAA,GAAqBxmC;AAAAA,MAAC;AAEfwmC,aAAAA,OAAAA,SAASjuB,MAAI,GAEbiuB;AAAAA,IAAAA,CACR;AAAA,EAAA,IAEJllD,QAAA+mB,OAAAA,MAAA/mB,EAAA,EAAA;AAjBH,QAAAmlD,eAAqBp+B;AAmBpBC,MAAAA;AAAAhnB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAE+BiV,MAAAA,CAAAo+B,QAAAC,eAAA;AAC9BrZ,aAAQsZ,CAAA,QAAA;AACNC,YAAAA,YAAkB7mC,IAAEuY,MAAI;AAAC,aAEpBsuB,YAAmB;AAAA,QAAA,GAEb7mC;AAAAA,QAAC,CAAGuY,MAAI,GAAA;AAAA,UAAA,GAAOsuB;AAAAA,UAASvS,UAAEA;AAAAA,QAAAA;AAAAA,MAAQ,IAFtBt0B;AAAAA,IAAAA,CAGxB;AAAA,EAAA,GACF1e,QAAAgnB,OAAAA,MAAAhnB,EAAA,EAAA;AARD,QAAAwlD,cAAoBx+B;AAQdC,MAAAA;AAKc,QAAAE,MAAAksB,kBAAkB8Q,mBAAuB;AAAA98B,MAAAA;AAAArnB,IAAAhD,EAAAA,MAAAA,SAAAgD,UAAAy4B,SAAAz4B,EAAA,EAAA,MAAAmnB,OAFpDE,MAAA;AAAA,IAAAnT,SAAA;AAAA,IAAAm/B,gBAEWlsB;AAAAA,IAAyCqU,OAAA;AAAA,IAAAvE;AAAAA,IAAAkuB;AAAAA,IAAAK;AAAAA,IAAAX;AAAAA,IAAA7nD;AAAAA,IAAAy7B;AAAAA,EAAAA,GAQ1Dz4B,QAAAhD,OAAAgD,QAAAy4B,OAAAz4B,QAAAmnB,KAAAnnB,QAAAqnB,OAAAA,MAAArnB,EAAA,EAAA,GAAAinB,MAVMI;AADT,QAAA4R,eAAuChS;AAatCsC,MAAAA;AAAAvpB,YAAAmkD,gBAGC56B,MAAArlB,CAAA,UAAA;AAAA,QACOu0C,kBAAiB52C,SAAA;AAElBqC,UAAAA,MAAKxI,QAAS,aAAW;AAC3BwI,cAAKgnC,eAAgB;AAErB,cAAAua,SAAehB,qBACbM,SAAQljD,SACRsiD,cACA1L,kBAAiB52C,OACnB;AAEI4jD,mBACFf,kBAAkBe,MAAM,GACxBZ,kBAAkBY,MAAM;AAAC;AAAA,MAAA;AAMzBvhD,UAAAA,MAAKxI,QAAS,WAAS;AACzBwI,cAAKgnC,eAAgB;AAErB,cAAAwa,SAAexB,qBACba,SAAQljD,SACRsiD,cACA1L,kBAAiB52C,OACnB;AAEI6jD,mBACFhB,kBAAkBgB,MAAM,GACxBb,kBAAkBa,MAAM;AAAC;AAAA,MAAA;AAMzBxhD,UAAAA,MAAKxI,QAAS,aAAW;AAC3BwI,cAAKgnC,eAAgB;AAErB,cAAAkZ,UAAgB3L,kBAAiB52C,QAAA44B,aAAsB,eAAe;AAAC,YAAA,CAElE2pB;AAAO;AAEZuB,cAAAA,cAAkBZ,SAAQljD,QAASuiD,OAAO;AAAC,YAAA,CAEtCmB;AAAS;AAAA,YAEVA,YAASvS;AACXhH,mBAAQ4Z,CAAA,QAAA;AACNC,kBAAAA,cAAkBnnC,IAAE0lC,OAAO;AAAC,mBAEvBmB,cAAmB;AAAA,cAAA,GAEb7mC;AAAAA,cAAC,CAAG0lC,OAAO,GAAA;AAAA,gBAAA,GAAOmB;AAAAA,gBAASvS,UAAA;AAAA,cAAA;AAAA,YAAA,IAFft0B;AAAAA,UAAAA,CAGxB;AAAA,aAAC;AAEFonC,gBAAAA,WAAiB1B,QAAOtvB,MAAO,GAAG;AAElCgxB,mBAAQxB,IAAK;AAEbyB,gBAAAA,YAAkBD,SAAQrsC,KAAM,GAAG,GACnCusC,cAAoBD,aAAahB,SAAQljD,QAASkkD,SAAS;AAEvDC,0BACFA,YAAWplD,QAAAi6B,MACXgqB,GAAAA,kBAAkBmB,YAAWplD,OAAQ;AAAA,QAAA;AAAC;AAAA,MAAA;AAOxCsD,UAAAA,MAAKxI,QAAS,cAAY;AAC5BwI,cAAKgnC,eAAgB;AAErB,cAAA+a,aAAmBxN,kBAAiB52C,QAAA44B,aAAsB,eAAe;AAAC,YAAA,CAErEwrB;AAAU;AAEVlB,iBAAQljD,QAASokD,UAAU,GAAAjT,YAC9BhH,SAAQka,CAAA,QAAA;AACNC,gBAAAA,cAAkBznC,IAAEunC,UAAU;AAAC,iBAE1BV,cAAmB;AAAA,YAAA,GAEb7mC;AAAAA,YAAC,CAAGunC,UAAU,GAAA;AAAA,cAAA,GAAOV;AAAAA,cAASvS,UAAA;AAAA,YAAA;AAAA,UAAA,IAFlBt0B;AAAAA,QAAAA,CAGxB;AAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAKP1e,QAAAmkD,cAAAnkD,QAAAupB,OAAAA,MAAAvpB,EAAA,EAAA;AA7FH,QAAAmS,gBAAsBoX;AA+FrBC,MAAAA;AAAAxpB,YAAAy8B,WAGCjT,MAAAnX,CAAA,YAAA;AACEwyC,sBAAkB3gD,QAAKhC,MAAO,GAG9Bu6B,UAAUv4B,OAAK;AAAA,EAAA,GAChBlE,QAAAy8B,SAAAz8B,QAAAwpB,OAAAA,MAAAxpB,EAAA,EAAA;AANH,QAAA68B,cAAoBrT;AAQnBC,MAAAA;AAAAzpB,IAAA,EAAA,MAAA8R,OAAAC,IAAA,2BAAA,KAES0X,MAAAA,MAAA;AAAA,QACHnmB,CAAAA,IAAGzB;AAAA;AACR,UAAAukD,gBAAsB5pD,MAAAwwB,KACpB1pB,IAAGzB,QAAAwkD,iBAA0B,sBAAsB,CACrD;AAEAvB,oBAAgBsB,aAAa;AAAA,EAAA,GAC9BpmD,QAAAypB,OAAAA,MAAAzpB,EAAA,EAAA;AAAA0pB,MAAAA;AAAA1pB,YAAA6T,YAAE6V,OAAC7V,QAAQ,GAAC7T,QAAA6T,UAAA7T,QAAA0pB,OAAAA,MAAA1pB,EAAA,EAAA,GAPb2B,MAAAA,UAAU8nB,KAOPC,GAAU;AAACC,MAAAA;AAAA3pB,IAAA6T,EAAAA,MAAAA,YAAA7T,EAAA,EAAA,MAAA68B,eAAA78B,EAAAmS,EAAAA,MAAAA,iBAAAnS,EAAA,EAAA,MAAA8iB,aAAA9iB,UAAAhD,SAIV2sB,MAACrV,2BAAAA,IAAA,OAAA,EACI,IAAA,MACK,WAAA,QAAM,GACVwO,WACK+Z,SAAU,aACR1qB,WAAY,eAClB7O,KACA,MAAA,QACEtG,iBAGT,GAAQgD,QAAA6T,UAAA7T,QAAA68B,aAAA78B,QAAAmS,eAAAnS,QAAA8iB,WAAA9iB,QAAAhD,OAAAgD,QAAA2pB,OAAAA,MAAA3pB,EAAA,EAAA;AAAA4pB,MAAAA;AAAA,SAAA5pB,EAAAi5B,EAAAA,MAAAA,gBAAAj5B,UAAA2pB,OAZVC,MAAAtV,2BAAAA,IAAA,YAAA,UAAA,EAA6B2kB,OAAAA,cAC3BtP,UAAAA,IAYF,CAAA,GAAuB3pB,QAAAi5B,cAAAj5B,QAAA2pB,KAAA3pB,QAAA4pB,OAAAA,MAAA5pB,EAAA,EAAA,GAbvB4pB;AAauB,CAE1B,CACH;AACAg7B,KAAKpwC,cAAc;ACtOZ,SAAS8xC,oBAA4C;AACnDxnC,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA8BT;AAEO,SAASynC,uBAAuB3pD,OAA2C;AAChF,QAAMsiB,QAAQ,WACR;AAAA,IAAClG;AAAAA,EAAAA,IAAS/b,MAAAA,YAAYL,MAAMD,KAAK,GACjCqX,OAAOgF,MAAMsW,WAAWpQ,KAAK;AAE5BJ,SAAAA,iBAAAA;AAAAA;AAAAA;AAAAA,UAGC0M,gBAAgBxS,OAAOhF,KAAKqL,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,UAIpCmM,gBAAgBxS,OAAOhF,KAAK2Z,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKlCnC,gBAAgBxS,OAAOhF,KAAKgM,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpCwL,gBAAgBxS,OAAOhF,KAAKwa,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOvChD,gBAAgBxS,OAAOhF,KAAKqL,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,UAIpCmM,gBAAgBxS,OAAOhF,KAAK2Z,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKlCnC,gBAAgBxS,OAAOhF,KAAKgM,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpCwL,gBAAgBxS,OAAOhF,KAAKwa,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAKjD;AAMO,SAASg4B,iBACd5pD,OACwB;AAClB,QAAA;AAAA,IAAC6pD;AAAAA,MAAU7pD,OACX;AAAA,IAACI;AAAAA,EAAAA,IAASC,MAAYL,YAAAA,MAAMD,KAAK;AAEhCmiB,SAAAA,iBAAAA;AAAAA,oBACWnjB,IAAIqB,MAAM,CAAC,IAAIypD,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM1C;AChGO,SAAAC,UAAA;AACLC,QAAAA,OAAa/yC,iBAAA+wC,WAAsB;AAAC,MAAA,CAE/BgC;AAAI7pD,UAAAA,IAAAA,MACS,6BAA6B;AAGxC6pD,SAAAA;AAAI;ACNAC,MAAAA,YAAY5jB,MAAAA,KAAK,SAAApmC,OAAA;AAAAoD,QAAAA,IAAAC,uBAAA,CAAA;AAAA,MAAA4T,UAAAiP,WAAA5iB;AAAAF,WAAApD,SAI5B;AAAA,IAAAiX;AAAAA,IAAAm/B,UAAA9yC;AAAAA,IAAA,GAAA4iB;AAAAA,EAAmDlmB,IAAAA,OAAKoD,OAAApD,OAAAoD,OAAA6T,UAAA7T,OAAA8iB,WAAA9iB,OAAAE,OAAA2T,WAAA7T,EAAA,CAAA,GAAA8iB,YAAA9iB,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAvCgzC,QAAAA,WAAA9yC,OAAgB3D,cAAhB2D,IACjBymD,OAAaD,QAAAA,GAODrmD,MAAC2yC;AAAQjwC,MAAAA;AAAA,SAAA/C,EAAA6T,CAAAA,MAAAA,YAAA7T,SAAA8iB,aAAA9iB,EAAA,CAAA,MAAAK,MAAAL,EAAA2mD,CAAAA,MAAAA,KAAA3pD,SAJnB+F,KAACuR,2BAAA,IAAA,OAAA,EACI,IAAA,MACK,WAAA,aACJwO,GAAAA,WACI,QAAAziB,IACG,WAAAsmD,KAAI3pD,OACV,MAAA,SACE,OAAA2pD,KAAI3pD,iBAGb,GAAQgD,OAAA6T,UAAA7T,OAAA8iB,WAAA9iB,OAAAK,IAAAL,EAAA,CAAA,IAAA2mD,KAAA3pD,OAAAgD,OAAA+C,MAAAA,KAAA/C,EAAA,CAAA,GAVR+C;AAUQ,CAEX,GCIK8jD,iBAAiB7jB,MAAAA,KAAKhhB,wBAAO8kC,GAAE5kC,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAACmkC,mBAAmBC,sBAAsB,CAAC,GAE1EQ,cAAc/kC,wCAAOgH,GAAG,EAAEghB,MAAM;AAAA,EAACC,aAAa;AAAG,CAAC,EAAC/nB,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAAA,EAAwBqkC,gBAAgB,GAE3FQ,kBAAkBhlC,iBAAAA,OAAO0I,IAAI,EAACxI,WAAA;AAAA,EAAA1N,aAAA;AAAA,EAAA2N,aAAA;AAAA,CAInC,yCAMY8kC,WAAWjkB,MAAAA,KAAK,SAC3BpmC,OACmB;AACb,QAAA;AAAA,IACJiX;AAAAA,IACAm/B,UAAUkU,eAAe;AAAA,IACzB3oD,UAAAA,YAAW;AAAA,IACXm8B;AAAAA,IACApO,MAAMyB;AAAAA,IACN2D,IAAIy1B;AAAAA,IACJC;AAAAA,IACAnkC;AAAAA,IACAgsB;AAAAA,IACA3lB,UAAU;AAAA,IACVkF,WAAW;AAAA,IACXxxB,QAAQ;AAAA,IACRuhB;AAAAA,IACAyE;AAAAA,IACA,GAAGF;AAAAA,EACDlmB,IAAAA,OACEyqD,UAAU3lD,MAAAA,OAA6B,IAAI,GAC3C4lD,cAAc5lD,MAAAA,OAA8B,IAAI,GAChDilD,OAAOD,QAAAA,GACP;AAAA,IAACzvB;AAAAA,IAAMkuB;AAAAA,IAAcK;AAAAA,IAAaX;AAAAA,EAAiB,IAAI8B,MACvDY,MAAMthC,MAAM,MAAA,GACZyL,KAAKy1B,UAAUI,KACfzB,WAAWpzC,MAAAA,QAAQ,MAAMukB,KAAK9pB,OAAO,CAACukB,MAAM,EAAE,CAAC,GAAG,CAACA,IAAIuF,IAAI,CAAC,GAC5DmtB,UAAU0B,SAASrsC,KAAK,GAAG,GAC3B8rC,YAAYoB,KAAKluB,MAAM2rB,OAAO,GAC9B7T,UAAUoW,KAAKtT,mBAAmBgU,QAAQxlD,SAC1CmxC,WAAWuS,WAAWvS,aAAaz2C,SAAY2qD,eAAe3B,WAAWvS,YAAY,IACrFxY,WAAWmsB,KAAKtT,kBAAkBsT,KAAKtT,mBAAmBgU,QAAQxlD,UAAU,IAAI,IAChFo3B,eAAevmB,MAAAA,QACnB,OAAO;AAAA,IAAC,GAAGi0C;AAAAA,IAAMnrB,OAAOmrB,KAAKnrB,QAAQ;AAAA,IAAGvE,MAAM6uB;AAAAA,EAAAA,IAC9C,CAACA,UAAUa,IAAI,CACjB,GAEM3X,cAAc/I,MAAAA,YACjB/hC,CAA2C,UAAA;AACtC+qC,eAASA,QAAQ/qC,KAAK;AAE1B,UAAMhC,SAASgC,MAAMhC;AAGnBA,sBAAkBw9B,gBACjBx9B,OAAOu4B,aAAa,SAAS,MAAM,cAClCv4B,OAAOslD,QAAQ,2BAA2B,OAE5CtjD,MAAMinC,gBAAAA,GACNqa,YAAYpB,SAAS,CAACpR,QAAQ,GAC9B6R,kBAAkBwC,QAAQxlD,OAAO;AAAA,EAErC,GACA,CAACmxC,UAAUoR,SAASnV,SAASuW,aAAaX,iBAAiB,CAC7D,GAEM1yC,gBAAgB8zB,kBACnB/hC,CAA4C,YAAA;AACvCqsC,eAAWrsC,QAAMxI,QAAQ,YAChB4rD,YAAYzlD,WAAWwlD,QAAQxlD,UAEtC4lD,MAAM;AAAA,EAAA,GAGd,CAAClX,OAAO,CACV;AAEA5uC,QAAAA,UAAU,MAAM;AACd,QAAK0lD,QAAQxlD;AAENsjD,aAAAA,aAAakC,QAAQxlD,SAASikD,SAASrsC,KAAK,GAAG,GAAGu5B,UAAUxkB,QAAQ;AAAA,KAC1E,CAACwkB,UAAU8S,UAAUX,cAAc32B,QAAQ,CAAC;AAEzCzwB,QAAAA,UACHmpB,2BAAA,KAAA,MAAA,EAAK,SACJ,UAAA;AAAA,IAACA,2BAAAA,KAAA,KAAA,EACC,aAAalqB,OACb,OAAO;AAAA,MACL0qD,YAAY35B,iBAAiBla,WAAW,YAAY;AAAA,MACpD8zC,eAAe;AAAA,IAGhB55B,GAAAA,UAAAA;AAAAA,MACC,iBAAAzZ,2BAAAA,IAAC,QAAK,OAAc,MAAM/V,WAAU,QAClC,UAAA+V,2BAAA,IAAC,iBAAa,EAChB,CAAA;AAAA,MAED,CAACyZ,iBACAzZ,2BAAA,IAAC,iBAAgB,EAAA,OAAc,MAAM/V,WAAU,QAC7C,UAAC+V,2BAAAA,IAAAszC,MAAA,sBAAA,EAAqB,OAAO;AAAA,QAAC7jC,WAAWivB,WAAW,kBAAkBz2C;AAAAA,SAAW,EACnF,CAAA;AAAA,IAAA,GAEJ;AAAA,IACC+X,2BAAA,IAAA,KAAA,EAAI,MAAM,GACT,UAACA,2BAAA,IAAA,MAAA,EAAK,OAAc,MAAM/V,WAAU,cAAa,YAAW,QACzDggB,gBACH,EACF,CAAA;AAAA,EAAA,GACF;AAGEmc,SAAAA,uCAEC,gBACC,EAAA,iBAAelM,WAAW,KAAKjyB,QAC/B,gBAAcm1B,IACd,iBAAe0yB,SACf,WAAQ,eACJthC,WACJ,SAASksB,aACT,KAAKqY,SACL,MAAK,QAEL,UAAA;AAAA,IAAA/yC,+BAAC,eACC,QAAQqyC,KAAKnrB,OACb,iBAAewX,UACf,IAAIoU,QACJ,WAAQ,iBACR,MACA,KAAKE,aACL,MAAK,YACL,UAECvpD,UACH,SAAA;AAAA,IAECuW,2BAAA,IAAA,YAAY,UAAZ,EAAqB,OAAO2kB,cAC1BplB,UAAY,YAAAS,2BAAAA,IAAC,WAAU,EAAA,QAAQ,CAAC0+B,UAAWn/B,SAAS,CAAA,EACvD,CAAA;AAAA,EACF,EAAA,CAAA,IAKDqT,2BAAA,KAAA,gBAAA,EACC,iBAAesH,WAAW,KAAKjyB,QAC/B,WAAQ,YACR,gBAAcm1B,IACd,iBAAe0yB,YACXthC,WACJ,iBAAekwB,UACf,SAAShE,aACT,WAAW78B,eACX,KAAKk1C,SACL,MAAK,YACL,UAEA,UAAA;AAAA,IAAC/yC,2BAAAA,IAAA,aAAA,EAAY,QAAQqyC,KAAKnrB,OAAO,IAAG,OAAM,WAAQ,iBAC/Cz9B,UACH,QAAA,CAAA;AAAA,IAEAuW,2BAAAA,IAAC,YAAY,UAAZ,EAAqB,OAAO2kB,cAC1BplB,UAAAA,YAAaS,2BAAA,IAAA,WAAA,EAAU,UAAqBT,SAAS,CAAA,EACxD,CAAA;AAAA,EAAA,GACF;AAEJ,CAAC;AACDozC,SAASzyC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useClickOutsideEvent.ts","../src/core/hooks/useCustomValidity.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMatchMedia.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/utils/spanWithTextOverflow.tsx","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/utils/getElementRef.ts","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.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.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../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/hotkeys/hotkeys.tsx","../src/core/components/menu/menuContext.ts","../src/core/components/menu/helpers.ts","../src/core/components/menu/useMenuController.ts","../src/core/components/menu/menu.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../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/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\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\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity' as string\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\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/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n fontWeight,\n 'padding': '1px 0',\n 'margin': 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n 'fontSize': rem(fontSize),\n 'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n 'letterSpacing': rem(letterSpacing),\n 'transform': `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useState} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): 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.react.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'\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 {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener, onEvent])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\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 {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: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [handleKeyDown])\n}\n","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.JSX.Element {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.JSX.Element {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {styled} from 'styled-components'\n\n/** @internal */\nexport const SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': 0,\n 'opacity': 0,\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\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) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(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 size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\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 </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(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 <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof React.JSX.IntrinsicElements\n}\n\nconst StyledBox = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledText\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <StyledFlex\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {styled, keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst StyledSpinner = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <StyledSpinner data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </StyledSpinner>\n )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-neutral-bg-color': color.badge.neutral?.bg,\n '--card-badge-neutral-dot-color': color.badge.neutral?.dot,\n '--card-badge-neutral-fg-color': color.badge.neutral?.fg,\n '--card-badge-neutral-icon-color': color.badge.neutral?.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-suggest-bg-color': color.badge.suggest?.bg,\n '--card-badge-suggest-dot-color': color.badge.suggest?.dot,\n '--card-badge-suggest-fg-color': color.badge.suggest?.fg,\n '--card-badge-suggest-icon-color': color.badge.suggest?.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </StyledButton>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <StyledCard\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\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 <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst StyledCode = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <StyledCode data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst StyledKBD = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <StyledKBD data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </StyledKBD>\n )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst StyledArrow = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <StyledArrow {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </StyledArrow>\n )\n})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\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\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useImperativeHandle, useMemo, useState} from 'react'\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {Component, PropsWithChildren} from 'react'\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: React.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: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.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 {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\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","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <StyledLayer\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </StyledLayer>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useRef, useSyncExternalStore} from 'react'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\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 // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\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 + space[gap]) - space[gap] : 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 if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\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 <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\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","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.JSX.Element {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\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 <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\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 <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\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 const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\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 <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = 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 - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.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(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\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 isGroupActive: isGroupActive,\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\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </StyledTooltip>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [onMouseMove, showTooltip])\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {styled, keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\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: React.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 {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\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 {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\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 filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\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?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\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: Ref<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: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\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 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 data-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<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 - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\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 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 <ListBox\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 </ListBox>\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 <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </StyledAutocomplete>\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: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => React.JSX.Element\n","import {styled} from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const StyledBreadcrumbs = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\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\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </StyledBreadcrumbs>\n )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\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'\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 {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\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 {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.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 portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.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}\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 StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.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,\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 <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\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 </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\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: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.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 padding = useArrayProp(paddingProp)\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: React.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 <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\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 width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\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?: React.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): React.JSX.Element {\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 {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst StyledHotkeys = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <StyledHotkeys data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </StyledHotkeys>\n )\n})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n 'space'?: number | number[]\n 'aria-labelledby'?: string\n 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\nconst StyledMenu = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <StyledMenu\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, 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: React.JSX.Element\n id: string\n menu?: React.JSX.Element\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: React.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: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.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) => {\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: MenuProps = {\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 () =>\n buttonProp &&\n cloneElement(buttonProp, {\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 [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\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})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.JSX.Element {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, 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: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, 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 <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\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: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\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: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\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: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {cloneElement, forwardRef, useCallback, useState, Children, isValidElement} from 'react'\nimport {styled} from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\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: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.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})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {styled, keyframes, css} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Flex} from '../../primitives'\nimport {ThemeProps} from '../../styles'\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nconst loadingAnimation = keyframes`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport function rootStyles(\n props: {$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps,\n): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n const loadingBarColor = color.button.default[props.tone].enabled.bg\n\n if (!props.$duration)\n return css`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n\n return css`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n padding-bottom: ${LOADING_BAR_HEIGHT}px;\n &::before {\n content: '';\n position: absolute;\n bottom: 0px;\n height: ${LOADING_BAR_HEIGHT}px;\n background: ${loadingBarColor};\n animation-name: ${loadingAnimation};\n animation-duration: ${props.$duration}ms;\n animation-fill-mode: both;\n }\n\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport {ThemeProps} from '../../styles'\nimport type {ButtonTone} from '../../types'\nimport {rootStyles, TextBox} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\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} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst StyledToast = styled(Card)<{$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps>(\n rootStyles,\n)\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: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.JSX.Element {\n const {closable, description, duration, onClose, radius = 3, title, status, ...restProps} = props\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 return (\n <StyledToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n $duration={duration}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\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 </Flex>\n </StyledToast>\n )\n}\n\nToast.displayName = 'Toast'\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","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst StyledToastProvider = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n // @ts-expect-error fix later\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [1, 0, 0],\n scale: 0.5,\n transition: {duration: prefersReducedMotion ? 0 : 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <StyledToastProvider data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </StyledToastProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\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 {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {Stack} from '../../primitives'\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 {\n space?: number | number[]\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: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.JSX.Element {\n const {children, 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: React.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: React.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 onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\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} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\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 {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | 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: React.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: React.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 padding={padding}>\n <Box\n marginRight={space}\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 <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\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 <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\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 onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","t2","t3","handleEvent","evt_0","document","useDebugValue","useCustomValidity","ref","customValidity","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","Symbol","for","useImperativeHandle","useGlobalKeyDown","onKeyDown","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","jsx","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","accent","childrenProp","restProps","textOverflow","weight","muted","t4","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t5","t6","t7","handleImageError","t8","t9","initialsSize","t10","t11","t12","jsxs","t13","Fragment","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","T0","child","childIndex","cloneElement","String","StyledBox","Box","marginRight","marginX","marginY","paddingX","paddingY","padding","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","StyledText","Text","badgeStyle","verticalAlign","StyledBadge","Badge","mode","_deprecated_mode","StyledFlex","Flex","rotate","keyframes","StyledSpinner","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","neutral","primary","suggest","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","StyledButton","LoadingBox","Button","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","tag","unit","url","variable","codeBaseStyle","StyledCode","pre","Code","languageProp","language","Refractor","hasLanguage","registered","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","findMinBreakpoints","ElementQuery","_media","elementSize","innerWidth","eq","eq_0","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","state_0","nextState_0","_temp2","v_0","v","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","scrollEl","findScrollable","handleScroll","passive","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","_scrollEl","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","PopoverCard","memo","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","AnimatePresence","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","StyledSwitch","Representation","Track","Thumb","Switch","StyledTextArea","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","StyledTextInput","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","StyledTooltip","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","StyledAutocomplete","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","currentTarget","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","openOnFocus","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","handleListBoxKeyDown","active","results","hidden","inputElement","Autocomplete","StyledBreadcrumbs","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","dialogStyle","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","StyledDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","labelId","showCloseButton","showHeader","target_0","Dialog","dialog","_positionProp","_zOffsetProp","cardRadius","cardShadow","cardRadiusProp","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","cardElement_0","handleRootClick","DialogProvider","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","a","b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","StyledMenu","Menu","_shouldFocus","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","t31","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","keyframe","animation","skeletonStyle","$visible","$animated","StyledSkeleton","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","StyledToast","Toast","closable","description","cardTone","buttonTone","role","useMounted","ToastContext","toastId","generateToastId","StyledToastProvider","ToastContainer","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","prevState_0","t_0","timeoutId_0","dismiss_0","id_0","params_0","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","StyledTreeItem","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":"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","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|