@sanity/ui 3.2.0 → 3.3.0
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/_chunks-cjs/_visual-editing.js +54 -43
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +54 -43
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_visual-editing.d.mts +129 -75
- package/dist/_visual-editing.d.ts +129 -75
- package/dist/index.d.mts +222 -139
- package/dist/index.d.ts +222 -139
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/theme.d.mts +10 -4
- package/dist/theme.d.ts +10 -4
- package/package.json +1 -1
- package/src/core/components/autocomplete/autocomplete.tsx +1 -1
- package/src/core/components/autocomplete/types.ts +2 -2
- package/src/core/components/menu/__workshop__/asComponent.tsx +1 -1
- package/src/core/components/menu/menuDivider.ts +16 -5
- package/src/core/components/menu/menuGroup.spacing.test.tsx +1 -7
- package/src/core/components/menu/menuGroup.tsx +14 -6
- package/src/core/components/menu/menuItem.tsx +17 -6
- package/src/core/components/skeleton/skeleton.tsx +2 -2
- package/src/core/components/tab/tabList.tsx +2 -2
- package/src/core/components/tab/tabPanel.tsx +2 -2
- package/src/core/components/toast/styles.ts +2 -2
- package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
- package/src/core/components/tree/tree.tsx +9 -6
- package/src/core/components/tree/treeGroup.tsx +1 -1
- package/src/core/components/tree/treeItem.tsx +3 -2
- package/src/core/primitives/avatar/avatar.tsx +19 -11
- package/src/core/primitives/badge/badge.tsx +20 -12
- package/src/core/primitives/box/__workshop__/asComponent.tsx +31 -0
- package/src/core/primitives/box/__workshop__/index.ts +5 -0
- package/src/core/primitives/box/box.test.tsx +12 -4
- package/src/core/primitives/box/box.tsx +23 -12
- package/src/core/primitives/button/__workshop__/disabled.tsx +2 -2
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +1 -1
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +1 -1
- package/src/core/primitives/button/button.test.tsx +3 -3
- package/src/core/primitives/button/button.tsx +28 -9
- package/src/core/primitives/card/__workshop__/asComponent.tsx +1 -1
- package/src/core/primitives/card/card.tsx +24 -13
- package/src/core/primitives/code/code.tsx +16 -7
- package/src/core/primitives/container/container.tsx +23 -10
- package/src/core/primitives/flex/flex.tsx +21 -11
- package/src/core/primitives/grid/grid.test.tsx +3 -1
- package/src/core/primitives/grid/grid.tsx +22 -9
- package/src/core/primitives/heading/heading.tsx +19 -11
- package/src/core/primitives/inline/inline.tsx +19 -9
- package/src/core/primitives/kbd/kbd.tsx +19 -11
- package/src/core/primitives/label/label.tsx +19 -11
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +1 -1
- package/src/core/primitives/stack/stack.tsx +20 -11
- package/src/core/primitives/text/text.tsx +19 -11
- package/src/core/primitives/textInput/textInput.tsx +2 -2
- package/src/core/types/component.ts +32 -0
- package/src/core/types/index.ts +1 -0
- package/src/core/utils/virtualList/virtualList.tsx +2 -2
- package/src/theme/system/css.ts +10 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_visual-editing.js","sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.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/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/styles/border/borderStyle.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/grid/gridStyle.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/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../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/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../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/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.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/tab/tab.tsx","../../src/core/components/tab/tabList.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 buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\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 ThemeColorSelectableState,\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 ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\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 ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\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 ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\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 'motion/react'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\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","/**\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","/**\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 {CSSObject, getTheme_v2, Theme} from '@sanity/ui/theme'\n\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 {CSSObject, getTheme_v2, ThemeFontKey, ThemeFontSize} from '@sanity/ui/theme'\n\nimport {_responsive, rem} 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 // eslint-disable-next-line no-warning-comments\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n 'fontWeight': `${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 // eslint-disable-next-line no-warning-comments\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'\n\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'\n\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'\n\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'\n\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'\n\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","/**\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 {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/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 const context = createContext<ContextType>(defaultValue)\n context.displayName = key\n return context\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 getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\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'\n\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'\n\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 {getTheme_v2, Theme, Theme_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 {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\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'\n\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'\n\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: `${flex}`}))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} 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 {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'\n\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'\n\nimport {_responsive, rem} 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'\n\nimport {_responsive, rem} 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 {CSSObject, getTheme_v2, ThemeColorSchemeKey, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} 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'\n\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'\n\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'\n\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 {CSSObject, getTheme_v2, ThemeBoxShadow, ThemeShadow} from '@sanity/ui/theme'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_responsive, rem} 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'\n\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'\n\nimport {_getArrayProp} from '../../styles'\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={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(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'\n\nimport {_responsive, rem, 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, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\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 = _getArrayProp(sizeProp)\n\n // eslint-disable-next-line no-warning-comments\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 // eslint-disable-next-line react-hooks/set-state-in-effect\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 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 href={src} width=\"1\" height=\"1\" onError={handleImageError} />\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\n forwardedAs=\"span\"\n size={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 weight=\"medium\"\n >\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} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, 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 = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={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 weight=\"medium\"\n >\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 {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, 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 = _getArrayProp(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'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\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 gridColumn,\n column: deprecated_column,\n gridColumnStart,\n columnStart: deprecated_columnStart,\n gridColumnEnd,\n columnEnd: deprecated_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 gridRow,\n row: deprecated_row,\n gridRowStart,\n rowStart: deprecated_rowStart,\n gridRowEnd,\n rowEnd: deprecated_rowEnd,\n sizing,\n ...restProps\n } = props\n const column = gridColumn === undefined ? deprecated_column : gridColumn\n const columnStart = gridColumnStart === undefined ? deprecated_columnStart : gridColumnStart\n const columnEnd = gridColumnEnd === undefined ? deprecated_columnEnd : gridColumnEnd\n const row = gridRow === undefined ? deprecated_row : gridRow\n const rowStart = gridRowStart === undefined ? deprecated_rowStart : gridRowStart\n const rowEnd = gridRowEnd === undefined ? deprecated_rowEnd : gridRowEnd\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={_getArrayProp(column)}\n $columnStart={_getArrayProp(columnStart)}\n $columnEnd={_getArrayProp(columnEnd)}\n $display={_getArrayProp(display)}\n $flex={_getArrayProp(flex)}\n $height={_getArrayProp(height)}\n $margin={_getArrayProp(margin)}\n $marginX={_getArrayProp(marginX)}\n $marginY={_getArrayProp(marginY)}\n $marginTop={_getArrayProp(marginTop)}\n $marginRight={_getArrayProp(marginRight)}\n $marginBottom={_getArrayProp(marginBottom)}\n $marginLeft={_getArrayProp(marginLeft)}\n $overflow={_getArrayProp(overflow)}\n $padding={_getArrayProp(padding)}\n $paddingX={_getArrayProp(paddingX)}\n $paddingY={_getArrayProp(paddingY)}\n $paddingTop={_getArrayProp(paddingTop)}\n $paddingRight={_getArrayProp(paddingRight)}\n $paddingBottom={_getArrayProp(paddingBottom)}\n $paddingLeft={_getArrayProp(paddingLeft)}\n $row={_getArrayProp(row)}\n $rowStart={_getArrayProp(rowStart)}\n $rowEnd={_getArrayProp(rowEnd)}\n $sizing={_getArrayProp(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'\n\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'\n\nimport {_getArrayProp} from '../../styles'\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={_getArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={_getArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\n\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'\n\nimport {_getArrayProp} from '../../styles'\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={_getArrayProp(radius)}\n padding={_getArrayProp(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'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} 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={_getArrayProp(align)}\n $direction={_getArrayProp(direction)}\n $gap={_getArrayProp(gap)}\n $justify={_getArrayProp(justify)}\n $wrap={_getArrayProp(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 {keyframes, styled} from 'styled-components'\n\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 {CSSObject, ThemeColorCard_v2, ThemeColorState_v2} 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'\n\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 {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp, 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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: number | number[]\n muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\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 gap,\n space: deprecated_space = 3,\n text,\n textAlign,\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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={spacing}>\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={textWeight ?? 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'\n\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'\n\nimport {_getArrayProp} from '../../styles'\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 // eslint-disable-next-line no-warning-comments\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={_getArrayProp(border)}\n $borderTop={_getArrayProp(borderTop)}\n $borderRight={_getArrayProp(borderRight)}\n $borderBottom={_getArrayProp(borderBottom)}\n $borderLeft={_getArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={_getArrayProp(radius)}\n $shadow={_getArrayProp(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 {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\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])\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","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'\n\nimport {_elementSizeObserver, ElementSize} 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 {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * Adds global keydown event listener to the window.\n *\n * @param onKeyDown - The function to call when a keydown event is triggered.\n * @param options - The options to pass to the addEventListener function (example, capture: true)\n * @beta\n */\nexport function useGlobalKeyDown(\n onKeyDown: (event: KeyboardEvent) => void,\n options?: AddEventListenerOptions,\n): 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, options)\n\n return () => window.removeEventListener('keydown', handler, options)\n }, [options])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://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 useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\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 {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\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, lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\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, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode\n data-ui=\"Code\"\n {...restProps}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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'\n\nimport {_getArrayProp} from '../../styles'\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={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\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 {\n as,\n autoRows,\n autoCols,\n autoFlow,\n columns,\n gridTemplateColumns,\n gap,\n gapX,\n gapY,\n rows,\n gridTemplateRows,\n children,\n ...restProps\n } = props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={_getArrayProp(autoRows)}\n $autoCols={_getArrayProp(autoCols)}\n $autoFlow={_getArrayProp(autoFlow)}\n $columns={_getArrayProp(gridTemplateColumns === undefined ? columns : gridTemplateColumns)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(gridTemplateRows === undefined ? rows : gridTemplateRows)}\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'\n\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'\n\nimport {_getArrayProp} from '../../styles'\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={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(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'\n\nimport {_responsive, rem, 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 {Children, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\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 /**\n * The spacing between children.\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n /** The spacing between children. */\n gap?: 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, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\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={_getArrayProp(spacing)}\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 {css, styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\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={_getArrayProp(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, forwardRef, HTMLProps} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useTheme_v2} from '../../theme'\nimport {compileCommands, getRoundedCommands, Point} 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'\n\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'\n\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'\n\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 {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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useMediaIndex} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 = _getArrayProp(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 {useContext} from 'react'\n\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","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\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'\n\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'\n\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, useSyncExternalStore} from 'react'\n\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: elements} = props\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","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, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\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 // eslint-disable-next-line react-hooks/set-state-in-effect\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 = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }) {\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}\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 {detectOverflow, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n maxWidthRef: React.RefObject<number | undefined>\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding = 0,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n } = 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 const availableWidth = maxWidth - margins[1] - margins[3]\n const availableHeight = maxHeight - margins[0] - margins[2]\n const referenceWidth = reference.width - margins[1] - margins[3]\n referenceWidthRef.current = referenceWidth\n setReferenceWidth(referenceWidth)\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (widthRef.current !== undefined) {\n elements.floating.style.width = `${widthRef.current}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\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 {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {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 will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n will-change: opacity;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = 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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <MotionFlex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n overflow={overflow}\n variants={POPOVER_MOTION_PROPS.children}\n transition={POPOVER_MOTION_PROPS.transition}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </MotionFlex>\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})\nPopoverCard.displayName = 'ForwardRef(PopoverCard)'\n","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n forwardRef,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\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 /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = 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: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\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 placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary =\n _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const widthArrayProp = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n 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 [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\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 // 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, () => refs.reference.current)\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: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\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 ? referenceWidth : 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})\nPopover.displayName = 'ForwardRef(Popover)'\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n constrainSize: boolean\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n margins: PopoverMargins\n matchReferenceWidth: boolean | undefined\n maxWidthRef: React.RefObject<number | undefined>\n placementProp: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\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 arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n ])\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {useCustomValidity} from '../../hooks'\nimport {inputElementStyle, radioBaseStyle} 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 {CSSObject, getTheme_v2, ThemeFontSize} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, rem, 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'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 gap,\n padding = 3,\n radius = 2,\n readOnly,\n space: deprecated_space = 3,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(spacing)}\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'\n\nimport {_responsive, rem, 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'\n\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={_getArrayProp(spacing)}\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'\n\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'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\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'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 {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={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(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'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: 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 gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: deprecated_space = 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 = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(gap === undefined ? deprecated_space : gap)\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 {SetStateAction, useCallback, useEffect, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n useEffect(() => {\n return () => {\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n }\n }\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 {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {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 will-change: transform;\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = 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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {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})\nTooltipCard.displayName = '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 {useMemo} from 'react'\n\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 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 {useContext} from 'react'\n\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 {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\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: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = _getArrayProp(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 = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\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 {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\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, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\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\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return 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, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.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 isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.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 || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, KBD} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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, gap, keys, padding, radius, space: deprecated_space = 0.5, ...restProps} = props\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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\" gap={spacing}>\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: 2\n activeElement: HTMLElement | null\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\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, useRef, useState} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: 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, setActiveElement] = useState<HTMLElement | null>(null)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n setActiveElement(elementsRef.current[nextActiveIndex] || null)\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 (!rootElementRef.current) 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, rootElementRef, 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'\n\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 'gap'?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 gap,\n space: deprecated_space = 1,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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 = useMemo(\n () =>\n ({\n version: 2,\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n }) satisfies MenuContextValue,\n [\n activeElement,\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 gap={spacing}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\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'\n\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'\n\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'\n\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: 2`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 2) {\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'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {_getArrayProp} from '../../styles'\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 gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 gap,\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\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 // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\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={_getArrayProp(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={spacing} 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'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\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 gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 gap,\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onItemMouseLeave\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 = _getArrayProp(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 data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={_getArrayProp(radius)}\n $padding={_getArrayProp(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={spacing} 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 {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\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 {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\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"],"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_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","children","type","visualDuration","bounce","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","_fillCSSObject","keys","value","reduce","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","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","Symbol","for","document","context","createContext","displayName","ThemeContext","ThemeProvider","$","_c","parentTheme","useContext","scheme","rootTheme","tone","t0","bb0","t1","version","themeContext","bb1","t2","getScopedTheme","jsx","StyledThemeProvider","t3","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","responsiveBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderStyle","width","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$height","$overflow","overflow","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","Boolean","join","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","GRID_CSS","GRID_AUTO_COLUMS","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","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","i","_","text","emSize","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","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","index","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","ref","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","svg","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","useState","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","useEffect","t5","t6","t7","handleImageError","T0","t8","t9","t10","t11","jsxs","t12","Fragment","_temp","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","T1","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","child","childIndex","cloneElement","String","StyledBox","Box","deprecated_column","deprecated_columnEnd","deprecated_columnStart","deprecated_row","deprecated_rowEnd","deprecated_rowStart","marginRight","marginX","marginY","paddingX","paddingY","padding","t14","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","textWeight","iconRight","justifyProp","paddingProp","radiusProp","deprecated_space","spacing","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","useClickOutsideEvent","listener","boundaryElement","elementsArg","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","addEventListener","removeEventListener","useDebugValue","useCustomValidity","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","options","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","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","LazyRefractor","lazy","StyledCode","pre","Code","language","Suspense","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","fallbackElement","emptySubscribe","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","useChildren","item","_itemIndex","itemIndex","top","_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","constrainSize","margins","matchReferenceWidth","maxWidthRef","referenceWidthRef","setReferenceWidth","widthRef","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","MotionFlex","PopoverCard","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_boundaryElement","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","modal","open","referenceElement","updateRef","fallbackPlacements","floatingBoundary","placementStrategy","preventOverflow","t31","referenceBoundary","t32","t33","t34","t35","t36","t37","t38","t39","t40","_animate","arrowProp","placementProp","shadowProp","widthProp","popover","boundarySize","widthArrayProp","floatingElement","referenceWidth_0","middleware","useMiddleware","whileElementsMounted","autoUpdate","refs","update","useFloating","referenceHidden","hide","arrowEl","setArrow","setFloating","setReference","AnimatePresence","autoPlacement","allowedPlacements","concat","flip","mainAxis","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","focus","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","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","StyledTooltip","Tooltip","_fallbackPlacementsProp","_zOffset","portalProp","fallbackPlacementsProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","immediate","groupedOpenDelay","groupDeactivateDelay","handleIsOpenChange","e","onBlur","handleBlur","e_0","onClick","handleClick","e_1","onContextMenu","handleContextMenu","e_2","e_3","onMouseEnter","handleMouseEnter","e_4","onMouseLeave","handleMouseLeave","useCloseOnMouseLeave","handleWindowKeyDown","offsetWidth","availableWidths","useLayoutEffect","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","setActiveElement","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","el_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedElement","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentTarget","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","StyledMenu","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","menu","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","CustomButton","Tab","focused","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_visual-editing.js","sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.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/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/styles/border/borderStyle.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/grid/gridStyle.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/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../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/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../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/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.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/tab/tab.tsx","../../src/core/components/tab/tabList.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 buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\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 ThemeColorSelectableState,\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 ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\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 ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\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 ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\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 'motion/react'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\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","/**\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","/**\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 {CSSObject, getTheme_v2, Theme} from '@sanity/ui/theme'\n\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 {CSSObject, getTheme_v2, ThemeFontKey, ThemeFontSize} from '@sanity/ui/theme'\n\nimport {_responsive, rem} 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 // eslint-disable-next-line no-warning-comments\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n 'fontWeight': `${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 // eslint-disable-next-line no-warning-comments\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'\n\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'\n\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'\n\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'\n\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'\n\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","/**\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 {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/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 const context = createContext<ContextType>(defaultValue)\n context.displayName = key\n return context\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 getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\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'\n\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'\n\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 {getTheme_v2, Theme, Theme_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 {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\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'\n\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'\n\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: `${flex}`}))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} 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 {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'\n\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'\n\nimport {_responsive, rem} 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'\n\nimport {_responsive, rem} 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 {CSSObject, getTheme_v2, ThemeColorSchemeKey, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} 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'\n\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'\n\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'\n\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 {CSSObject, getTheme_v2, ThemeBoxShadow, ThemeShadow} from '@sanity/ui/theme'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_responsive, rem} 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'\n\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'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {ElementType, Props, TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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\n/**\n * @public\n */\nexport type LabelProps<E extends ElementType = 'div'> = Props<LabelOwnProps, E>\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst LabelComponent = forwardRef(function Label(\n props: LabelOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n})\nLabelComponent.displayName = 'ForwardRef(Label)'\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = LabelComponent as unknown as <E extends ElementType = 'div'>(\n props: LabelProps<E>,\n) => React.JSX.Element\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus, ElementType, Props} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\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\n/**\n * @public\n */\nexport type AvatarProps<E extends ElementType = 'div'> = Props<AvatarOwnProps, E>\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\nconst AvatarComponent = forwardRef(function Avatar(\n props: AvatarOwnProps & {as?: ElementType} & 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 = _getArrayProp(sizeProp)\n\n // eslint-disable-next-line no-warning-comments\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 // eslint-disable-next-line react-hooks/set-state-in-effect\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 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 href={src} width=\"1\" height=\"1\" onError={handleImageError} />\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\n forwardedAs=\"span\"\n size={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 weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n})\nAvatarComponent.displayName = 'ForwardRef(Avatar)'\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = AvatarComponent as unknown as <E extends ElementType = 'div'>(\n props: AvatarProps<E>,\n) => React.JSX.Element\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, 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 = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={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 weight=\"medium\"\n >\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 {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, 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 = _getArrayProp(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'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n} from '../../styles/internal'\nimport {ElementType, Props} from '../../types'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * The props that `Box` adds on top of the element it renders as.\n *\n * @public\n */\nexport interface BoxOwnProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n forwardedAs?: ElementType\n}\n\n/**\n * @public\n */\nexport type BoxProps<E extends ElementType = 'div'> = Props<BoxOwnProps, E>\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\nconst BoxComponent = forwardRef(function Box(\n props: BoxOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n gridColumn,\n column: deprecated_column,\n gridColumnStart,\n columnStart: deprecated_columnStart,\n gridColumnEnd,\n columnEnd: deprecated_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 gridRow,\n row: deprecated_row,\n gridRowStart,\n rowStart: deprecated_rowStart,\n gridRowEnd,\n rowEnd: deprecated_rowEnd,\n sizing,\n ...restProps\n } = props\n const column = gridColumn === undefined ? deprecated_column : gridColumn\n const columnStart = gridColumnStart === undefined ? deprecated_columnStart : gridColumnStart\n const columnEnd = gridColumnEnd === undefined ? deprecated_columnEnd : gridColumnEnd\n const row = gridRow === undefined ? deprecated_row : gridRow\n const rowStart = gridRowStart === undefined ? deprecated_rowStart : gridRowStart\n const rowEnd = gridRowEnd === undefined ? deprecated_rowEnd : gridRowEnd\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={_getArrayProp(column)}\n $columnStart={_getArrayProp(columnStart)}\n $columnEnd={_getArrayProp(columnEnd)}\n $display={_getArrayProp(display)}\n $flex={_getArrayProp(flex)}\n $height={_getArrayProp(height)}\n $margin={_getArrayProp(margin)}\n $marginX={_getArrayProp(marginX)}\n $marginY={_getArrayProp(marginY)}\n $marginTop={_getArrayProp(marginTop)}\n $marginRight={_getArrayProp(marginRight)}\n $marginBottom={_getArrayProp(marginBottom)}\n $marginLeft={_getArrayProp(marginLeft)}\n $overflow={_getArrayProp(overflow)}\n $padding={_getArrayProp(padding)}\n $paddingX={_getArrayProp(paddingX)}\n $paddingY={_getArrayProp(paddingY)}\n $paddingTop={_getArrayProp(paddingTop)}\n $paddingRight={_getArrayProp(paddingRight)}\n $paddingBottom={_getArrayProp(paddingBottom)}\n $paddingLeft={_getArrayProp(paddingLeft)}\n $row={_getArrayProp(row)}\n $rowStart={_getArrayProp(rowStart)}\n $rowEnd={_getArrayProp(rowEnd)}\n $sizing={_getArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\n})\nBoxComponent.displayName = 'ForwardRef(Box)'\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 = BoxComponent as unknown as <E extends ElementType = 'div'>(\n props: BoxProps<E>,\n) => React.JSX.Element\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {ElementType, Props, TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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\n/**\n * @public\n */\nexport type TextProps<E extends ElementType = 'div'> = Props<TextOwnProps, E>\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst TextComponent = forwardRef(function Text(\n props: TextOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={_getArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\nTextComponent.displayName = 'ForwardRef(Text)'\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = TextComponent as unknown as <E extends ElementType = 'div'>(\n props: TextProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '@sanity/ui/theme'\n\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'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone, ElementType, Props} from '../../types'\nimport {Box, BoxOwnProps} 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 BadgeOwnProps extends BoxOwnProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\n/**\n * @public\n */\nexport type BadgeProps<E extends ElementType = 'div'> = Props<BadgeOwnProps, E>\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\nconst BadgeComponent = forwardRef(function Badge(\n props: BadgeOwnProps & {as?: ElementType} & 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={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n})\nBadgeComponent.displayName = 'ForwardRef(Badge)'\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = BadgeComponent as unknown as <E extends ElementType = 'div'>(\n props: BadgeProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {ElementType, Props} from '../../types'\nimport {Box, BoxOwnProps} from '../box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexOwnProps\n extends Omit<BoxOwnProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\n/**\n * @public\n */\nexport type FlexProps<E extends ElementType = 'div'> = Props<FlexOwnProps, E>\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\nconst FlexComponent = forwardRef(function Flex(\n props: FlexOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $direction={_getArrayProp(direction)}\n $gap={_getArrayProp(gap)}\n $justify={_getArrayProp(justify)}\n $wrap={_getArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlexComponent.displayName = 'ForwardRef(Flex)'\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = FlexComponent as unknown as <E extends ElementType = 'div'>(\n props: FlexProps<E>,\n) => React.JSX.Element\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {keyframes, styled} from 'styled-components'\n\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 {CSSObject, ThemeColorCard_v2, ThemeColorState_v2} 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'\n\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 {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp, ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {\n ButtonMode,\n ButtonTextAlign,\n ButtonTone,\n ButtonWidth,\n ElementType,\n FlexJustify,\n Props,\n} 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 ButtonOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: number | number[]\n muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\n/**\n * @public\n */\nexport type ButtonProps<E extends ElementType = 'button'> = Props<ButtonOwnProps, E>\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\nconst ButtonComponent = forwardRef(function Button(\n props: ButtonOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'as' | 'width'\n >,\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 gap,\n space: deprecated_space = 3,\n text,\n textAlign,\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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={spacing}>\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={textWeight ?? 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})\nButtonComponent.displayName = 'ForwardRef(Button)'\n\n/**\n * @public\n */\nexport const Button = ButtonComponent as unknown as <E extends ElementType = 'button'>(\n props: ButtonProps<E>,\n) => React.JSX.Element\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone, ElementType, Props} from '../../types'\nimport {Box, BoxOwnProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardOwnProps\n extends BoxOwnProps,\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 disabled?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n selected?: boolean\n tone?: CardTone\n}\n\n/**\n * @public\n */\nexport type CardProps<E extends ElementType = 'div'> = Props<CardOwnProps, E>\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\nconst CardComponent = forwardRef(function Card(\n props: CardOwnProps & {as?: ElementType} & 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 // eslint-disable-next-line no-warning-comments\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={_getArrayProp(border)}\n $borderTop={_getArrayProp(borderTop)}\n $borderRight={_getArrayProp(borderRight)}\n $borderBottom={_getArrayProp(borderBottom)}\n $borderLeft={_getArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={_getArrayProp(radius)}\n $shadow={_getArrayProp(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})\nCardComponent.displayName = 'ForwardRef(Card)'\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 = CardComponent as unknown as <E extends ElementType = 'div'>(\n props: CardProps<E>,\n) => React.JSX.Element\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\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])\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","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'\n\nimport {_elementSizeObserver, ElementSize} 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 {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * Adds global keydown event listener to the window.\n *\n * @param onKeyDown - The function to call when a keydown event is triggered.\n * @param options - The options to pass to the addEventListener function (example, capture: true)\n * @beta\n */\nexport function useGlobalKeyDown(\n onKeyDown: (event: KeyboardEvent) => void,\n options?: AddEventListenerOptions,\n): 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, options)\n\n return () => window.removeEventListener('keydown', handler, options)\n }, [options])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://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 useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\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 {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\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, lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {ElementType, Props} from '../../types'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeOwnProps {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\n/**\n * @public\n */\nexport type CodeProps<E extends ElementType = 'pre'> = Props<CodeOwnProps, E>\n\nconst StyledCode = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\nconst CodeComponent = forwardRef(function Code(\n props: CodeOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode\n data-ui=\"Code\"\n {...restProps}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\n )\n})\nCodeComponent.displayName = 'ForwardRef(Code)'\n\n/**\n * @public\n */\nexport const Code = CodeComponent as unknown as <E extends ElementType = 'pre'>(\n props: CodeProps<E>,\n) => React.JSX.Element\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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'\n\nimport {_getArrayProp} from '../../styles'\nimport {ElementType, Props} from '../../types'\nimport {Box, BoxOwnProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerOwnProps extends BoxOwnProps, ResponsiveWidthProps {}\n\n/**\n * @public\n */\nexport type ContainerProps<E extends ElementType = 'div'> = Props<ContainerOwnProps, E>\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\nconst ContainerComponent = forwardRef(function Container(\n props: ContainerOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'width'\n >,\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={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainerComponent.displayName = 'ForwardRef(Container)'\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = ContainerComponent as unknown as <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {ElementType, Props} from '../../types'\nimport {Box, BoxOwnProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridOwnProps extends Omit<BoxOwnProps, 'display'>, ResponsiveGridProps {}\n\n/**\n * @public\n */\nexport type GridProps<E extends ElementType = 'div'> = Props<GridOwnProps, E>\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\nconst GridComponent = forwardRef(function Grid(\n props: GridOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'rows'\n >,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as,\n autoRows,\n autoCols,\n autoFlow,\n columns,\n gridTemplateColumns,\n gap,\n gapX,\n gapY,\n rows,\n gridTemplateRows,\n children,\n ...restProps\n } = props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={_getArrayProp(autoRows)}\n $autoCols={_getArrayProp(autoCols)}\n $autoFlow={_getArrayProp(autoFlow)}\n $columns={_getArrayProp(gridTemplateColumns === undefined ? columns : gridTemplateColumns)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(gridTemplateRows === undefined ? rows : gridTemplateRows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\nGridComponent.displayName = 'ForwardRef(Grid)'\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = GridComponent as unknown as <E extends ElementType = 'div'>(\n props: GridProps<E>,\n) => React.JSX.Element\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {ElementType, Props, TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\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\n/**\n * @public\n */\nexport type HeadingProps<E extends ElementType = 'div'> = Props<HeadingOwnProps, E>\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst HeadingComponent = forwardRef(function Heading(\n props: HeadingOwnProps & {as?: ElementType} & 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={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n})\nHeadingComponent.displayName = 'ForwardRef(Heading)'\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = HeadingComponent as unknown as <E extends ElementType = 'div'>(\n props: HeadingProps<E>,\n) => React.JSX.Element\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, 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 {Children, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {ElementType, Props} from '../../types'\nimport {Box, BoxOwnProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineOwnProps extends Omit<BoxOwnProps, 'display'> {\n /**\n * The spacing between children.\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n /** The spacing between children. */\n gap?: number | number[]\n}\n\n/**\n * @public\n */\nexport type InlineProps<E extends ElementType = 'div'> = Props<InlineOwnProps, E>\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\nconst InlineComponent = forwardRef(function Inline(\n props: InlineOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\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={_getArrayProp(spacing)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInlineComponent.displayName = 'ForwardRef(Inline)'\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = InlineComponent as unknown as <E extends ElementType = 'div'>(\n props: InlineProps<E>,\n) => React.JSX.Element\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {ElementType, Props, Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDOwnProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\n/**\n * @public\n */\nexport type KBDProps<E extends ElementType = 'kbd'> = Props<KBDOwnProps, E>\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\nconst KBDComponent = forwardRef(function KBD(\n props: KBDOwnProps & {as?: ElementType} & 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={_getArrayProp(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})\nKBDComponent.displayName = 'ForwardRef(KBD)'\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = KBDComponent as unknown as <E extends ElementType = 'kbd'>(\n props: KBDProps<E>,\n) => React.JSX.Element\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, forwardRef, HTMLProps} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useTheme_v2} from '../../theme'\nimport {compileCommands, getRoundedCommands, Point} 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'\n\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'\n\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'\n\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 {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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useMediaIndex} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 = _getArrayProp(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 {useContext} from 'react'\n\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","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\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'\n\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'\n\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, useSyncExternalStore} from 'react'\n\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: elements} = props\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","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, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackOwnProps} 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 StackOwnProps &\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 // eslint-disable-next-line react-hooks/set-state-in-effect\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 = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }) {\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}\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 {detectOverflow, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n maxWidthRef: React.RefObject<number | undefined>\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding = 0,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n } = 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 const availableWidth = maxWidth - margins[1] - margins[3]\n const availableHeight = maxHeight - margins[0] - margins[2]\n const referenceWidth = reference.width - margins[1] - margins[3]\n referenceWidthRef.current = referenceWidth\n setReferenceWidth(referenceWidth)\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (widthRef.current !== undefined) {\n elements.floating.style.width = `${widthRef.current}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\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 {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {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 will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n will-change: opacity;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = 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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <MotionFlex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n overflow={overflow}\n variants={POPOVER_MOTION_PROPS.children}\n transition={POPOVER_MOTION_PROPS.transition}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </MotionFlex>\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})\nPopoverCard.displayName = 'ForwardRef(PopoverCard)'\n","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n forwardRef,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\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 /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = 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: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\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 placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary =\n _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const widthArrayProp = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n 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 [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\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 // 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, () => refs.reference.current)\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: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\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 ? referenceWidth : 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})\nPopover.displayName = 'ForwardRef(Popover)'\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n constrainSize: boolean\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n margins: PopoverMargins\n matchReferenceWidth: boolean | undefined\n maxWidthRef: React.RefObject<number | undefined>\n placementProp: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\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 arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n ])\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {useCustomValidity} from '../../hooks'\nimport {inputElementStyle, radioBaseStyle} 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 {CSSObject, getTheme_v2, ThemeFontSize} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, rem, 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'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 gap,\n padding = 3,\n radius = 2,\n readOnly,\n space: deprecated_space = 3,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(spacing)}\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'\n\nimport {_responsive, rem, 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'\n\nimport {_getArrayProp} from '../../styles'\nimport {ElementType, Props} from '../../types'\nimport {Box, BoxOwnProps} from '../box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackOwnProps extends BoxOwnProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n}\n\n/**\n * @public\n */\nexport type StackProps<E extends ElementType = 'div'> = Props<StackOwnProps, E>\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\nconst StackComponent = forwardRef(function Stack(\n props: StackOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, gap, space: deprecated_space, ...restProps} = props\n const spacing = gap === undefined ? deprecated_space : gap\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={_getArrayProp(spacing)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStackComponent.displayName = 'ForwardRef(Stack)'\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = StackComponent as unknown as <E extends ElementType = 'div'>(\n props: StackProps<E>,\n) => React.JSX.Element\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\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'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 {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={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(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'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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, ButtonOwnProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = ButtonOwnProps &\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 /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n gap?: 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 gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: deprecated_space = 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 = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(gap === undefined ? deprecated_space : gap)\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 {SetStateAction, useCallback, useEffect, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n useEffect(() => {\n return () => {\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n }\n }\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 {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {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 will-change: transform;\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = 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 variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {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})\nTooltipCard.displayName = '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 {useMemo} from 'react'\n\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 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 {useContext} from 'react'\n\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 {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'motion/react'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\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: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = _getArrayProp(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 = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\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 {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\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, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\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\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return 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, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.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 isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.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 || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, KBD} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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, gap, keys, padding, radius, space: deprecated_space = 0.5, ...restProps} = props\n const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\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\" gap={spacing}>\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: 2\n activeElement: HTMLElement | null\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\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, useRef, useState} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: 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, setActiveElement] = useState<HTMLElement | null>(null)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n setActiveElement(elementsRef.current[nextActiveIndex] || null)\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 (!rootElementRef.current) 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, rootElementRef, 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'\n\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 'gap'?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\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 gap,\n space: deprecated_space = 1,\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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 = useMemo(\n () =>\n ({\n version: 2,\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n }) satisfies MenuContextValue,\n [\n activeElement,\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 gap={spacing}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {styled} from 'styled-components'\n\nimport {ElementType, EmptyProps, Props} from '../../types'\n\nconst StyledMenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nStyledMenuDivider.displayName = 'MenuDivider'\n\n/**\n * @public\n */\nexport type MenuDividerProps<E extends ElementType = 'hr'> = Props<EmptyProps, E>\n\n/**\n * @public\n */\nexport const MenuDivider = StyledMenuDivider as unknown as <E extends ElementType = 'hr'>(\n props: MenuDividerProps<E>,\n) => React.JSX.Element\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\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'\n\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'\n\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: 2`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 2) {\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'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {ElementType, Props, Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupOwnProps {\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 gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport type MenuGroupProps<E extends ElementType = 'button'> = Props<MenuGroupOwnProps, E>\n\nfunction MenuGroupComponent(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupOwnProps & {as?: ElementType},\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 gap,\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\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 // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\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={_getArrayProp(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={spacing} 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\nMenuGroupComponent.displayName = 'MenuGroup'\n\n/**\n * @public\n */\nexport const MenuGroup = MenuGroupComponent as unknown as <E extends ElementType = 'button'>(\n props: MenuGroupProps<E>,\n) => React.JSX.Element\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'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {ElementType, Props} from '../../types'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\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 gap?: number | number[]\n /**\n * @deprecated Use `gap` instead. `space` will be removed in v4.\n */\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport type MenuItemProps<E extends ElementType = 'button'> = Props<MenuItemOwnProps, E>\n\nconst MenuItemComponent = forwardRef(function MenuItem(\n props: MenuItemOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'\n >,\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 gap,\n space: deprecated_space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const spacing = gap === undefined ? deprecated_space : gap\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.onItemMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onItemMouseLeave\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 = _getArrayProp(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 data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={_getArrayProp(radius)}\n $padding={_getArrayProp(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={spacing} 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})\nMenuItemComponent.displayName = 'ForwardRef(MenuItem)'\n\n/**\n * @public\n */\nexport const MenuItem = MenuItemComponent as unknown as <E extends ElementType = 'button'>(\n props: MenuItemProps<E>,\n) => React.JSX.Element\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\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 {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineOwnProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, '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"],"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_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","children","type","visualDuration","bounce","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","_fillCSSObject","keys","value","reduce","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","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","Symbol","for","document","context","createContext","displayName","ThemeContext","ThemeProvider","$","_c","parentTheme","useContext","scheme","rootTheme","tone","t0","bb0","t1","version","themeContext","bb1","t2","getScopedTheme","jsx","StyledThemeProvider","t3","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","responsiveBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderStyle","width","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$height","$overflow","overflow","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","Boolean","join","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","GRID_CSS","GRID_AUTO_COLUMS","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","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","i","_","text","emSize","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","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","index","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","LabelComponent","forwardRef","ref","accent","childrenProp","restProps","textOverflow","weight","muted","t4","Label","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","svg","AvatarComponent","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","useState","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","useEffect","t5","t6","t7","handleImageError","T0","t8","t9","t10","t11","jsxs","t12","Fragment","_temp","t13","Avatar","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","T1","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","child","childIndex","cloneElement","String","StyledBox","BoxComponent","deprecated_column","deprecated_columnEnd","deprecated_columnStart","deprecated_row","deprecated_rowEnd","deprecated_rowStart","marginRight","marginX","marginY","paddingX","paddingY","padding","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","Box","textBaseStyle","bold","StyledText","TextComponent","Text","badgeStyle","verticalAlign","StyledBadge","BadgeComponent","mode","_deprecated_mode","Badge","StyledFlex","FlexComponent","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","ButtonComponent","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","textWeight","iconRight","justifyProp","paddingProp","radiusProp","deprecated_space","spacing","boxProps","Button","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","CardComponent","__unstable_checkered","__unstable_focusRing","toneProp","Card","useClickOutsideEvent","listener","boundaryElement","elementsArg","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","addEventListener","removeEventListener","useDebugValue","useCustomValidity","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","options","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","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","LazyRefractor","lazy","StyledCode","pre","CodeComponent","language","Suspense","Code","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","ContainerComponent","Container","StyledGrid","GridComponent","Grid","headingBaseStyle","heading","StyledHeading","HeadingComponent","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","InlineComponent","Inline","kbdStyle","StyledKBD","KBDComponent","KBD","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","fallbackElement","emptySubscribe","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","useChildren","item","_itemIndex","itemIndex","top","_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","constrainSize","margins","matchReferenceWidth","maxWidthRef","referenceWidthRef","setReferenceWidth","widthRef","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","MotionFlex","PopoverCard","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_boundaryElement","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","modal","open","referenceElement","updateRef","fallbackPlacements","floatingBoundary","placementStrategy","preventOverflow","t31","referenceBoundary","t32","t33","t34","t35","t36","t37","t38","t39","t40","_animate","arrowProp","placementProp","shadowProp","widthProp","popover","boundarySize","widthArrayProp","floatingElement","referenceWidth_0","middleware","useMiddleware","whileElementsMounted","autoUpdate","refs","update","useFloating","referenceHidden","hide","arrowEl","setArrow","setFloating","setReference","AnimatePresence","autoPlacement","allowedPlacements","concat","flip","mainAxis","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","StackComponent","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","focus","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","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","StyledTooltip","Tooltip","_fallbackPlacementsProp","_zOffset","portalProp","fallbackPlacementsProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","immediate","groupedOpenDelay","groupDeactivateDelay","handleIsOpenChange","e","onBlur","handleBlur","e_0","onClick","handleClick","e_1","onContextMenu","handleContextMenu","e_2","e_3","onMouseEnter","handleMouseEnter","e_4","onMouseLeave","handleMouseLeave","useCloseOnMouseLeave","handleWindowKeyDown","offsetWidth","availableWidths","useLayoutEffect","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","setActiveElement","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","el_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedElement","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentTarget","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","StyledMenu","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","StyledMenuDivider","hr","MenuDivider","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroupComponent","menuProps","menu","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","MenuGroup","MenuItemComponent","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","MenuItem","CustomButton","Tab","focused","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":";;;;;;AAiNO,MAAMA,mBAAmBC,MAAAA,kBAMnBC,WAAWC,gBAMXC,WAAWC,MAAAA,UAMXC,WAAWC,MAAAA,UAMXC,aAAaC,MAAAA,YAMbC,WAAWC,MAAAA,UAMXC,WAAWC,MAAAA,UAMXC,OAAOC,MAAAA,MAMPC,SAASC,cAMTC,cAAcC,MAAAA,WAAAA,GClQdC,cAAuB,CAAA,GAKvBC,eAAsC,CAAA,GAQtCC,uBAaT;AAAA,EACFC,MAAM;AAAA,IACJC,SAAS;AAAA,MACPC,OAAO;AAAA,MACPC,YAAY;AAAA,IAAA;AAAA,IAEdC,QAAQ;AAAA,MACNC,SAAS;AAAA,IAAA;AAAA,IAEXC,SAAS;AAAA,MACPD,SAAS;AAAA,MACTE,YAAY;AAAA,QACVC,MAAM;AAAA,QACNC,UAAUC;AAAAA,MAAAA;AAAAA,IACZ;AAAA,IAEFC,SAAS;AAAA,MACPT,OAAO;AAAA,IAAA;AAAA,IAETU,UAAU;AAAA,MACRV,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEFW,UAAU;AAAA,IACRT,QAAQ;AAAA,MACNC,SAAS;AAAA,IAAA;AAAA,IAEXC,SAAS;AAAA,MACPD,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEFE,YAAY;AAAA,IACVO,MAAM;AAAA,IACNC,gBAAgBL;AAAAA,IAChBM,QAAQ;AAAA,EAAA;AAEZ;AChEO,SAASC,uBAAuBC,SAA+B;AACpE,SAAOC,oBAAoBD,OAAO,KAAKE,oBAAoBF,OAAO;AACpE;AAKO,SAASG,cAAcC,MAAoC;AAChE,SAAOA,gBAAgBC,QAAQD,KAAKE,aAAaD,KAAKE;AACxD;AAKO,SAASN,oBAAoBD,SAAgD;AAClF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASC,mBAAmBT,SAA+C;AAChF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASN,oBAAoBF,SAAgD;AAClF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASE,oBAAoBV,SAAgD;AAClF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASG,sBAAsBX,SAAkD;AACtF,SAAOG,cAAcH,OAAO,KAAKA,QAAQQ,aAAa;AACxD;AAKO,SAASI,wBAAwBZ,SAAsBI,MAAqB;AACjF,SAAOJ,QAAQa,SAAST,IAAI,KAAKJ,YAAYI;AAC/C;ACnDO,SAASU,cAAcC,IAAmB;AAC/C,MAAI,EAAEA,cAAcC,SAAU,QAAO;AAErC,QAAMC,QAAQC,OAAOC,iBAAiBJ,EAAE;AAExC,SACEE,MAAMG,UAAUC,SAAS,MAAM,KAC/BJ,MAAMG,UAAUC,SAAS,QAAQ,KACjCJ,MAAMK,UAAUD,SAAS,MAAM,KAC/BJ,MAAMK,UAAUD,SAAS,QAAQ;AAErC;ACPO,SAASE,eAAeC,MAAgBC,OAA+C;AAC5F,SAAOD,KAAKE,OAAkB,CAACT,OAAOU,UACpCV,MAAMU,IAAG,IAAIF,OAENR,QACN,CAAA,CAAE;AACP;AAKO,SAASW,IAAIC,YAAgC;AAClD,SAAIA,eAAe,IAAU,IAEtB,GAAGA,aAAa,EAAE;AAC3B;AAKO,SAASC,YACdC,OACAC,QACAC,UACa;AAGb,UAFmBD,QAAQE,IAAID,QAAQ,KAAK,CAAA,GAE1BC,IAAI,CAACC,WAAWC,eAC5BA,eAAe,IAAUD,YAEtB;AAAA,IAAC,CAAC,iCAAiCJ,MAAMK,aAAa,CAAC,CAAC,KAAK,GAAGD;AAAAA,EAAAA,CACxE;AACH;AAKO,SAASE,cAA0BC,KAA0BC,YAAuB;AACzF,SAAID,QAAQE,SAAkBD,cAAc5D,cAErC8D,MAAMC,QAAQJ,GAAG,IAAIA,MAAM,CAACA,GAAG;AACxC;AAKO,SAASK,oBACdC,SACAC,OACAC,eAAyBnE,aACL;AACpB,MAAI,CAAC8D,MAAMC,QAAQI,YAAY;AAC7B,UAAM,IAAIC,MAAM,uCAAuC;AAGzD,MAAID,aAAaE,WAAW;AAC1B,WAAO;AAGT,QAAM;AAAA,IAACjB;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYN,OAAK;AAExC,SAAOd,YAAYC,OAAOe,cAAeK,CAAAA,eACvC5B,eAAesB,OAAOjB,IAAIqB,MAAME,UAAU,CAAC,CAAC,CAC9C;AACF;AC7DO,SAASC,eACdC,SACAR,OACa;AACb,QAAM;AAAA,IAACS;AAAAA,IAAOC;AAAAA,EAAAA,IAAWV,OACnB;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK,GACvC;AAAA,IAACa;AAAAA,IAAQC;AAAAA,IAAOC;AAAAA,EAAAA,IAAWH,KAAKH,OAAO,GACvCO,aAAcL,WAAWI,QAAQJ,OAAO,KAAMI,QAAQE,SAItDC,cAAcJ,MAAM,CAAC,GAErBK,OAAkB;AAAA,IACtB,UAAY;AAAA,IACZ,YAAcN;AAAAA,IACd,YAAc,GAAGG,UAAU;AAAA,IAC3B,SAAW;AAAA,IACX,QAAU;AAAA,IAEV,YAAY;AAAA,MACVI,SAAS;AAAA,MACTC,SAAS;AAAA,MACTC,QAAQ;AAAA,IAAA;AAAA,IAGV,WAAW;AAAA,MACTF,SAAS;AAAA,MACTC,SAAS;AAAA,MACTC,QAAQ;AAAA,IAAA;AAAA,IAGV,sBAAsB;AAAA,MACpBD,SAAS;AAAA,IAAA;AAAA,IAGX,mBAAmB;AAAA,MACjBA,SAAS;AAAA,IAAA;AAAA,EACX;AAKF,MAAI,CAACX;AAEH,WAAKF,eAAee,WAElBC,QAAQC,KAAK,yCAAyC;AAAA,MAAChB;AAAAA,MAASC;AAAAA,MAAOT;AAAAA,MAAOkB;AAAAA,IAAAA,CAAK,GAEnFX,eAAee,SAAS,KAGnB,CAACJ,IAAI;AAGd,QAAMO,OAAOxC,YAAYC,OAAOuB,OAAQiB,CAAAA,cAAcC,SAASd,MAAMa,SAAS,KAAKT,WAAW,CAAC;AAE/F,SAAO,CAACC,MAAM,GAAGO,IAAI;AACvB;AAEO,SAASE,SAASC,OAAgC;AACvD,QAAM;AAAA,IAACC;AAAAA,IAAgBC;AAAAA,IAAiBH,UAAAA;AAAAA,IAAUI;AAAAA,IAAUC;AAAAA,IAAeC;AAAAA,EAAAA,IAAcL,OACnFM,YAAYL,iBAAiBC,iBAC7BK,YAAYF,aAAaC,WACzBE,cAAcD,YAAYJ,YAAY,GACtCM,iBAAiBC,KAAKC,MAAOZ,YAAW,QAAS,CAAC,IAAI,IAAI,GAC1Da,oBAAoBL,YAAYE,kBAAkB;AAExD,SAAO;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,IAAA;AAAA,IAGvC,WAAW;AAAA,MACTQ,cAAc;AAAA,IAAA;AAAA,IAGhB,iCAAiC;AAAA,MAC/Bf,UAAU,QAAQU,cAAc;AAAA,MAChCM,QAAQ5D,IAAIyD,gBAAgB;AAAA,IAAA;AAAA,IAG9B,wBAAwB;AAAA,MACtBb,UAAU,QAAQI,QAAQ;AAAA,MAC1BY,QAAQ5D,IAAIqD,UAAU;AAAA,IAAA;AAAA,EACxB;AAEJ;AC5FO,SAASQ,wBAAwB5C,OAA2D;AACjG,SAAOO,eAAe,QAAQP,KAAK;AACrC;ACFO,SAAS6C,sBAAsB7C,OAA2D;AAC/F,SAAOO,eAAe,WAAWP,KAAK;AACxC;ACFO,SAAS8C,oBAAoB9C,OAA2D;AAC7F,SAAOO,eAAe,SAASP,KAAK;AACtC;ACFO,SAAS+C,yBACd/C,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMgD,QAASC,CAAAA,eAChC;AAAA,IAACA;AAAAA,EAAAA,EACT;AACH;ACRO,SAASC,mBAAmBlD,OAA2D;AAC5F,SAAOO,eAAe,QAAQP,KAAK;AACrC;ACHA,SAASmD,iBAAiB;AACxB,MAAI,OAAOC,aAAe,IAAa,QAAOA;AAC9C,MAAI,OAAO/E,SAAW,IAAa,QAAOA;AAC1C,MAAI,OAAOgF,OAAS,IAAa,QAAOA;AACxC,MAAI,OAAOC,SAAW,IAAa,QAAOA;AAE1C,QAAM,IAAIpD,MAAM,2CAA2C;AAC7D;AAEO,MAAMqD,cAAcJ,eAAAA;ACJpB,SAASK,0BAId1E,MACA2E,cACsB;AACtB,QAAMC,SAASC,OAAOC,IAAI9E,IAAG;AAK7B,MAAI,OAAO+E,WAAa,KAAa;AACnC,UAAMC,UAAUC,MAAAA,cAA2BN,YAAY;AACvDK,WAAAA,QAAQE,cAAclF,MACfgF;AAAAA,EACT;AAEAP,SAAAA,YAAYG,MAAM,IAAIH,YAAYG,MAAM,KAAKK,MAAAA,cAAiBN,YAAY,GAEnEF,YAAYG,MAAM;AAC3B;AC7BO,MAAMO,eAAeT,0BAC1B,4BACA,IACF;ACiBO,SAAAU,cAAAlE,OAAA;AAAA,QAAAmE,IAAAC,qBAAAA,EAAA,EAAA,GACLC,cAAoBC,MAAAA,WAAWL,YAAY,GAC3C;AAAA,IAAAnH;AAAAA,EAAAA,IAAmBkD,OACnBuE,SAAevE,MAAKuE,WAAYF,aAAWE,UAAX,UAChCC,YAAkBxE,MAAKD,UAAWsE,aAAWtE,SAAX,OAClC0E,OAAazE,MAAKyE,SAAUJ,aAAWI,QAAX;AAA+B,MAAAC;AAAAC,OAAA;AAGzD,QAAI,CAACH,WAAS;AAAEE,WAAO;AAAP,YAAAC;AAAAA,IAAW;AAAA,QAAAC;AAAAT,MAAA,CAAA,MAAAK,aAAAL,SAAAI,UAAAJ,EAAA,CAAA,MAAAM,QAEpBG,MAAA;AAAA,MAAAC,SACI;AAAA,MAAG9E,OACLyE;AAAAA,MAASD;AAAAA,MAAAE;AAAAA,IAAAA,GAGjBN,OAAAK,WAAAL,OAAAI,QAAAJ,OAAAM,MAAAN,OAAAS,OAAAA,MAAAT,EAAA,CAAA,GALDO,KAAOE;AAAAA,EAKN;AARH,QAAAE,eAA+CJ;AASlB,MAAAE;AAAAG,OAAA;AAG3B,QAAI,CAACP,WAAS;AAAEI,WAAO;AAAP,YAAAG;AAAAA,IAAW;AAAA,QAAAC;AAAAb,MAAA,CAAA,MAAAK,aAAAL,SAAAI,UAAAJ,EAAA,CAAA,MAAAM,QAEpBO,MAAAC,MAAAA,eAAeT,WAAWD,QAAQE,IAAI,GAACN,OAAAK,WAAAL,OAAAI,QAAAJ,OAAAM,MAAAN,OAAAa,OAAAA,MAAAb,EAAA,CAAA,GAA9CS,KAAOI;AAAAA,EAAuC;AAHhD,QAAAjF,UAA4B6E;AAM5B,MAAI,CAAC7E,SAAK;AAAA,QAAAiF;AAAA,WAAAb,EAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KACDoB,MAAAE,2BAAAA,IAAA,SAAK,UAAA,8CAAA,CAA2C,GAAMf,OAAAa,OAAAA,MAAAb,EAAA,CAAA,GAAtDa;AAAAA,EAAsD;AAC9D,MAAAA;AAAAb,IAAA,CAAA,MAAArH,YAAAqH,UAAApE,WAIGiF,KAAAE,2BAAAA,IAACC,iBAAAA,eAAA,EAAA,OAA2BpF,SAAQjD,SAAAA,CAAS,GAAsBqH,OAAArH,UAAAqH,QAAApE,SAAAoE,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAiB;AAAA,SAAAjB,EAAA,EAAA,MAAAa,MAAAb,UAAAW,gBADrEM,KAAAF,2BAAAA,IAAA,aAAA,UAAA,EAA8BJ,OAAAA,cAC5BE,UAAAA,GAAAA,CACF,GAAwBb,QAAAa,IAAAb,QAAAW,cAAAX,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GAFxBiB;AAEwB;AAI5BlB,cAAcF,cAAc;ACrDrB,SAAAqB,eAAA;AACL,QAAAzG,QAAc0F,MAAAA,WAAWL,YAAY;AAErC,MAAI,CAACrF;AACH,UAAM,IAAIsB,MAAM,uCAAuC;AACxD,SAEMtB;AAAK;ACEP,SAAA0G,mBAAAtF,OAAA;AAAA,QAAAmE,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAtH;AAAAA,IAAAyH;AAAAA,IAAAE;AAAAA,EAAAA,IAAiCzE,OACjCuF,OAAaF,gBAGYX,KAAAH,UAAUgB,KAAIhB;AAAO,MAAAK;AAAA,SAAAT,EAAA,CAAA,MAAArH,YAAAqH,SAAAoB,KAAAxF,SAAAoE,EAAA,CAAA,MAAAO,MAAAP,SAAAM,QAA5CG,KAAAM,2BAAAA,IAAC,iBAAsB,QAAAR,IAA8B,OAAAa,KAAIxF,OAAc0E,MACpE3H,UACH,GAAgBqH,OAAArH,UAAAqH,EAAA,CAAA,IAAAoB,KAAAxF,OAAAoE,OAAAO,IAAAP,OAAAM,MAAAN,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAFhBS;AAEgB;AAIpBU,mBAAmBtB,cAAc;ACtB1B,SAAAwB,WAAA;AAAA,SACEC,0BAAAA;AAAgB;AAMlB,SAAAC,cAAA;AAAA,QAAAvB,IAAAC,qBAAAA,EAAA,CAAA,GACcM,KAAAe,iBAAAA,SAAAA;AAAyB,MAAAb;AAAA,SAAAT,SAAAO,MAArCE,KAAAvE,kBAAYqE,EAAyB,GAACP,OAAAO,IAAAP,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAtCS;AAAsC;ACRxC,SAASe,wBAEd;AACA,SAAO,CAACC,QAAQC,WAAWC,aAAaC,cAAcC,UAAU;AAClE;AAEA,SAASJ,OAAO5F,OAAgD;AAC9D,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,kBAAYL,MAAMD,KAAK,GACvCkG,cAAc,GAAGhK,KAAK2J,QAAQM,SAAS,CAAC;AAE9C,SAAOjH,YAAYC,OAAOc,MAAMmG,SAAUvH,WACxCA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACgH,QAAQK;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACL,QAAQ;AAAA,IAAA;AAAA,EAAC,CAC3D;AACF;AAEA,SAASC,UAAU7F,OAAgD;AACjE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,kBAAYL,MAAMD,KAAK,GACvCkG,cAAc,GAAGhK,KAAK2J,QAAQM,SAAS,CAAC;AAE9C,SAAOjH,YAAYC,OAAOc,MAAMoG,YAAaxH,WAC3CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACiH,WAAWI;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACJ,WAAW;AAAA,IAAA;AAAA,EAAC,CACjE;AACF;AAEA,SAASC,YAAY9F,OAAgD;AACnE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,kBAAYL,MAAMD,KAAK,GACvCkG,cAAc,GAAGhK,KAAK2J,QAAQM,SAAS,CAAC;AAE9C,SAAOjH,YAAYC,OAAOc,MAAMqG,cAAezH,WAC7CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACkH,aAAaG;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACH,aAAa;AAAA,IAAA;AAAA,EAAC,CACrE;AACF;AAEA,SAASC,aAAa/F,OAAgD;AACpE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,kBAAYL,MAAMD,KAAK,GACvCkG,cAAc,GAAGhK,KAAK2J,QAAQM,SAAS,CAAC;AAE9C,SAAOjH,YAAYC,OAAOc,MAAMsG,eAAgB1H,WAC9CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACmH,cAAcE;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACF,cAAc;AAAA,IAAA;AAAA,EAAC,CACvE;AACF;AAEA,SAASC,WAAWhG,OAAgD;AAClE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,kBAAYL,MAAMD,KAAK,GACvCkG,cAAc,GAAGhK,KAAK2J,QAAQM,SAAS,CAAC;AAE9C,SAAOjH,YAAYC,OAAOc,MAAMuG,aAAc3H,WAC5CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACoH,YAAYC;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACD,YAAY;AAAA,IAAA;AAAA,EAAC,CACnE;AACF;AChDA,MAAMQ,eAAwB;AAAA,EAC5B,mCAAmC;AAAA,IACjCC,WAAW;AAAA,EAAA;AAEf,GAEMC,aAAkD;AAAA,EACtDvF,SAAS;AAAA,EACTyE,QAAQ;AACV,GAEMe,aAAa;AAAA,EACjBC,SAAS;AAAA,EACTC,MAAM;AACR;AAEO,SAASC,WAAsB;AACpC,SAAON;AACT;AAEO,SAASO,qBAEd;AACA,SAAO,CACLC,0BACAC,0BACAC,4BACAC,yBAAyB;AAE7B;AAEA,SAASA,0BAA0BnH,OAA6C;AAC9E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMoH,UAAWhG,CAAAA,aAAa;AAAA,IACtD,mBAAmB;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EAAO,EAC3B;AACJ;AAEA,SAAS4F,yBAAyBhH,OAA6C;AAC7E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMqH,SAAUC,CAAAA,YAAY;AAAA,IACpDC,WAAWb,WAAWY,MAAM;AAAA,EAAA,EAC5B;AACJ;AAEA,SAASL,yBAAyBjH,OAA6C;AAC7E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMwH,SAAUnG,CAAAA,YAAY;AAAA,IACpDA,QAAQsF,WAAWtF,MAAM;AAAA,EAAA,EACzB;AACJ;AAEA,SAAS6F,2BAA2BlH,OAA6C;AAC/E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMyH,WAAYC,CAAAA,cAAc;AAAA,IACxDA;AAAAA,EAAAA,EACA;AACJ;AC7DA,MAAMlB,eAAwB;AAAA,EAC5BmB,UAAU;AAAA,EACVC,WAAW;AACb;AAEO,SAASC,gBAEd;AACA,SAAO,CAACrB,cAAYsB,uBAAuB;AAC7C;AAEO,SAASA,wBACd9H,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAKC,MAAM+H,QAEJ9I,YAAYC,OAAOc,MAAM+H,OAAQC,CAAAA,UAAU;AAAA,IAACA,MAAM,GAAGA,IAAI;AAAA,EAAA,EAAI,IAF3ClM;AAG3B;ACpBA,MAAM0K,eAAwB;AAAA,EAC5B,oBAAoB;AAAA,IAClBpF,SAAS;AAAA,EAAA;AAEb;AAEO,SAAS6G,sBAEd;AACA,SAAO,CACLzB,cACA0B,0BACAC,wBACAC,yBACAC,4BACAC,4BAA4B;AAEhC;AAEO,SAASJ,yBACdlI,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMgD,QAASuF,CAAAA,WAChC;AAAA,IAACC,YAAYD;AAAAA,EAAAA,EACrB;AACH;AAEA,SAASJ,uBAAuBnI,OAA8C;AAC5E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMyI,MAAOC,CAAAA,SAAS;AAAA,IAC9CA,KAAKA,MAAM3J,IAAIqB,MAAMsI,GAAG,CAAC,IAAI/I;AAAAA,EAAAA,EAC7B;AACJ;AAEO,SAASyI,wBAAwBpI,OAA2D;AACjG,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM2I,OAAQC,CAAAA,UAC/B;AAAA,IAACC,UAAUD;AAAAA,EAAAA,EACnB;AACH;AAEO,SAASP,2BACdrI,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM8I,UAAWC,CAAAA,aAClC;AAAA,IAACC,gBAAgBD;AAAAA,EAAAA,EACzB;AACH;AAEO,SAAST,6BACdtI,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMiJ,YAAaC,CAAAA,eACpC;AAAA,IAACC,eAAeD;AAAAA,EAAAA,EACxB;AACH;ACnEO,SAASE,qBAAqBxD,SAAgD;AACnF,SAAO,eAAeA,QAAOM,KAAK,MAAMN,QAAOyD,KAAK;AACtD;AAEO,SAASC,eAAeC,MAIpB;AACT,QAAM;AAAA,IAACrI;AAAAA,IAAM0E,QAAAA;AAAAA,IAAQ4D;AAAAA,EAAAA,IAAaD,MAC5BE,uBAAuBD,UAAUE,SAASF,UAAUtD,OACpDyD,sBAAsB,IAAIH,UAAUE,QACpCE,UAAU1I,OAAOA,KAAK2I,KAAK;AAEjC,SAAO,CACLF,sBAAsB,KAAK,eAAeA,mBAAmB,mCAC7D/D,WAAUwD,qBAAqBxD,OAAM,GACrC+D,sBAAsB,KAAK,SAAS,IAAIA,mBAAmB,MAAMC,OAAO,IACxEH,uBAAuB,KAAK,SAASA,oBAAoB,iCAAiC,EAEzFK,OAAOC,OAAO,EACdC,KAAK,GAAG;AACb;AClBO,SAASC,0BAEd;AACA,SAAO,CACLC,4BACAC,iCACAC,+BACAC,+BACAC,oCACAC,gCAAgC;AAEpC;AAEA,MAAMC,gBAAgB;AAAA,EACpBC,MAAM;AAAA,EACNC,MAAM;AACR,GAEMC,mBAAmB;AAAA,EACvBF,MAAM;AAAA,EACNC,MAAM;AACR;AAEA,SAASR,2BAA2BlK,OAAkD;AACpF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM4K,MAAOC,CAAAA,QACjC,OAAOA,OAAQ,WACV;AAAA,IAACC,SAAS,QAAQD,GAAG,WAAWA,GAAG;AAAA,EAAA,IAGrC;AAAA,IAACC,SAASN,cAAcK,GAAG;AAAA,EAAA,CACnC;AACH;AAEA,SAASV,gCAAgCnK,OAAkD;AACzF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM+K,WAAYC,CAAAA,cAAc;AAAA,IACxDC,cAAc,GAAGD,QAAQ;AAAA,EAAA,EACzB;AACJ;AAEA,SAASZ,8BAA8BpK,OAAkD;AACvF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMkL,SAAUC,CAAAA,YAAY;AAAA,IAACC,YAAY,GAAGD,MAAM;AAAA,EAAA,EAAI;AAClF;AAEA,SAASd,8BAA8BrK,OAAkD;AACvF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMqL,SAAUC,CAAAA,WACpC,OAAOA,UAAW,WACb;AAAA,IAACC,YAAY,QAAQD,MAAM,WAAWA,MAAM;AAAA,EAAA,IAG9C;AAAA,IAACC,YAAYZ,iBAAiBW,MAAM;AAAA,EAAA,CAC5C;AACH;AAEA,SAAShB,mCAAmCtK,OAAkD;AAC5F,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMwL,cAAeC,CAAAA,iBAAiB;AAAA,IAC9DC,iBAAiB,GAAGD,WAAW;AAAA,EAAA,EAC/B;AACJ;AAEA,SAASlB,iCAAiCvK,OAAkD;AAC1F,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM2L,YAAaC,CAAAA,eAAe;AAAA,IAC1DC,eAAe,GAAGD,SAAS;AAAA,EAAA,EAC3B;AACJ;AC3EA,MAAME,WAAW;AAAA,EACf,oBAAoB;AAAA,IAClB1K,SAAS;AAAA,EAAA;AAAA,EAEX,mCAAmC;AAAA,IACjCqF,WAAW;AAAA,EAAA;AAEf,GAEMsF,mBAAmB;AAAA,EACvBtB,MAAM;AAAA,EACNuB,KAAK;AAAA,EACLC,KAAK;AAAA,EACLC,IAAI;AACN,GAEMC,iBAAiB;AAAA,EACrB1B,MAAM;AAAA,EACNuB,KAAK;AAAA,EACLC,KAAK;AAAA,EACLC,IAAI;AACN;AAEO,SAASE,sBAEd;AACA,SAAO,CACLN,UACAO,6BACAC,6BACAC,6BACAC,4BACAC,yBACAC,wBACAC,yBACAC,uBAAuB;AAE3B;AAEA,SAASP,4BAA4BrM,OAA8C;AACjF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM6M,WAAYC,CAAAA,cAAc;AAAA,IACxDC,cAAcD;AAAAA,EAAAA,EACd;AACJ;AAEA,SAASR,4BAA4BtM,OAA8C;AACjF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMgN,WAAYC,CAAAA,cAAc;AAAA,IACxDC,cAAcD,YAAYd,eAAec,QAAQ;AAAA,EAAA,EACjD;AACJ;AAEA,SAASV,4BAA4BvM,OAA8C;AACjF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMmN,WAAYC,CAAAA,cAAc;AAAA,IACxDC,iBAAiBD,YAAYrB,iBAAiBqB,QAAQ;AAAA,EAAA,EACtD;AACJ;AAEA,SAASZ,2BAA2BxM,OAA8C;AAChF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMsN,UAAWC,CAAAA,aAAa;AAAA,IACtDC,qBAAqBD,WAAW,UAAUA,OAAO;AAAA,EAAA,EACjD;AACJ;AAEA,SAASd,wBAAwBzM,OAA8C;AAC7E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMyN,OAAQC,CAAAA,UAAU;AAAA,IAChDC,kBAAkBD,QAAQ,UAAUA,IAAI;AAAA,EAAA,EACxC;AACJ;AAEA,SAAShB,uBAAuB1M,OAA8C;AAC5E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMyI,MAAOC,CAAAA,SAAS;AAAA,IAC9CkF,SAASlF,MAAM3J,IAAIqB,MAAMsI,GAAG,CAAC,IAAI/I;AAAAA,EAAAA,EACjC;AACJ;AAEA,SAASgN,wBAAwB3M,OAA8C;AAC7E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAM6N,OAAQC,CAAAA,UAAU;AAAA,IAChDC,WAAWD,OAAO/O,IAAIqB,MAAM0N,IAAI,CAAC,IAAInO;AAAAA,EAAAA,EACrC;AACJ;AAEA,SAASiN,wBAAwB5M,OAA8C;AAC7E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMgO,OAAQC,CAAAA,UAAU;AAAA,IAChDC,QAAQD,OAAOlP,IAAIqB,MAAM6N,IAAI,CAAC,IAAItO;AAAAA,EAAAA,EAClC;AACJ;AC9FO,SAASwO,4BACdnO,OACa;AACb,QAAM;AAAA,IAACoO;AAAAA,IAAWC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAUC;AAAAA,EAAAA,IAAUxO,OACvD;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK,GAC9C0O,MAAMnM,KAAK2J,IAAIsC,SAASpO,QAAQqO,OAAOrO,QAAQiO,UAAUjO,MAAM,GAC/DuO,WAAqB,CAAA,GACrBC,SAAmB,IACnBC,YAAsB,CAAA;AAE5B,WAASC,IAAI,GAAGA,IAAIJ,KAAKI,KAAK;AAC5BD,cAAUC,CAAC,IAAIT,UAAUS,CAAC,MAAMlP,SAAYiP,UAAUC,IAAI,CAAC,IAAIT,UAAUS,CAAC,GAC1EH,SAASG,CAAC,IAAIN,SAASM,CAAC,MAAMlP,SAAY+O,SAASG,IAAI,CAAC,IAAIN,SAASM,CAAC,GACtEF,OAAOE,CAAC,IAAIL,OAAOK,CAAC,MAAMlP,SAAYgP,OAAOE,IAAI,CAAC,IAAIL,OAAOK,CAAC;AAGhE,SAAO5P,YAAYC,OAAOwP,UAAU,CAACI,GAAGD,MAAM;AAC5C,UAAMjN,QAAOjB,KAAKoO,KAAKlO,MAAM+N,UAAUC,CAAC,CAAC,KAAKlO,KAAKoO,KAAKlO,MAAM,CAAC,GACzDmO,SAASpN,MAAKK,aAAaL,MAAKC,iBAAiBD,MAAKE,iBACtDmN,IAAI7O,MAAMsO,SAASG,CAAC,CAAC,GACrBK,IAAI9O,MAAMuO,OAAOE,CAAC,CAAC,GAEnBM,SAAS;AAAA,MACbC,YAAYrQ,IAAIkQ,IAAIrN,MAAKC,cAAc;AAAA,MACvCwN,cAActQ,IAAIkQ,CAAC;AAAA,MACnBK,eAAevQ,IAAIkQ,IAAIrN,MAAKE,eAAe;AAAA,MAC3CyN,aAAaxQ,IAAIkQ,CAAC;AAAA,IAAA;AAGpB,WAAIX,eAAYa,OAAOE,eAAetQ,IAAIkQ,IAAID,SAASE,CAAC,IACpDb,cAAWc,OAAOI,cAAcxQ,IAAIkQ,IAAID,SAASE,CAAC,IAE/CC;AAAAA,EACT,CAAC;AACH;AAsBO,SAASK,qCACdxP,OAKa;AACb,SAAOmO,4BAA4B;AAAA,IAAC,GAAGnO;AAAAA,IAAOsO,YAAY;AAAA,EAAA,CAAK;AACjE;AChDA,MAAMmB,aAAaC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAQZ,SAASC,qBAA6C;AAC3D,SAAOF;AACT;AAEO,SAASG,mBACd5P,OACwB;AACxB,QAAM;AAAA,IAAC6P;AAAAA,IAASC;AAAAA,IAAOpP;AAAAA,EAAAA,IAAWV,OAC5B;AAAA,IAACqJ;AAAAA,IAAO1I;AAAAA,EAAAA,IAAQN,MAAAA,YAAYL,MAAMD,KAAK;AAE7C,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAQU/O,KAAKoO,KAAKnO,MAAM;AAAA,mBACfF,WAAWC,KAAKoO,KAAKjO,QAAQJ,OAAO,KAAMC,KAAKoO,KAAKjO,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,qBA2BlE6O,OAAO,iBAAiBC,KAAK;AAAA,0BACxBzG,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA,mCACrB7G,MAAM0G,MAAMC,QAAQC,QAAQE,WAAW;AAAA;AAAA;AAAA;AAAA,4BAI9C9G,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA,qCACrB7G,MAAM0G,MAAMC,QAAQC,QAAQE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKhD9G,MAAM0G,MAAMC,QAAQI,SAASF,EAAE;AAAA,qCACtB7G,MAAM0G,MAAMC,QAAQI,SAASD,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKjD9G,MAAM0G,MAAMM,QAAQJ,QAAQC,EAAE;AAAA,qCACrB7G,MAAM0G,MAAMM,QAAQJ,QAAQE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKhD9G,MAAM0G,MAAMC,QAAQM,SAASJ,EAAE;AAAA,qCACtB7G,MAAM0G,MAAMC,QAAQM,SAASH,WAAW;AAAA;AAAA;AAAA;AAI7E;AAEO,SAASI,uBAAuBvQ,OAA2D;AAChG,QAAM;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAE7C,SAAOd,YAAYC,OAAOc,MAAMoO,WAAY1M,CAAAA,cAAc;AACxD,UAAME,QAAOjB,KAAKoO,KAAKlO,MAAMa,SAAS,KAAKf,KAAKoO,KAAKlO,MAAM,CAAC;AAE5D,WAAO;AAAA,MACLc,UAAU5C,IAAI6C,MAAKD,QAAQ;AAAA,MAC3BM,YAAY,GAAGL,MAAKK,aAAaL,MAAKD,QAAQ;AAAA,IAAA;AAAA,EAElD,CAAC;AACH;AAEO,SAAS6O,6BACdxQ,OACwB;AACxB,QAAM;AAAA,IAACyQ;AAAAA,IAAYC;AAAAA,IAAYb;AAAAA,IAASC;AAAAA,IAAOa;AAAAA,EAAAA,IAA6B3Q,OACtE;AAAA,IAACqJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAAS1P,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,8BAeqBe,aAAa,IAAI9Q,MAAS;AAAA,iCACvB8Q,aAAa,IAAI9Q,MAAS;AAAA,+BAC5B+Q,aAAa,IAAI/Q,MAAS;AAAA,kCACvB+Q,aAAa,IAAI/Q,MAAS;AAAA;AAAA,qBAEvCkQ,OAAO,iBAAiBC,KAAK;AAAA,yBACzBzG,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA,yBAC9BR,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA;AAAA;AAAA;AAAA,8BAIzB9G,qBAAqB;AAAA,IACzCC,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKiBmD,MAAM0G,MAAMM,QAAQJ,QAAQpG,EAAE;AAAA,2BAC9BR,MAAM0G,MAAMM,QAAQJ,QAAQC,EAAE;AAAA;AAAA;AAAA,gCAGzB9G,qBAAqB;AAAA,IACzCC,OAAOA,MAAM0G,MAAMM,QAAQJ,QAAQrK;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAOoByK,4BAClBhR,SACA2J,eAAe;AAAA,IACb1D,QAAQ;AAAA,MAACyD,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,MAAQM,OAAO6J,MAAMnK,OAAOM;AAAAA,IAAAA;AAAAA,IACxEsD,WAAWuG,MAAMhB,KAAKvF;AAAAA,EAAAA,CACvB,CAAC;AAAA;AAAA;AAAA;AAAA,gCAIgBmH,4BAClBhR,SACA2J,eAAe;AAAA,IAACE,WAAWuG,MAAMhB,KAAKvF;AAAAA,EAAAA,CAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMpCH,MAAM0G,MAAMC,QAAQI,SAASvG,EAAE;AAAA,2BAC/BR,MAAM0G,MAAMC,QAAQI,SAASF,EAAE;AAAA,6BAC7B7G,MAAM0G,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA,gCAG5B9G,qBAAqB;AAAA,IACzCC,OAAOA,MAAM0G,MAAMC,QAAQI,SAASxK;AAAAA,IACpCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKemD,MAAM0G,MAAMM,QAAQD,SAASvG,EAAE;AAAA,2BAC/BR,MAAM0G,MAAMM,QAAQD,SAASF,EAAE;AAAA,6BAC7B7G,MAAM0G,MAAMM,QAAQD,SAASF,EAAE;AAAA;AAAA;AAAA,gCAG5B9G,qBAAqB;AAAA,IACzCC,OAAOA,MAAM0G,MAAMM,QAAQD,SAASxK;AAAAA,IACpCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMemD,MAAM0G,MAAMC,QAAQM,SAASzG,EAAE;AAAA,2BAC/BR,MAAM0G,MAAMC,QAAQM,SAASJ,EAAE;AAAA;AAAA;AAAA;AAAA,2BAI/B7G,MAAM0G,MAAMM,QAAQC,SAASzG,EAAE;AAAA,2BAC/BR,MAAM0G,MAAMM,QAAQC,SAASJ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAM7B7G,MAAM0G,MAAMC,QAAQY,QAAQ/G,EAAE;AAAA,6BAC9BR,MAAM0G,MAAMC,QAAQY,QAAQV,EAAE;AAAA;AAAA;AAAA;AAAA,6BAI9B7G,MAAM0G,MAAMM,QAAQO,QAAQ/G,EAAE;AAAA,6BAC9BR,MAAM0G,MAAMM,QAAQO,QAAQV,EAAE;AAAA;AAAA;AAAA;AAAA,gCAI3B9G,qBAAqB;AAAA,IACzCC,OAAOA,MAAM0G,MAAMC,QAAQY,QAAQhL;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA,gCAIoBkD,qBAAqB;AAAA,IACzCC,OAAOA,MAAM0G,MAAMM,QAAQO,QAAQhL;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAKZ;AChQO,SAAS2K,sBACd7Q,OACe;AACf,QAAM;AAAA,IAACD,OAAAA;AAAAA,EAAAA,IAASC;AAEhB,SAAO,CACLF,oBAAoBC,QAAO,CAAC,QAAQ,GAAGC,MAAM8Q,OAAO,GACpDhR,oBAAoBC,QAAO,CAAC,cAAc,aAAa,GAAGC,MAAM+Q,QAAQ,GACxEjR,oBAAoBC,QAAO,CAAC,aAAa,cAAc,GAAGC,MAAMgR,QAAQ,GACxElR,oBAAoBC,QAAO,CAAC,WAAW,GAAGC,MAAMiR,UAAU,GAC1DnR,oBAAoBC,QAAO,CAAC,aAAa,GAAGC,MAAMkR,YAAY,GAC9DpR,oBAAoBC,QAAO,CAAC,cAAc,GAAGC,MAAMmR,aAAa,GAChErR,oBAAoBC,QAAO,CAAC,YAAY,GAAGC,MAAMoR,WAAW,CAAC,EAC7DtH,OAAOC,OAAO;AAClB;ACdO,SAASsH,uBACdrR,OACe;AACf,QAAM;AAAA,IAACD,OAAAA;AAAAA,EAAAA,IAASC;AAEhB,SAAO,CACLF,oBAAoBC,QAAO,CAAC,SAAS,GAAGC,MAAMuO,QAAQ,GACtDzO,oBAAoBC,QAAO,CAAC,eAAe,cAAc,GAAGC,MAAMsR,SAAS,GAC3ExR,oBAAoBC,QAAO,CAAC,cAAc,eAAe,GAAGC,MAAMuR,SAAS,GAC3EzR,oBAAoBC,QAAO,CAAC,YAAY,GAAGC,MAAMwR,WAAW,GAC5D1R,oBAAoBC,QAAO,CAAC,cAAc,GAAGC,MAAMyR,aAAa,GAChE3R,oBAAoBC,QAAO,CAAC,eAAe,GAAGC,MAAM0R,cAAc,GAClE5R,oBAAoBC,QAAO,CAAC,aAAa,GAAGC,MAAM2R,YAAY,CAAC,EAC/D7H,OAAOC,OAAO;AAClB;ACdO,SAAS6H,sBAAsB5R,OAA6D;AACjG,QAAM;AAAA,IAACd;AAAAA,IAAO2S;AAAAA,EAAAA,IAAUxR,MAAAA,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAM8R,SAAUlT,CAAAA,UAAU;AAClD,QAAImT,eAA2B;AAE/B,WAAI,OAAOnT,SAAU,aACnBmT,eAAehT,IAAI8S,OAAOjT,KAAK,CAAC,IAG9BA,UAAU,WACZmT,eAAe,WAGV;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EACV,CAAC;AACH;ACfA,SAASC,YAAYC,QAAwB5I,OAAe;AAC1D,SAAO,GAAG4I,OAAO5S,IAAIN,GAAG,EAAEiL,KAAK,GAAG,CAAC,IAAIX,KAAK;AAC9C;AAEA,SAAS6I,YAAYD,QAA4BE,eAAuB,GAAc;AACpF,MAAI,CAACF,OAAQ,QAAOlW;AAEpB,QAAMqW,UAAU,SAASrT,IAAIoT,YAAY,CAAC,qCACpCE,QAAQL,YAAYC,OAAOI,OAAO,gCAAgC,GAClEC,WAAWN,YAAYC,OAAOK,UAAU,mCAAmC,GAC3EC,UAAUP,YAAYC,OAAOM,SAAS,kCAAkC;AAE9E,SAAO;AAAA,IAACC,WAAW,GAAGJ,OAAO,KAAKC,KAAK,KAAKC,QAAQ,KAAKC,OAAO;AAAA,EAAA;AAClE;AAEO,SAASE,sBAAsBzS,OAA6D;AACjG,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,IAAO+S;AAAAA,EAAAA,IAAU5R,MAAAA,YAAYL,MAAMD,KAAK;AAErD,SAAOd,YAAYC,OAAOc,MAAM0S,SAAUC,CAAAA,UACxCT,YAAYD,OAAOU,KAAK,GAAG1W,KAAKgW,OAAOG,OAAO,CAChD;AACF;ACzBO,MAAMQ,uBAAuBC,iBAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA;ACExC,SAASC,eACdjT,OACwB;AACxB,QAAM;AAAA,IAACkT;AAAAA,IAASC;AAAAA,EAAAA,IAAUnT,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAAA,YAAYL,MAAMD,KAAK;AAEtC,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA,MAGHwD,WACFxD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECyD,UACFzD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgB/O,KAAKyS,KAAKxS,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBrC;ACZA,MAAMyS,cAAcR,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAK3BlQ,qBAAqBC,0BAA0BkQ,cAAc,GAE1DM,iBAAiBC,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAsP,QAAAnL,OAAAoL,cAAAC,WAAAlP,IAAAE,IAAAiP,cAAAC;AAAA3P,WAAAnE,SAIhC;AAAA,IAAA0T;AAAAA,IAAAnL;AAAAA,IAAAzL,UAAA6W;AAAAA,IAAAI,OAAArP;AAAAA,IAAA9C,MAAAgD;AAAAA,IAAAiP;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IASI5T,OAAKmE,OAAAnE,OAAAmE,OAAAuP,QAAAvP,OAAAoE,OAAApE,OAAAwP,cAAAxP,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAA0P,cAAA1P,OAAA2P,WAAAJ,SAAAvP,EAAA,CAAA,GAAAoE,QAAApE,EAAA,CAAA,GAAAwP,eAAAxP,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAA0P,eAAA1P,EAAA,CAAA,GAAA2P,SAAA3P,EAAA,CAAA;AALP,QAAA4P,QAAArP,OAAA/E,SAAA,KAAA+E,IACA9C,QAAAgD,OAAAjF,SAAA,IAAAiF;AAMF,MAAA9H,WAAe6W;AAEf,MAAIE,iBAAiB,YAAU;AAAA,QAAA7O;AAAAb,aAAArH,YAClBkI,qCAAC,sBAAA,YAA+B,GAAuBb,OAAArH,UAAAqH,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GAAlErH,WAAWA;AAAAA,EAAH,OAAA;AAAA,QAAAkI;AAAAb,cAAArH,YAEGkI,MAAAE,2BAAAA,IAAA,QAAA,EAAOpI,UAAS,GAAOqH,QAAArH,UAAAqH,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GAAlCrH,WAAWA;AAAAA,EAAH;AACT,MAAAkI;AAAAb,YAAAoE,SAOWvD,KAAAxF,cAAc+I,KAAK,GAACpE,QAAAoE,OAAApE,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAiB;AAAAjB,YAAAvC,SAErBwD,KAAA5F,cAAcoC,KAAI,GAACuC,QAAAvC,OAAAuC,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAA,MAAA6P;AAAA,SAAA7P,EAAA,EAAA,MAAAuP,UAAAvP,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA4P,SAAA5P,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAiB,MAAAjB,UAAA2P,UAN5BE,oCAAC,aAAA,EACS,WAAA,SAAO,GACXJ,WACKF,SAAAA,QACD,QAAA1O,IACA+O,eACD,OAAA3O,IACE0O,SAAAA,QACJL,KAEJ3W,SAAAA,CACH,GAAcqH,QAAAuP,QAAAvP,QAAArH,UAAAqH,QAAA4P,OAAA5P,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA2P,QAAA3P,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA,GAXd6P;AAWc,CAEjB;AACDT,eAAevP,cAAc;AAOtB,MAAMiQ,QAAQV,gBC9ERW,cAAc;AAAA,EACzB3O,MAAM4O;AAAAA,EACNC,OAAOC;AAAAA,EACPC,UAAUC;AAAAA,EACVC,QAAQC;AAAAA,EACRC,UAAUC;AAAAA,EACVC,OAAOC;AACT;AAEA,SAASR,mBAA8B;AACrC,SAAO;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,QACjBjT,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAGF,sCAAsC;AAAA,MACpC0T,WAAW;AAAA,MACXxY,SAAS;AAAA,IAAA;AAAA,IAGX,mCAAmC;AAAA,MACjCA,SAAS;AAAA,MACTwY,WAAW;AAAA,IAAA;AAAA,IAGb,sCAAsC;AAAA,MACpCxY,SAAS;AAAA,MACTwY,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ;AAEO,SAASX,gBAAgBnU,OAAqD;AACnF,QAAM;AAAA,IAAC+U;AAAAA,EAAAA,IAAU/U,OACX;AAAA,IAACgV;AAAAA,EAAAA,IAAU3U,MAAAA,YAAYL,MAAMD,KAAK;AAExC,SAAO;AAAA,IACL,qBAAqB,qBAAqBgV,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,MAC3BzY,SAAS;AAAA,IAAA;AAAA,IAGX,SAAS;AAAA,MACP,mBAAmB;AAAA,QACjB8E,SAAS;AAAA,MAAA;AAAA,IACX;AAAA;AAAA,IAIF,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,QACToR,WAAWlJ,eAAe;AAAA,UAACE,WAAWwL,OAAOxL;AAAAA,QAAAA,CAAU;AAAA,MAAA;AAAA,MAGzD,+BAA+B;AAAA,QAC7BgJ,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;AAEO,SAASyC,0BACdjV,OACa;AACb,QAAM;AAAA,IAACgV;AAAAA,IAAQ9V;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAAAA,UAAS;AAC/C,UAAMsT,aAAaF,OAAOnU,MAAMe,KAAI,KAAKoT,OAAOnU,MAAM,CAAC;AAEvD,WAAO;AAAA,MACL,OAAS9B,IAAImW,WAAWtT,IAAI;AAAA,MAC5B,QAAU7C,IAAImW,WAAWtT,IAAI;AAAA,MAC7B,cAAgB7C,IAAImW,WAAWtT,OAAO,CAAC;AAAA,MAEvC,SAAS;AAAA,QACPsE,OAAOnH,IAAImW,WAAWtT,IAAI;AAAA,QAC1BP,QAAQtC,IAAImW,WAAWtT,IAAI;AAAA,QAC3BmQ,cAAchT,IAAImW,WAAWtT,OAAO,CAAC;AAAA,MAAA;AAAA,IACvC;AAAA,EAEJ,CAAC;AACH;AAEO,SAASiT,mBAA8B;AAC5C,SAAO;AAAA,IACLM,UAAU;AAAA,EAAA;AAEd;AAEO,SAASR,sBAAiC;AAC/C,SAAO;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,MACjBvT,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAEA,SAASmT,sBAAiC;AACxC,SAAO;AAAA,IACLa,aAAa;AAAA,IACbZ,QAAQ;AAAA,EAAA;AAEZ;AAEA,SAASC,oBAA+B;AACtC,SAAO;AAAA,IACL,aAAe;AAAA,IACf,QAAU;AAAA,IAEV,6BAA6B;AAAA,MAC3BY,iBAAiB;AAAA,MACjBC,eAAe;AAAA,IAAA;AAAA,EACjB;AAEJ;ACjIA,MAAMC,eAAe1C,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC7BiC,2BACAf,YAAY3O,IAAI,GAGZiQ,UAAQ3C,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACkB,YAAYE,KAAK,GAEpCqB,WAAW5C,iCAAAA,OAAO6C,QAAO3C,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACkB,YAAYI,QAAQ,GAE9CqB,SAAS9C,iCAAAA,OAAO6C,QAAO3C,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACkB,YAAYM,MAAM,GAE1CoB,WAAW/C,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACkB,YAAYQ,QAAQ,GAE1CmB,gBAAgBhD,wCAAOoB,KAAK,EAAClB,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAC;AAAA,EAClC3J,OAAO;AACT,CAAC,GAEKyM,cAAcjD,wCAAOkD,IAAGhD,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACkB,YAAYU,KAAK,GAE1CoB,kBAAkBxC,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAA6R,4BAAAC,kBAAAC,mBAAAC,QAAA1B,UAAA2B,kBAAAzC,WAAA0C,KAAA5R,IAAAE,IAAAI,IAAAuR;AAAApS,WAAAnE,SAIjC;AAAA,IAAAiW;AAAAA,IAAAO,IAAAJ;AAAAA,IAAA/M,OAAA3E;AAAAA,IAAA4R;AAAAA,IAAAC;AAAAA,IAAA7B;AAAAA,IAAA2B;AAAAA,IAAAI,eAAAN;AAAAA,IAAAD;AAAAA,IAAAQ,QAAA9R;AAAAA,IAAAhD,MAAAoD;AAAAA,IAAA,GAAA4O;AAAAA,EAAAA,IAaI5T,OAAKmE,OAAAnE,OAAAmE,OAAA8R,4BAAA9R,OAAA+R,kBAAA/R,OAAAgS,mBAAAhS,OAAAiS,QAAAjS,OAAAuQ,UAAAvQ,OAAAkS,kBAAAlS,OAAAyP,WAAAzP,OAAAmS,KAAAnS,OAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAoS,UAAAN,6BAAA9R,EAAA,CAAA,GAAA+R,mBAAA/R,EAAA,CAAA,GAAAgS,oBAAAhS,EAAA,CAAA,GAAAiS,SAAAjS,EAAA,CAAA,GAAAuQ,WAAAvQ,EAAA,CAAA,GAAAkS,mBAAAlS,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAmS,MAAAnS,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAoS,QAAApS,EAAA,EAAA;AAVP,QAAAkF,QAAA3E,OAAA/E,SAAA,SAAA+E,IAOAgS,SAAA9R,OAAAjF,SAAA,WAAAiF,IACM+R,WAAA3R,OAAArF,SAAA,IAAAqF,IAGR;AAAA,IAAAgQ;AAAAA,EAAAA,IAAiBtP,eACjB8Q,KAAWI,yBAAOC,mBAAoBT,MAAuB,IAAlDA,SAAA,OACXxU,QAAapC,cAAcmX,QAAQ,GAKnCG,YADmB9B,OAAMnU,MAAOe,MAAI,CAAA,CAAG,KAAKoT,OAAMnU,MAAM,CAAA,GAC7Be,MAC3BmV,UAAgBD,WAAW,GAE3BE,YAAkBC,MAAAA,MAAAA,GAClB,CAAAR,eAAAS,gBAAA,IAA0CC,MAAAA,SACxCjB,oBAAAC,qBAAA,QACF,GAEA,CAAAiB,aAAAC,cAAA,IAAsCF,MAAAA,SAAkB,EAAK,GAE7DG,UAAgB,gBAAgBN,SAAS;AAAE,MAAA5R,IAAA4O;AAAA7P,IAAA,EAAA,MAAAsS,iBAAAtS,UAAAgS,qBAEjC/Q,KAAAA,MAAA;AACR,QAAIqR,kBAAkBN;AAAiB;AAGvC,UAAAoB,MAAYC,sBAAsB,MAAMN,iBAAiBf,iBAAiB,CAAC;AAAC,WAErE,MAAMsB,qBAAqBF,GAAG;AAAA,EAAC,GACrCvD,KAAA,CAACyC,eAAeN,iBAAiB,GAAChS,QAAAsS,eAAAtS,QAAAgS,mBAAAhS,QAAAiB,IAAAjB,QAAA6P,OAAA5O,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,IAPrCuT,MAAAA,UAAUtS,IAOP4O,EAAkC;AAAC,MAAA2D,IAAAC;AAAAzT,YAAAmS,OAE5BqB,KAAAA,MAAA;AAEJrB,WAAKe,eAAe,EAAK;AAAA,EAAC,GAC7BO,KAAA,CAACtB,GAAG,GAACnS,QAAAmS,KAAAnS,QAAAwT,IAAAxT,QAAAyT,OAAAD,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,IAHRuT,gBAAUC,IAGPC,EAAK;AAAC,MAAAC;AAAA1T,YAAAkS,oBAE4BwB,KAAAA,MAAA;AACnCR,mBAAe,EAAI,GAEfhB,oBACFA,iBAAiB,IAAInW,MAAM,kCAAkC,CAAC;AAAA,EAC/D,GACFiE,QAAAkS,kBAAAlS,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAND,QAAA2T,mBAAyBD,IAStBE,KAAAxC,cAEUyC,YAAOxB,MAAO,WAAdA,KAAA7W,QACDsY,KAAA;AAAQ,MAAAC;AAAA/T,YAAAkF,SAUhB6O,qCAAC1C,SAAA,EACC,UAAAtQ,2BAAAA,IAAA,OAAA,EAAW,OAAA,MAAY,QAAA,KAAY,SAAA,YAAgB,MAAA,QACjD,UAAAA,2BAAAA,IAAA,QAAA,EACI,GAAA,gGACImE,MAAAA,MAAAA,CAAK,EAAA,CAEf,GACF,GAAQlF,QAAAkF,OAAAlF,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAgU;AAAAhU,IAAA,EAAA,MAAA8R,8BAAA9R,EAAA,EAAA,MAAA4S,WAAA5S,EAAA,EAAA,MAAA2S,YAAA3S,UAAA2T,oBAAA3T,EAAA,EAAA,MAAAiT,eAAAjT,EAAA,EAAA,MAAAmT,WAAAnT,EAAA,EAAA,MAAAmS,OAEP6B,MAAA,CAACf,eAADd,OACC8B,2BAAAA,KAAC,aAAA,EAAqB,SAAA,OAAOtB,QAAQ,IAAIA,QAAQ,IAAS,MAAA,QACxD,UAAA;AAAA,IAAA5R,2BAAAA,IAAA,QAAA,EACE,yCAAA,WAAA,EAAaoS,IAAAA,SAA6B,qBAAA,qBAA0B,OAAA,KAAW,QAAA,KAC7E,yCAAA,SAAA,EAAahB,MAAAA,KAAW,OAAA,KAAW,QAAA,KAAawB,SAAAA,iBAAAA,CAAgB,EAAA,CAClE,EAAA,CACF;AAAA,IAEA5S,2BAAAA,gBAAY6R,IAAAA,SAAaA,IAAAA,SAAYA,YAAe,cAAQO,OAAO,IAAA,CAAG;AAAA,KAEpErB,8BACA/Q,2BAAAA,IAAC,UAAA,EACK6R,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACS,cAAA,qBAAA;IAIjB7R,2BAAAA,IAAC,QAAA,EACK6R,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACS,cAAA,qBAAA,CAAoB;AAAA,EAAA,EAAA,CAErC,GACD5S,QAAA8R,4BAAA9R,QAAA4S,SAAA5S,QAAA2S,UAAA3S,QAAA2T,kBAAA3T,QAAAiT,aAAAjT,QAAAmT,SAAAnT,QAAAmS,KAAAnS,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAEA,QAAAkU,OAACjB,eAAA,CAAgBd,QAAjB5B,YAAAxP,2BAAAA,IAAAoT,WAAAA,UAAA,EAEG,UAAApT,2BAAAA,IAAC,YACC,UAAAA,2BAAAA,IAAC,eAAA,EACa,aAAA,QACN,MAAAtD,MAAIvC,IAAKkZ,OAMd,GACM,QAAA,UAEN7D,UAAAA,SAAAA,CACH,EAAA,CACF,EAAA,CAAW;AAEd,MAAA8D;AAAA,SAAArU,UAAA4T,MAAA5T,EAAA,EAAA,MAAAsS,iBAAAtS,EAAA,EAAA,MAAAqS,MAAArS,EAAA,EAAA,MAAAkF,SAAAlF,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,UAAAvC,SAAAuC,EAAA,EAAA,MAAAuS,UAAAvS,EAAA,EAAA,MAAA+T,OAAA/T,EAAA,EAAA,MAAAgU,OAAAhU,EAAA,EAAA,MAAAkU,OAAAlU,UAAA6T,MAAA7T,EAAA,EAAA,MAAAoS,SAtEHiC,MAAAJ,2BAAAA,KAAC,IAAA,EACK5B,IACK,WAAAwB,IACD,WAAAC,IAAQ,GACZrE,WACIvK,QAAAA,OACDzH,OAAAA,OACK2U,cAAAA,OACSE,uBAAAA,eACRC,eAAAA,QACRjD,KACE8C,OAEP2B,UAAAA;AAAAA,IAAAA;AAAAA,IASCC;AAAAA,IA8BAE;AAAAA,EAAAA,EAAAA,CAmBH,GAAelU,QAAA4T,IAAA5T,QAAAsS,eAAAtS,QAAAqS,IAAArS,QAAAkF,OAAAlF,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAvC,OAAAuC,QAAAuS,QAAAvS,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAkU,KAAAlU,QAAA6T,IAAA7T,QAAAoS,OAAApS,QAAAqU,OAAAA,MAAArU,EAAA,EAAA,GAvEfqU;AAuEe,CAElB;AACDxC,gBAAgBhS,cAAc;AAOvB,MAAMyU,SAASzC;AA7Ia,SAAAuC,QAAArJ,GAAA;AAsHnB,SAAIA,MAAM,IAAU,IAChBA,MAAM,IAAU,IAChBA,MAAM,IAAU,IAEb;AAAC;ACzKxB,SAASwJ,kCAAkC1Y,OAA2C;AACpF,QAAM;AAAA,IAACgV;AAAAA,IAAQ9V;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAAAA,UAAS;AAC/C,UAAMsT,aAAaF,OAAOnU,MAAMe,KAAI;AAEpC,WAAKsT,aAEE;AAAA,MACLnD,cAAchT,IAAImW,WAAWtT,OAAO,CAAC;AAAA,MACrC+F,UAAU5I,IAAImW,WAAWtT,IAAI;AAAA,MAC7BP,QAAQtC,IAAImW,WAAWtT,IAAI;AAAA,IAAA,IALL7F;AAAAA,EAO1B,CAAC;AACH;AAEA,SAAS4c,wBAAwB3Y,OAAmB;AAClD,QAAM;AAAA,IAACI;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAWQ3Q,IAAIqB,MAAM,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM9B;AAEA,MAAMwY,sBAAsB/F,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EACpC0F,mCACAC,uBAAuB,GAgBZE,gBAAgBrF,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,uBAAA,EAAA,GAItC;AAAA,IAAA0U;AAAAA,IAAAlX,MAAA8C;AAAAA,EAAAA,IAAoC1E,OAAhB2W,WAAAjS,OAAA/E,SAAA,IAAA+E;AAAY,MAAAqT,IAAAgB,IAAAnU,IAAAI,IAAAI,IAAA4O,IAAA2D;AAAA,MAAAxT,EAAA,CAAA,MAAAsP,OAAAtP,SAAAwS,UAAA;AAChC,UAAA/U,QAAapC,cAAcmX,QAAQ;AAGhCoC,SAAAH,qBAA2BhX,KAAAA,OAAcoS,KAAA,iBAAqBP,KAAAA,KAC5DsE,KAAA9D,OACIrP,KAAA,QACGI,KAAApD,MAAIvC,IAAKkZ,OAMd,GAACpU,OAAAsP,KAAAtP,OAAAwS,UAAAxS,OAAA4T,IAAA5T,OAAA4U,IAAA5U,OAAAS,IAAAT,OAAAa,IAAAb,OAAAiB,IAAAjB,OAAA6P,IAAA7P,OAAAwT;AAAAA,EAAA;AAAAI,SAAA5T,EAAA,CAAA,GAAA4U,KAAA5U,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAiB,KAAAjB,EAAA,CAAA,GAAA6P,KAAA7P,EAAA,CAAA,GAAAwT,KAAAxT,EAAA,CAAA;AAAA,MAAAyT;AAAAzT,IAAA,CAAA,MAAA4T,MAAA5T,EAAA,EAAA,MAAA2U,SAAA3U,EAAA,EAAA,MAAAS,MAAAT,UAAAa,MARJ4S,oCAAC,IAAA,EACI,IAAAhT,IACG,MAAAI,IAOC,QAAA,UAEN8T,UAAAA,MAAAA,CACH,GAAQ3U,OAAA4T,IAAA5T,QAAA2U,OAAA3U,QAAAS,IAAAT,QAAAa,IAAAb,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA,SAAA1T,EAAA,EAAA,MAAA4U,MAAA5U,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAA6P,MAAA7P,EAAA,EAAA,MAAAwT,MAAAxT,UAAAyT,MAbVC,KAAA3S,2BAAAA,IAAC,IAAA,EAA2BtD,WAAc,WAAAoS,IAAqBP,KAAAA,IAC7DmE,cAaF,GAAsBzT,QAAA4U,IAAA5U,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA,GAdtB0T;AAcsB,CAEzB;AACDgB,cAAc7U,cAAc;AAzBY,SAAAuU,QAAArJ,GAAA;AAY9B,SAAIA,MAAM,IAAU,IAChBA,MAAM,IAAU,IAChBA,MAAM,IAAU,IAEb;AAAC;ACxElB,MAAM8J,cAActJ,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAYpB,SAASuJ,mBAAmB;AAC1B,SAAOD;AACT;AAEA,SAASE,+BAA+BlZ,OAA2C;AACjF,QAAM;AAAA,IAACgV;AAAAA,IAAQ9V;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAAAA,UAAS;AAC/C,UAAMsT,aAAaF,OAAOnU,MAAMe,KAAI;AAEpC,WAAKsT,aAEE;AAAA,MACL,iBAAiB;AAAA,QACfiE,YAAYpa,IAAImW,WAAWkE,QAAQ;AAAA,MAAA;AAAA,IACrC,IALsBrd;AAAAA,EAO1B,CAAC;AACH;AAEA,MAAMsd,oBAAoBxG,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAClCkG,gCACAD,gBAAgB,GAiBLK,cAAc9F,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAuP,cAAAC,WAAAlP,IAAAE;AAAAT,WAAAnE,SAIpC;AAAA,IAAAlD,UAAA6W;AAAAA,IAAA4F,WAAA7U;AAAAA,IAAA9C,MAAAgD;AAAAA,IAAA,GAAAgP;AAAAA,EAAAA,IAKI5T,OAAKmE,OAAAnE,OAAAmE,OAAAwP,cAAAxP,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,OAAA+O,eAAAxP,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA;AAHI,QAAAqV,gBAAA9U,OAAA/E,SAAA,IAAA+E,IACLiS,WAAA/R,OAAAjF,SAAA,IAAAiF;AAAY,MAAAmT,IAAA/S,IAAAI,IAAA4O,IAAA2D,IAAAC,IAAAC,IAAAG;AAAA,MAAA7T,EAAA,CAAA,MAAAwP,gBAAAxP,EAAA,CAAA,MAAAqV,iBAAArV,EAAA,CAAA,MAAAsP,OAAAtP,EAAA,CAAA,MAAAyP,aAAAzP,SAAAwS,UAAA;AAGpB,UAAA7Z,WAAsC2c,MAAAA,SAAQC,QAAS/F,YAAY,EAAC7J,OAAQ6P,oBAAc,GAC1FJ,YAAkBjX,KAAI2J,IAAKuN,eAAe,CAAC;AAAC,QAAAvB;AAAA9T,cAAAwS,YAC/BsB,MAAAzY,cAAcmX,QAAQ,GAACxS,QAAAwS,UAAAxS,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAApC,UAAAvC,QAAaqW,KAEbxJ,MAAY3R,SAAQqD,QACpByZ,eAAqBL,YAAY,GACjCM,aAAmBpL,MAAMmL,cACzBE,kBAAwBD,aAAa,IAAI/c,SAAQid,MAAOF,YAAYpL,GAAc,IAA1D3R;AAGrBib,SAAAsB,mBAA0BrU,KAAA,eAAkB4O,KAAAA,WAAgBH,KAAAA,KAAY7R,KAAAA,OAAIuC,EAAA,EAAA,MAAAsK,OAAAtK,UAAAvC,SAC1EgW,KAAAnJ,QAAQ,KACPvJ,+BAAA,OAAA,EACE,UAAAA,2BAAAA,IAAC,iBAAqBuJ,OAAAA,KAAW7M,MAAAA,OAAI,GACvC,GACDuC,QAAAsK,KAAAtK,QAAAvC,OAAAuC,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GAAAA,EAAA,EAAA,MAAA0V,cAAA1V,UAAAsK,OAAAtK,EAAA,EAAA,MAAAvC,SAEAiW,KAAApJ,QAAQ,KAAKoL,aAAa,KACzB3U,+BAAA,OAAA,EACE,yCAAC,eAAA,EAAqB2U,OAAAA,YAAkBjY,MAAAA,OAAI,EAAA,CAC9C,GACDuC,QAAA0V,YAAA1V,QAAAsK,KAAAtK,QAAAvC,OAAAuC,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,QAAA+T;AAAA/T,cAAAvC,SAEoBsW,MAAAA,CAAA8B,OAAAC,eACnB/U,2BAAAA,IAAA,OAAA,EAA+BgV,UAAAA,MAAAA,aAAaF,OAAO;AAAA,MAAApY,MAAAA;AAAAA,IAAAA,CAAM,EAAA,GAA/CuY,OAAOF,UAAU,CAAgC,GAC5D9V,QAAAvC,OAAAuC,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA,GAFA6T,KAAA8B,gBAAeza,IAAK6Y,GAEpB,GAAC/T,OAAAwP,cAAAxP,OAAAqV,eAAArV,OAAAsP,KAAAtP,OAAAyP,WAAAzP,OAAAwS,UAAAxS,QAAA4T,IAAA5T,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T;AAAAA,EAAA;AAAAD,SAAA5T,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,GAAA0T,KAAA1T,EAAA,EAAA,GAAA6T,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA,SAAA9T,EAAA,EAAA,MAAA4T,MAAA5T,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAA6P,MAAA7P,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAAyT,MAAAzT,EAAA,EAAA,MAAA0T,MAAA1T,UAAA6T,MAfJC,KAAAG,2BAAAA,KAAC,IAAA,EAA0B,WAAApT,IAAa,GAAK4O,IAAgBH,SAAY7R,OAAAA,IACtEgW,UAAAA;AAAAA,IAAAA;AAAAA,IAMAC;AAAAA,IAMAG;AAAAA,EAAAA,EAAAA,CAGH,GAAoB7T,QAAA4T,IAAA5T,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA,GAhBpB8T;AAgBoB,CAEvB;AACDqB,YAAYtV,cAAc;ACtD1B,MAAMoW,YAAYvH,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAO1BlM,UACAe,eACAd,oBACAkD,yBACA4G,uBACAQ,sBAAsB,GAGlBgJ,eAAe7G,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,GAAA;AAAA,MAAAkW,mBAAAC,sBAAAC,wBAAAC,gBAAAC,mBAAAC,qBAAA3S,MAAAuD,YAAAM,eAAAH,iBAAAZ,SAAAM,YAAAH,cAAA5J,QAAAqB,cAAAyW,YAAAyB,aAAAnY,WAAAoY,SAAAC,SAAApT,UAAA4H,eAAAC,aAAAF,cAAAD,YAAA2L,UAAAC,UAAApH,WAAAtM,QAAA5C,IAAAE,IAAAI,IAAAI;AAAAjB,WAAAnE,SAI9B;AAAA,IAAAwW,IAAA9R;AAAAA,IAAA6G;AAAAA,IAAAD,QAAAgP;AAAAA,IAAA5O;AAAAA,IAAAD,aAAA+O;AAAAA,IAAA3O;AAAAA,IAAAD,WAAA2O;AAAAA,IAAAnZ,SAAAwD;AAAAA,IAAAoD;AAAAA,IAAA3G;AAAAA,IAAAsB,QAAAqC;AAAAA,IAAA6V;AAAAA,IAAAC;AAAAA,IAAArY;AAAAA,IAAAmY;AAAAA,IAAAlY;AAAAA,IAAAyW;AAAAA,IAAAzR;AAAAA,IAAAuT,SAAA7V;AAAAA,IAAA2V;AAAAA,IAAAC;AAAAA,IAAA5L;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAzE;AAAAA,IAAAD,KAAA4P;AAAAA,IAAAxP;AAAAA,IAAAD,UAAA2P;AAAAA,IAAAvP;AAAAA,IAAAD,QAAAuP;AAAAA,IAAApT;AAAAA,IAAA,GAAAsM;AAAAA,EAAAA,IAkCI5T,OAAKmE,OAAAnE,OAAAmE,OAAAmW,mBAAAnW,OAAAoW,sBAAApW,OAAAqW,wBAAArW,OAAAsW,gBAAAtW,OAAAuW,mBAAAvW,OAAAwW,qBAAAxW,OAAA6D,MAAA7D,OAAAoH,YAAApH,OAAA0H,eAAA1H,QAAAuH,iBAAAvH,QAAA2G,SAAA3G,QAAAiH,YAAAjH,QAAA8G,cAAA9G,QAAA9C,QAAA8C,QAAAzB,cAAAyB,QAAAgV,YAAAhV,QAAAyW,aAAAzW,QAAA1B,WAAA0B,QAAA0W,SAAA1W,QAAA2W,SAAA3W,QAAAuD,UAAAvD,QAAAmL,eAAAnL,QAAAoL,aAAApL,QAAAkL,cAAAlL,QAAAiL,YAAAjL,QAAA4W,UAAA5W,QAAA6W,UAAA7W,QAAAyP,WAAAzP,QAAAmD,QAAAnD,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,OAAAkV,oBAAAnW,EAAA,CAAA,GAAAoW,uBAAApW,EAAA,CAAA,GAAAqW,yBAAArW,EAAA,CAAA,GAAAsW,iBAAAtW,EAAA,CAAA,GAAAuW,oBAAAvW,EAAA,CAAA,GAAAwW,sBAAAxW,EAAA,CAAA,GAAA6D,OAAA7D,EAAA,CAAA,GAAAoH,aAAApH,EAAA,CAAA,GAAA0H,gBAAA1H,EAAA,CAAA,GAAAuH,kBAAAvH,EAAA,EAAA,GAAA2G,UAAA3G,EAAA,EAAA,GAAAiH,aAAAjH,EAAA,EAAA,GAAA8G,eAAA9G,EAAA,EAAA,GAAA9C,SAAA8C,EAAA,EAAA,GAAAzB,eAAAyB,EAAA,EAAA,GAAAgV,aAAAhV,EAAA,EAAA,GAAAyW,cAAAzW,EAAA,EAAA,GAAA1B,YAAA0B,EAAA,EAAA,GAAA0W,UAAA1W,EAAA,EAAA,GAAA2W,UAAA3W,EAAA,EAAA,GAAAuD,WAAAvD,EAAA,EAAA,GAAAmL,gBAAAnL,EAAA,EAAA,GAAAoL,cAAApL,EAAA,EAAA,GAAAkL,eAAAlL,EAAA,EAAA,GAAAiL,aAAAjL,EAAA,EAAA,GAAA4W,WAAA5W,EAAA,EAAA,GAAA6W,WAAA7W,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAmD,SAAAnD,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA;AAjCH,QAAAiS,SAAA1R,OAAA/E,SAAA,QAAA+E,IAOJtD,UAAAwD,OAAAjF,SAAA,UAAAiF,IAGAjC,SAAAqC,OAAArF,SAAA,IAAAqF,IAQAiW,UAAA7V,OAAAzF,SAAA,IAAAyF,IAgBFkG,SAAeC,eAAe5L,SAAf2a,oBAAA/O,YACfE,cAAoBC,oBAAoB/L,SAApB6a,yBAAA9O,iBACpBE,YAAkBC,kBAAkBlM,SAAlB4a,uBAAA1O,eAClBhB,MAAYC,YAAYnL,SAAZ8a,iBAAA3P,SACZE,WAAiBC,iBAAiBtL,SAAjBgb,sBAAA1P,cACjBE,SAAeC,eAAezL,SAAf+a,oBAAAtP,YAIF4I,YAAOoC,UAAW,WAAlBA,SAAAzW;AAA+C,MAAAgY;AAAAxT,YAAAmH,UAG/CqM,KAAAnY,cAAc8L,MAAM,GAACnH,QAAAmH,QAAAnH,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAAzT,YAAAsH,eAChBmM,KAAApY,cAAciM,WAAW,GAACtH,QAAAsH,aAAAtH,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,YAAAyH,aAC5BiM,KAAArY,cAAcoM,SAAS,GAACzH,QAAAyH,WAAAzH,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA/C,WAC1B4W,KAAAxY,cAAc4B,OAAO,GAAC+C,QAAA/C,SAAA+C,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,YAAA6D,QACzBiQ,KAAAzY,cAAcwI,IAAI,GAAC7D,QAAA6D,MAAA7D,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,YAAA9C,UACjB6W,MAAA1Y,cAAc6B,MAAM,GAAC8C,QAAA9C,QAAA8C,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAgU;AAAAhU,YAAAxB,UACrBwV,MAAA3Y,cAAcmD,MAAM,GAACwB,QAAAxB,QAAAwB,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAA,MAAAkU;AAAAlU,YAAA0W,WACpBxC,MAAA7Y,cAAcqb,OAAO,GAAC1W,QAAA0W,SAAA1W,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAAA,MAAAqU;AAAArU,YAAA2W,WACtBtC,MAAAhZ,cAAcsb,OAAO,GAAC3W,QAAA2W,SAAA3W,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AAAA,MAAA+W;AAAA/W,YAAA1B,aACpByY,MAAA1b,cAAciD,SAAS,GAAC0B,QAAA1B,WAAA0B,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAAA,MAAAgX;AAAAhX,YAAAyW,eACtBO,MAAA3b,cAAcob,WAAW,GAACzW,QAAAyW,aAAAzW,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAAA,MAAAiX;AAAAjX,YAAAzB,gBACzB0Y,MAAA5b,cAAckD,YAAY,GAACyB,QAAAzB,cAAAyB,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAAA,MAAAkX;AAAAlX,YAAAgV,cAC7BkC,MAAA7b,cAAc2Z,UAAU,GAAChV,QAAAgV,YAAAhV,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAAA,MAAAmX;AAAAnX,YAAAuD,YAC3B4T,MAAA9b,cAAckI,QAAQ,GAACvD,QAAAuD,UAAAvD,QAAAmX,OAAAA,MAAAnX,EAAA,EAAA;AAAA,MAAAoX;AAAApX,YAAA8W,WACxBM,MAAA/b,cAAcyb,OAAO,GAAC9W,QAAA8W,SAAA9W,QAAAoX,OAAAA,MAAApX,EAAA,EAAA;AAAA,MAAAqX;AAAArX,YAAA4W,YACrBS,MAAAhc,cAAcub,QAAQ,GAAC5W,QAAA4W,UAAA5W,QAAAqX,OAAAA,MAAArX,EAAA,EAAA;AAAA,MAAAsX;AAAAtX,YAAA6W,YACvBS,MAAAjc,cAAcwb,QAAQ,GAAC7W,QAAA6W,UAAA7W,QAAAsX,OAAAA,MAAAtX,EAAA,EAAA;AAAA,MAAAuX;AAAAvX,YAAAiL,cACrBsM,MAAAlc,cAAc4P,UAAU,GAACjL,QAAAiL,YAAAjL,QAAAuX,OAAAA,MAAAvX,EAAA,EAAA;AAAA,MAAAwX;AAAAxX,YAAAkL,gBACvBsM,MAAAnc,cAAc6P,YAAY,GAAClL,QAAAkL,cAAAlL,QAAAwX,OAAAA,MAAAxX,EAAA,EAAA;AAAA,MAAAyX;AAAAzX,YAAAmL,iBAC1BsM,MAAApc,cAAc8P,aAAa,GAACnL,QAAAmL,eAAAnL,QAAAyX,OAAAA,MAAAzX,EAAA,EAAA;AAAA,MAAA0X;AAAA1X,YAAAoL,eAC9BsM,MAAArc,cAAc+P,WAAW,GAACpL,QAAAoL,aAAApL,QAAA0X,OAAAA,MAAA1X,EAAA,EAAA;AAAA,MAAA2X;AAAA3X,YAAA0G,OAClCiR,MAAAtc,cAAcqL,GAAG,GAAC1G,QAAA0G,KAAA1G,QAAA2X,OAAAA,MAAA3X,EAAA,EAAA;AAAA,MAAA4X;AAAA5X,YAAA6G,YACb+Q,MAAAvc,cAAcwL,QAAQ,GAAC7G,QAAA6G,UAAA7G,QAAA4X,OAAAA,MAAA5X,EAAA,EAAA;AAAA,MAAA6X;AAAA7X,YAAAgH,UACzB6Q,MAAAxc,cAAc2L,MAAM,GAAChH,QAAAgH,QAAAhH,QAAA6X,OAAAA,MAAA7X,EAAA,EAAA;AAAA,MAAA8X;AAAA9X,YAAAmD,UACrB2U,MAAAzc,cAAc8H,MAAM,GAACnD,QAAAmD,QAAAnD,QAAA8X,OAAAA,MAAA9X,EAAA,EAAA;AAAA,MAAA+X;AAAA,SAAA/X,EAAA,EAAA,MAAAiS,UAAAjS,EAAA,EAAA,MAAAnE,MAAAlD,YAAAqH,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAA+T,OAAA/T,EAAA,EAAA,MAAAgU,OAAAhU,EAAA,EAAA,MAAAkU,OAAAlU,EAAA,EAAA,MAAAqU,OAAArU,EAAA,EAAA,MAAA+W,OAAA/W,EAAA,EAAA,MAAAgX,OAAAhX,EAAA,EAAA,MAAAiX,OAAAjX,EAAA,EAAA,MAAAkX,OAAAlX,EAAA,EAAA,MAAAmX,OAAAnX,EAAA,EAAA,MAAAoX,OAAApX,EAAA,EAAA,MAAAqX,OAAArX,EAAA,EAAA,MAAAsX,OAAAtX,EAAA,GAAA,MAAAuX,OAAAvX,EAAA,GAAA,MAAAwX,OAAAxX,EAAA,GAAA,MAAAyX,OAAAzX,EAAA,GAAA,MAAA0X,OAAA1X,EAAA,GAAA,MAAA2X,OAAA3X,EAAA,GAAA,MAAA4X,OAAA5X,WAAA6X,OAAA7X,EAAA,GAAA,MAAA8X,OAAA9X,EAAA,GAAA,MAAA6P,MAAA7P,EAAA,GAAA,MAAAwT,MAAAxT,EAAA,GAAA,MAAAyT,MAAAzT,EAAA,GAAA,MAAA0T,MAAA1T,EAAA,GAAA,MAAA6T,MAAA7T,EAAA,GAAA,MAAA8T,MA5BhCiE,qCAAC,WAAA,EACU,WAAAlI,IACD,WAAA,UACJJ,WACK,SAAA+D,IACK,cAAAC,IACF,YAAAC,IACF,UAAAG,IACH,OAAAC,IACE,SAAAC,KACA,SAAAC,KACC,UAAAE,KACA,UAAAG,KACE,YAAA0C,KACE,cAAAC,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,KACL7F,IAAAA,QACC3C,KAEJzT,gBAAKlD,SAAAA,CACR,GAAYqH,QAAAiS,QAAAjS,EAAA,EAAA,IAAAnE,MAAAlD,UAAAqH,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAkU,KAAAlU,QAAAqU,KAAArU,QAAA+W,KAAA/W,QAAAgX,KAAAhX,QAAAiX,KAAAjX,QAAAkX,KAAAlX,QAAAmX,KAAAnX,QAAAoX,KAAApX,QAAAqX,KAAArX,QAAAsX,KAAAtX,SAAAuX,KAAAvX,SAAAwX,KAAAxX,SAAAyX,KAAAzX,SAAA0X,KAAA1X,SAAA2X,KAAA3X,SAAA4X,KAAA5X,SAAA6X,KAAA7X,SAAA8X,KAAA9X,SAAA6P,IAAA7P,SAAAwT,IAAAxT,SAAAyT,IAAAzT,SAAA0T,IAAA1T,SAAA6T,IAAA7T,SAAA8T,IAAA9T,SAAA+X,OAAAA,MAAA/X,EAAA,GAAA,GAjCZ+X;AAiCY,CAEf;AACD7B,aAAarW,cAAc;AAQpB,MAAMmY,MAAM9B;AClJZ,SAAS+B,cACdpc,OACwB;AACxB,QAAM;AAAA,IAACkT;AAAAA,IAASC;AAAAA,EAAAA,IAAUnT,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAAA,YAAYL,MAAMD,KAAK;AAEtC,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA,MAGHwD,WACFxD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECyD,UACFzD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgB/O,KAAKyS,KAAKxS,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,KAAKoO,KAAKjO,QAAQub,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkB3C;ACpCA,MAAMC,aAAazJ,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC3B9P,oBACAH,0BACAqZ,aAAa,GAGTG,gBAAgB/I,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAmE,OAAAoL,cAAAC,WAAAlP,IAAAE,IAAAI,IAAA6O,cAAAC;AAAA3P,WAAAnE,SAI/B;AAAA,IAAA0T,QAAAhP;AAAAA,IAAA6D;AAAAA,IAAAzL,UAAA6W;AAAAA,IAAAI,OAAAnP;AAAAA,IAAAhD,MAAAoD;AAAAA,IAAA6O;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IASI5T,OAAKmE,OAAAnE,OAAAmE,OAAAoE,OAAApE,OAAAwP,cAAAxP,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAA0P,cAAA1P,OAAA2P,WAAAvL,QAAApE,EAAA,CAAA,GAAAwP,eAAAxP,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAA0P,eAAA1P,EAAA,CAAA,GAAA2P,SAAA3P,EAAA,CAAA;AARP,QAAAuP,SAAAhP,OAAA/E,SAAA,KAAA+E,IAGAqP,QAAAnP,OAAAjF,SAAA,KAAAiF,IACAhD,QAAAoD,OAAArF,SAAA,IAAAqF;AAMF,MAAAlI,WAAe6W;AAEf,MAAIE,iBAAiB,YAAU;AAAA,QAAAzO;AAAAjB,aAAArH,YAClBsI,qCAAC,sBAAA,YAA+B,GAAuBjB,OAAArH,UAAAqH,QAAAiB,OAAAA,MAAAjB,EAAA,EAAA,GAAlErH,WAAWA;AAAAA,EAAH;AACT,MAAAsI;AAAAjB,YAAAoE,SAOWnD,KAAA5F,cAAc+I,KAAK,GAACpE,QAAAoE,OAAApE,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAA,MAAA6P;AAAA7P,YAAAvC,SAGrBoS,KAAAxU,cAAcoC,KAAI,GAACuC,QAAAvC,OAAAuC,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAArH,YAG1B6a,KAAAzS,2BAAAA,IAAA,UAAOpI,UAAS,GAAOqH,QAAArH,UAAAqH,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAA,SAAAzT,EAAA,EAAA,MAAAuP,UAAAvP,EAAA,EAAA,MAAA4P,SAAA5P,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAA6P,MAAA7P,EAAA,EAAA,MAAAwT,MAAAxT,UAAA2P,UAVzB8D,oCAAC,YAAA,EACS,WAAA,QAAM,GACVhE,WACKF,SAAAA,QACD,QAAAtO,IACA2O,QAAAA,OACHN,KACE,OAAAO,IACEF,iBAET6D,UAAAA,IACF,GAAaxT,QAAAuP,QAAAvP,QAAA4P,OAAA5P,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAA2P,QAAA3P,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GAXbyT;AAWa,CAEhB;AACD2E,cAAcvY,cAAc;AAOrB,MAAMwY,OAAOD;AClFb,SAASE,WAAWzc,OAAmC;AAC5D,QAAM;AAAA,IAAC8P;AAAAA,EAAAA,IAAS9P;AAEhB,SAAO;AAAA,IACL,mBAAmB,oBAAoB8P,KAAK;AAAA,IAC5C,mBAAmB,oBAAoBA,KAAK;AAAA,IAE5C,iBAAmB;AAAA,IACnB,QAAU;AAAA,IAEV,mBAAmB;AAAA,MACjB1O,SAAS;AAAA,MACTsb,eAAe;AAAA,IAAA;AAAA,EACjB;AAEJ;ACQA,MAAMC,cAAc9J,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC7BpB,uBACA6K,UAAU,GAGNG,iBAAiBpJ,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAtH,UAAA8W,WAAAlP,IAAAE,IAAAI,IAAAI;AAAA,MAAAjB,SAAAnE,OAAA;AAIhC,UAAA;AAAA,MAAAlD,UAAAkX;AAAAA,MAAArS,UAAAgW;AAAAA,MAAAkF,MAAAC;AAAAA,MAAA7B,SAAArD;AAAAA,MAAA/F,QAAAgG;AAAAA,MAAApT,MAAAuT;AAAAA,MAAA,GAAAC;AAAAA,IAAAA,IASIjY;AATJlD,eAAAkX,KAAAtP,KAAAiT,KAAA/S,KAAAgT,KAAA5S,KAAA6S,KAAAzS,KAAA4S,IAAApE,YAAAqE,IASS9T,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAAiB;AAAAA,EAAA;AAAAtI,eAAAqH,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAiB,KAAAjB,EAAA,CAAA;AAPP,QAAAxC,YAAA+C,OAAA/E,SAAA,IAAA+E,IAGAuW,UAAArW,OAAAjF,SAAA,IAAAiF,IACAiN,SAAA7M,OAAArF,SAAA,SAAAqF,IACAP,OAAAW,OAAAzF,SAAA,YAAAyF;AAAgB,MAAA4O;AAAA7P,WAAA0N,UASLmC,KAAAxU,cAAcqS,MAAM,GAAC1N,OAAA0N,QAAA1N,OAAA6P,MAAAA,KAAA7P,EAAA,CAAA;AAAA,MAAAwT;AAAAxT,WAAA8W,WACrBtD,KAAAnY,cAAcyb,OAAO,GAAC9W,OAAA8W,SAAA9W,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAAzT,IAAA,EAAA,MAAArH,YAAAqH,UAAAxC,aAG/BiW,KAAA1S,2BAAAA,IAAC,MAAA,EAAWvD,MAAAA,WAAW7E,SAAAA,CAAS,GAAOqH,QAAArH,UAAAqH,QAAAxC,WAAAwC,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA,SAAA1T,UAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAA6P,MAAA7P,EAAA,EAAA,MAAAwT,MAAAxT,UAAAyT,MAAAzT,EAAA,EAAA,MAAAM,QARzCoT,oCAAC,aAAA,EACS,WAAA,SAAO,GACXjE,WACGnP,OAAAA,MACE,SAAAuP,IACA,SAAA2D,IACJlE,KAELmE,UAAAA,GAAAA,CACF,GAAczT,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAAM,MAAAN,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA,GATd0T;AASc,CAEjB;AACD+E,eAAe5Y,cAAc;AAOtB,MAAM+Y,QAAQH,gBCtCfI,aAAanK,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC5BnL,eACAI,mBAAmB,GAGfgV,gBAAgBzJ,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAmE,OAAAiO,IAAA9N,KAAAK,SAAA6K,WAAAlP,IAAAkE;AAAAzE,WAAAnE,SAI/B;AAAA,IAAAuI;AAAAA,IAAAiO;AAAAA,IAAAtN,WAAAxE;AAAAA,IAAAgE;AAAAA,IAAAK;AAAAA,IAAAH;AAAAA,IAAA,GAAAgL;AAAAA,EAAAA,IAAyE5T,OAAKmE,OAAAnE,OAAAmE,OAAAoE,OAAApE,OAAAqS,IAAArS,OAAAuE,KAAAvE,OAAA4E,SAAA5E,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAyE,SAAAL,QAAApE,EAAA,CAAA,GAAAqS,KAAArS,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAA4E,UAAA5E,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAyE,OAAAzE,EAAA,CAAA;AAA5D,QAAA+E,YAAAxE,OAAA/E,SAAA,QAAA+E;AAAiB,MAAAE;AAAAT,WAAAoE,SAMvB3D,KAAApF,cAAc+I,KAAK,GAACpE,OAAAoE,OAAApE,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAAb,YAAA+E,aAChBlE,KAAAxF,cAAc0J,SAAS,GAAC/E,QAAA+E,WAAA/E,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAiB;AAAAjB,YAAAuE,OAC9BtD,KAAA5F,cAAckJ,GAAG,GAACvE,QAAAuE,KAAAvE,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAA,MAAA6P;AAAA7P,YAAA4E,WACdiL,KAAAxU,cAAcuJ,OAAO,GAAC5E,QAAA4E,SAAA5E,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAAyE,QACzB+O,KAAAnY,cAAcoJ,IAAI,GAACzE,QAAAyE,MAAAzE,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAA,SAAAzT,EAAA,EAAA,MAAAqS,MAAArS,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAS,MAAAT,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAA6P,MAAA7P,UAAAwT,MAP5BC,KAAA1S,+BAAC,cACS,WAAA,QAAM,GACV0O,WACI,QAAAhP,IACI,YAAAI,IACN,MAAAI,IACI,UAAA4O,IACH,OAAA2D,IACMnB,aAAAA,IACR/C,KAAG,GACRtP,QAAAqS,IAAArS,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GAVFyT;AAUE,CAEL;AACDqF,cAAcjZ,cAAc;AAOrB,MAAMkZ,OAAOD,eC/CdE,SAASC,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAUTC,gBAAgBxK,iBAAAA,OAAO2J,IAAI,EAACzJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,6BAEjBmK,MAAM,4BASVG,UAAU9J,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,CAAA;AAAA,MAAAM;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAM5Bc,KAAAQ,2BAAAA,IAACqY,MAAAA,aAAA,CAAA,CAAW,GAAGpZ,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAAA,MAAAS;AAAA,SAAAT,EAAA,CAAA,MAAAnE,SAAAmE,SAAAsP,OADjB7O,oCAAC,eAAA,EAAsB,WAAA,cAAc5E,OAAYyT,KAC/C/O,UAAAA,GAAAA,CACF,GAAgBP,OAAAnE,OAAAmE,OAAAsP,KAAAtP,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAFhBS;AAEgB,CAEnB;AACD0Y,QAAQtZ,cAAc;ACxCf,SAASwZ,gBACdtc,MACAmI,OACAoU,YAAY,IACD;AACX,SAAO;AAAA;AAAA,IAGL,yBAAyBvc,KAAKwc;AAAAA,IAE9B,2BAA2Bxc,KAAKsI;AAAAA,IAEhC,+BAA+BtI,KAAK+Q,OAAOG;AAAAA,IAC3C,6BAA6BlR,KAAK+Q,OAAOI;AAAAA,IACzC,gCAAgCnR,KAAK+Q,OAAOK;AAAAA,IAC5C,+BAA+BpR,KAAK+Q,OAAOM;AAAAA;AAAAA,IAI3C,0BAA0BlJ,MAAMqK,OAAOxD;AAAAA,IAEvC,+BAA+B7G,MAAM2L,OAAO2I,KAAK9T;AAAAA,IACjD,+BAA+BR,MAAM2L,OAAO2I,KAAKzN;AAAAA,IACjD,+BAA+B7G,MAAM2L,OAAO4I,KAAK/T;AAAAA,IACjD,+BAA+BR,MAAM2L,OAAO4I,KAAK1N;AAAAA,IACjD,iCAAiC7G,MAAM2L,OAAO6I,OAAOhU;AAAAA,IACrD,iCAAiCR,MAAM2L,OAAO6I,OAAO3N;AAAAA,IACrD,kCAAkC7G,MAAM2L,OAAO8I,QAAQjU;AAAAA,IACvD,kCAAkCR,MAAM2L,OAAO8I,QAAQ5N;AAAAA,IACvD,8BAA8B7G,MAAM2L,OAAO+I,IAAIlU;AAAAA,IAC/C,8BAA8BR,MAAM2L,OAAO+I,IAAI7N;AAAAA,IAC/C,iCAAiC7G,MAAM2L,OAAOgJ,OAAOnU;AAAAA,IACrD,iCAAiCR,MAAM2L,OAAOgJ,OAAO9N;AAAAA,IACrD,iCAAiC7G,MAAM2L,OAAOiJ,OAAOpU;AAAAA,IACrD,iCAAiCR,MAAM2L,OAAOiJ,OAAO/N;AAAAA,IACrD,gCAAgC7G,MAAM2L,OAAOkJ,MAAMrU;AAAAA,IACnD,gCAAgCR,MAAM2L,OAAOkJ,MAAMhO;AAAAA,IACnD,+BAA+B7G,MAAM2L,OAAOmJ,KAAKtU;AAAAA,IACjD,+BAA+BR,MAAM2L,OAAOmJ,KAAKjO;AAAAA,IAEjD,mBAAmB7G,MAAMQ;AAAAA,IACzB,mBAAmB4T,YACf,4BAA4BpU,MAAMQ,EAAE,YAAYR,MAAM0K,MAAMlK,EAAE,aAC9DlK;AAAAA,IAEJ,uBAAuB0J,MAAMzD;AAAAA,IAE7B,iCAAiCyD,MAAM+U,MAAMpO,QAAQnG;AAAAA,IACrD,kCAAkCR,MAAM+U,MAAMpO,QAAQqO;AAAAA,IACtD,iCAAiChV,MAAM+U,MAAMpO,QAAQE;AAAAA,IACrD,mCAAmC7G,MAAM+U,MAAMpO,QAAQsO;AAAAA,IACvD,iCAAiCjV,MAAM+U,MAAMG,SAAS1U;AAAAA,IACtD,kCAAkCR,MAAM+U,MAAMG,SAASF;AAAAA,IACvD,iCAAiChV,MAAM+U,MAAMG,SAASrO;AAAAA,IACtD,mCAAmC7G,MAAM+U,MAAMG,SAASD;AAAAA,IACxD,iCAAiCjV,MAAM+U,MAAMI,QAAQ3U;AAAAA,IACrD,kCAAkCR,MAAM+U,MAAMI,QAAQH;AAAAA,IACtD,iCAAiChV,MAAM+U,MAAMI,QAAQtO;AAAAA,IACrD,mCAAmC7G,MAAM+U,MAAMI,QAAQF;AAAAA,IACvD,iCAAiCjV,MAAM+U,MAAMK,SAAS5U;AAAAA,IACtD,kCAAkCR,MAAM+U,MAAMK,SAASJ;AAAAA,IACvD,iCAAiChV,MAAM+U,MAAMK,SAASvO;AAAAA,IACtD,mCAAmC7G,MAAM+U,MAAMK,SAASH;AAAAA,IACxD,kCAAkCjV,MAAM+U,MAAMM,SAAS7U;AAAAA,IACvD,mCAAmCR,MAAM+U,MAAMM,SAASL;AAAAA,IACxD,kCAAkChV,MAAM+U,MAAMM,SAASxO;AAAAA,IACvD,oCAAoC7G,MAAM+U,MAAMM,SAASJ;AAAAA,IACzD,iCAAiCjV,MAAM+U,MAAMO,QAAQ9U;AAAAA,IACrD,kCAAkCR,MAAM+U,MAAMO,QAAQN;AAAAA,IACtD,iCAAiChV,MAAM+U,MAAMO,QAAQzO;AAAAA,IACrD,mCAAmC7G,MAAM+U,MAAMO,QAAQL;AAAAA,IACvD,kCAAkCjV,MAAM+U,MAAMQ,SAAS/U;AAAAA,IACvD,mCAAmCR,MAAM+U,MAAMQ,SAASP;AAAAA,IACxD,kCAAkChV,MAAM+U,MAAMQ,SAAS1O;AAAAA,IACvD,oCAAoC7G,MAAM+U,MAAMQ,SAASN;AAAAA,IAEzD,wBAAwBjV,MAAM+J,KAAKvJ;AAAAA,IACnC,wBAAwBR,MAAM+J,KAAKlD;AAAAA,IAEnC,mBAAmB7G,MAAM6G;AAAAA,IAEzB,qBAAqB7G,MAAMiV;AAAAA,IAE3B,uBAAuBjV,MAAMwV,IAAIhV;AAAAA,IACjC,2BAA2BR,MAAMwV,IAAIjZ;AAAAA,IACrC,uBAAuByD,MAAMwV,IAAI3O;AAAAA,IAEjC,wBAAwB7G,MAAMyV,KAAK5O;AAAAA,IAEnC,yBAAyB7G,MAAM0K,MAAMlK;AAAAA,IACrC,yBAAyBR,MAAM0K,MAAM7D;AAAAA,IAErC,8BAA8B7G,MAAM0V,SAASC;AAAAA,IAC7C,4BAA4B3V,MAAM0V,SAASE;AAAAA;AAAAA,IAI3C,oBAAoB5V,MAAM0K,MAAMlK;AAAAA,IAChC,qBAAqBR,MAAMyV,KAAK5O;AAAAA,IAChC,8BAA8B7G,MAAMzD;AAAAA,IACpC,8BAA8ByD,MAAMzD;AAAAA,EAAAA;AAExC;AChGO,SAASsZ,iBACdlf,OACwB;AACxB,QAAM;AAAA,IAACmf;AAAAA,EAAAA,IAAUnf,OACX;AAAA,IAAC5B;AAAAA,EAAAA,IAASiC,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAO2P,iBAAAA;AAAAA,MACHtR,OAAOghB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBbD,WAAW,UACbzP,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAIC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcL;AAEA,SAAS2P,oBAAoBC,YAA4C;AACvE,SAAOA,WAAWxV,OAAOC,OAAO,EAAEC,KAAK,GAAG;AAC5C;AAKO,SAASuV,kBACdvf,OACa;AACb,QAAM;AAAA,IAACwf;AAAAA,EAAAA,IAASxf,OACV;AAAA,IAACof;AAAAA,IAAQ/V,OAAOoW;AAAAA,IAAWrhB;AAAAA,EAAAA,IAASiC,kBAAYL,MAAMD,KAAK,GAC3DkS,SAASjS,MAAMwf,UAAU,SACzB3C,OAAO4C,UAAUL,OAAOI,KAAK,KAAKC,UAAUL,OAAOpP,SACnD3G,QAAQwT,KAAK7c,MAAM8P,KAAK,KAAK+M,KAAK7M,SAClCpK,UAAS;AAAA,IACbM,OAAOkZ,OAAOxZ,OAAOM;AAAAA,IACrBmD,OAAO;AAAA,EAAA,GAGHqW,mBAAmB/f;AAEzB,SAAO,CACL6d,gBAAgBiC,WAAWpW,MAAM4G,OAAO,GACxC;AAAA,IACE,iBAAmB;AAAA,IACnB,OAAS;AAAA,IACT,WAAa7G,qBAAqBxD,OAAM;AAAA,IACxC,uCAAuC4X,gBAAgBiC,WAAWpW,MAAM+G,QAAQ;AAAA,IAChF,iCAAiC;AAAA,MAC/B,WAAaiP,iBACXjW,qBAAqBxD,OAAM,GAC3BqM,SAASyN,mBAAmB/f,MAC9B;AAAA,MACA,WAAW;AAAA,QACT6S,WAAWlJ,eAAe;AAAA,UACxBpI,MAAMue;AAAAA,UACN7Z,QAAQ;AAAA,YAACM,OAAO;AAAA,YAAGmD,OAAOoW,UAAU5V;AAAAA,UAAAA;AAAAA,UACpCL,WAAW4V,OAAO5V;AAAAA,QAAAA,CACnB;AAAA,MAAA;AAAA,MAEH,+BAA+B;AAAA,QAC7BgJ,WAAW6M,iBACTjW,qBAAqBxD,OAAM,GAC3BqM,SAASyN,mBAAmB/f,MAC9B;AAAA,MAAA;AAAA,MAEF,yBAAyB;AAAA,QACvB,WAAW6d,gBAAgBiC,WAAWpW,MAAMuH,OAAO;AAAA,QACnD,YAAY4M,gBAAgBiC,WAAWpW,MAAMsW,OAAO;AAAA,QACpD,mBAAmBnC,gBAAgBiC,WAAWpW,MAAMuH,OAAO;AAAA,MAAA;AAAA,MAE7D,oBAAoB4M,gBAAgBiC,WAAWpW,MAAMsW,OAAO;AAAA,IAAA;AAAA,EAC9D,GAEFvhB,OAAOghB,QAAQ7Z,IAAI,EACnBuE,OAAOC,OAAO;AAClB;AC3DA,MAAM6V,eAAe/M,iCAAAA,OAAOuM,OAAMrM,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAGhCpB,uBAAuBsN,kBAAkBK,iBAAiB,GAEtDM,aAAahN,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,qMAevB8M,kBAAkBtM,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAA2b,eAAAC,oBAAAljB,UAAAsT,UAAA1H,KAAAuX,SAAAC,mBAAAC,iBAAAC,kBAAAC,gBAAAC,cAAAC,cAAA3M,WAAA4M,UAAA9b,IAAAE,IAAAI,IAAAI,IAAA4O,IAAA2D,IAAAC,IAAAC,IAAAG,IAAAjJ,MAAA9L,WAAAwd,YAAAva;AAAA/B,WAAAnE,SAOjC;AAAA,IAAAlD;AAAAA,IAAAsT;AAAAA,IAAAzO,UAAA+C;AAAAA,IAAA4Z,MAAAyB;AAAAA,IAAAW,WAAAV;AAAAA,IAAAjX,SAAAnE;AAAAA,IAAAqb;AAAAA,IAAApD,MAAA7X;AAAAA,IAAAiW,SAAA7V;AAAAA,IAAA2V,UAAAuF;AAAAA,IAAAtF,UAAAuF;AAAAA,IAAAnR,YAAAiR;AAAAA,IAAA/Q,eAAA4Q;AAAAA,IAAA3Q,aAAA4Q;AAAAA,IAAA9Q,cAAA+Q;AAAAA,IAAAvO,QAAAmC;AAAAA,IAAAwM;AAAAA,IAAA9X;AAAAA,IAAAtI,OAAAuX;AAAAA,IAAA5I;AAAAA,IAAA9L;AAAAA,IAAAwd;AAAAA,IAAAhc,MAAAmT;AAAAA,IAAA7a,MAAA8a;AAAAA,IAAA9D,OAAAiE;AAAAA,IAAA9R;AAAAA,IAAA,GAAA0N;AAAAA,EAAAA,IA4BI5T,OAAKmE,OAAAnE,OAAAmE,OAAA4b,eAAA5b,OAAA6b,oBAAA7b,OAAArH,UAAAqH,OAAAiM,UAAAjM,OAAAuE,KAAAvE,OAAA8b,SAAA9b,OAAA+b,mBAAA/b,OAAAgc,iBAAAhc,OAAAic,kBAAAjc,QAAAkc,gBAAAlc,QAAAmc,cAAAnc,QAAAoc,cAAApc,QAAAyP,WAAAzP,QAAAqc,UAAArc,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAA4K,MAAA5K,QAAAlB,WAAAkB,QAAAsc,YAAAtc,QAAA+B,UAAA6Z,gBAAA5b,EAAA,CAAA,GAAA6b,qBAAA7b,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAA8b,UAAA9b,EAAA,CAAA,GAAA+b,oBAAA/b,EAAA,CAAA,GAAAgc,kBAAAhc,EAAA,CAAA,GAAAic,mBAAAjc,EAAA,CAAA,GAAAkc,iBAAAlc,EAAA,EAAA,GAAAmc,eAAAnc,EAAA,EAAA,GAAAoc,eAAApc,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAqc,WAAArc,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,GAAA0T,KAAA1T,EAAA,EAAA,GAAA6T,KAAA7T,EAAA,EAAA,GAAA4K,OAAA5K,EAAA,EAAA,GAAAlB,YAAAkB,EAAA,EAAA,GAAAsc,aAAAtc,EAAA,EAAA,GAAA+B,QAAA/B,EAAA,EAAA;AAzBP,QAAAxC,YAAA+C,OAAA/E,SAAA,IAAA+E,IAGSic,cAAA/b,OAAAjF,SAAA,WAAAiF,IAETiY,OAAA7X,OAAArF,SAAA,YAAAqF,IACS4b,cAAAxb,OAAAzF,SAAA,IAAAyF,IAODyb,aAAA7M,OAAArU,SAAA,IAAAqU,IAGD8M,mBAAAnJ,OAAAhY,SAAA,IAAAgY,IAIPlT,OAAAmT,OAAAjY,SAAA,YAAAiY,IACA7a,OAAA8a,OAAAlY,SAAA,WAAAkY,IACA9D,QAAAiE,OAAArY,SAAA,KAAAqY,IAIF;AAAA,IAAAoH;AAAAA,EAAAA,IAAiB1Z,YAAAA;AAAa,MAAAuS;AAAA9T,YAAAwc,eAEd1I,KAAAzY,cAAcmhB,WAAW,GAACxc,QAAAwc,aAAAxc,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAA1C,QAAA4E,UAAgBkP;AAA0B,MAAAC;AAAA/T,YAAAyc,eAC1B1I,MAAA1Y,cAAcohB,WAAW,GAACzc,QAAAyc,aAAAzc,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAA1C,QAAA8W,UAAgB/C;AAA0B,MAAAC;AAAAhU,YAAAmc,gBACzBnI,MAAA3Y,cAAc8gB,YAAY,GAACnc,QAAAmc,cAAAnc,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAA5C,QAAA4W,WAAiB5C;AAA2B,MAAAE;AAAAlU,YAAAoc,gBAC3BlI,MAAA7Y,cAAc+gB,YAAY,GAACpc,QAAAoc,cAAApc,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAA5C,QAAA6W,WAAiB3C;AAA2B,MAAAG;AAAArU,YAAAkc,kBACzB7H,MAAAhZ,cAAc6gB,cAAc,GAAClc,QAAAkc,gBAAAlc,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AAAhD,QAAAiL,aAAmBoJ;AAA6B,MAAA0C;AAAA/W,YAAA+b,qBAC1BhF,MAAA1b,cAAc0gB,iBAAiB,GAAC/b,QAAA+b,mBAAA/b,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAAtD,QAAAmL,gBAAsB4L;AAAgC,MAAAC;AAAAhX,YAAAgc,mBAClChF,MAAA3b,cAAc2gB,eAAe,GAAChc,QAAAgc,iBAAAhc,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAAlD,QAAAoL,cAAoB4L;AAA8B,MAAAC;AAAAjX,YAAAic,oBAC7BhF,MAAA5b,cAAc4gB,gBAAgB,GAACjc,QAAAic,kBAAAjc,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAApD,QAAAkL,eAAqB+L;AAA+B,MAAAC;AAAAlX,YAAA0c,cACrCxF,MAAA7b,cAAcqhB,UAAU,GAAC1c,QAAA0c,YAAA1c,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAAxC,QAAA0N,SAAewJ,KACeC,MAAA5S,QAAQ/I,SAARmhB,mBAAApY;AAA0C,MAAA6S;AAAApX,YAAAmX,OAAxDC,MAAA/b,cAAc8b,GAA0C,GAACnX,QAAAmX,KAAAnX,QAAAoX,OAAAA,MAAApX,EAAA,EAAA;AAAzE,QAAA4c,UAAgBxF;AAAyD,MAAAC;AAAArX,IAAA,EAAA,MAAA8W,WAAA9W,EAAA,EAAA,MAAAmL,iBAAAnL,EAAA,EAAA,MAAAoL,eAAApL,UAAAkL,gBAAAlL,EAAA,EAAA,MAAAiL,cAAAjL,EAAA,EAAA,MAAA4W,YAAA5W,EAAA,EAAA,MAAA6W,YAGhEQ,MAAA;AAAA,IAAAP;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAA5L;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,EAAAA,GASNlL,QAAA8W,SAAA9W,QAAAmL,eAAAnL,QAAAoL,aAAApL,QAAAkL,cAAAlL,QAAAiL,YAAAjL,QAAA4W,UAAA5W,QAAA6W,UAAA7W,QAAAqX,OAAAA,MAAArX,EAAA,EAAA;AAVH,QAAA6c,WACSxF,KAoBUC,MAAA1R,CAAAA,EAAQkW,WAAA7P,WACRsL,MAAA8E,WAAA,KAAA7gB,QACLgc,MAAA5R,CAAAA,EAAQkW,WAAA7P;AAAoB,MAAAwL;AAAAzX,YAAA8b,WAKrCrE,MAAA7R,CAAAA,CAAQkW,WACP/a,2BAAAA,IAAC,YAAA,EACC,UAAAA,2BAAAA,IAAC,SAAA,EAAO,GACV,GACDf,QAAA8b,SAAA9b,QAAAyX,OAAAA,MAAAzX,EAAA,EAAA;AAAA,MAAA0X;AAAA1X,IAAA,EAAA,MAAA4b,iBAAA5b,EAAA,EAAA,MAAA6b,sBAAA7b,UAAA6c,YAAA7c,EAAA,EAAA,MAAAib,UAAAjb,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAA4E,WAAA5E,EAAA,EAAA,MAAA4P,SAAA5P,UAAA4c,WAAA5c,EAAA,EAAA,MAAA4K,QAAA5K,EAAA,EAAA,MAAAlB,aAAAkB,UAAAsc,cAEA5E,OAACkE,iBAAAhR,QAAAiR,uBACA9a,2BAAAA,IAAC,KAAA,EAAO,IAAA,QAAM,GAAK8b,UACjB,UAAA5I,2BAAAA,KAAC,MAAA,EAAQ,IAAA,QAAgBrP,SAAcgY,KAAAA,SACpChB,UAAAA;AAAAA,IAAAA,iBACC3H,2BAAAA,KAAC,MAAA,EAAWzW,MAAAA,WACTgY,UAAAA;AAAAA,MAAAA,MAAAA,eAAeoG,aAA8B,KAA7CA;AAAAA,MACAlJ,QAAAA,mBAAmBkJ,aAAkC,KAAhB7a,2BAAAA,IAAC,eAAA,CAAA,CAAa;AAAA,IAAA,GACtD;AAAA,IAGD6J,QACC7J,2BAAAA,IAAC,KAAA,EACC,UAAAA,+BAAC,MAAA,EACQ6O,OACA9Q,OAAAA,WACDtB,MAAAA,WACO,cAAA,YACL,QAAA8e,cAAcrB,OAAMqB,YAE3B1R,gBACH,GACF;AAAA,IAGDiR,sBACC5H,2BAAAA,KAAC,MAAA,EAAWzW,MAAAA,WACTgY,UAAAA;AAAAA,MAAAA,MAAAA,eAAeqG,kBAAwC,KAAvDA;AAAAA,MACAnJ,QAAAA,mBAAmBmJ,kBAA4C,KAArB9a,2BAAAA,IAAC,oBAAA,CAAA;OAC9C;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF,GACDf,QAAA4b,eAAA5b,QAAA6b,oBAAA7b,QAAA6c,UAAA7c,QAAAib,QAAAjb,QAAAxC,WAAAwC,QAAA4E,SAAA5E,QAAA4P,OAAA5P,QAAA4c,SAAA5c,QAAA4K,MAAA5K,QAAAlB,WAAAkB,QAAAsc,YAAAtc,QAAA0X,OAAAA,MAAA1X,EAAA,EAAA;AAAA,MAAA2X;AAAA3X,IAAA,EAAA,MAAA6c,YAAA7c,UAAArH,YAEAgf,MAAAhf,YACCoI,2BAAAA,IAAC,KAAA,EAAO,IAAA,QAAM,GAAK8b,UAChBlkB,SAAAA,CACH,GACDqH,QAAA6c,UAAA7c,QAAArH,UAAAqH,QAAA2X,OAAAA,MAAA3X,EAAA,EAAA;AAAA,MAAA4X;AAAA,SAAA5X,UAAA0Y,QAAA1Y,EAAA,EAAA,MAAA0N,UAAA1N,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAsX,OAAAtX,EAAA,EAAA,MAAAuX,OAAAvX,UAAAwX,OAAAxX,EAAA,EAAA,MAAAyX,OAAAzX,EAAA,EAAA,MAAA0X,OAAA1X,EAAA,EAAA,MAAA2X,OAAA3X,EAAA,EAAA,MAAAM,QAAAN,UAAApH,QAAAoH,EAAA,EAAA,MAAA+B,SAzDH6V,sCAAC,cAAA,EACS,WAAA,UAAQ,GACZnI,WACGiJ,OAAAA,MACEhL,SAAAA,QACFpN,OAAAA,MACQ,iBAAAgX,KACA,iBAAAC,KACL,UAAAC,KACLlI,KACC1W,MACEmJ,QAAAA,OAEP0V,UAAAA;AAAAA,IAAAA;AAAAA,IAMAC;AAAAA,IAkCAC;AAAAA,EAAAA,EAAAA,CAKH,GAAe3X,QAAA0Y,MAAA1Y,QAAA0N,QAAA1N,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAsX,KAAAtX,QAAAuX,KAAAvX,QAAAwX,KAAAxX,QAAAyX,KAAAzX,QAAA0X,KAAA1X,QAAA2X,KAAA3X,QAAAM,MAAAN,QAAApH,MAAAoH,QAAA+B,OAAA/B,QAAA4X,OAAAA,MAAA5X,EAAA,EAAA,GA1Df4X;AA0De,CAElB;AACD+D,gBAAgB9b,cAAc;AAKvB,MAAMid,SAASnB;ACvMf,SAASoB,UACdlhB,OACgE;AAChE,SAAO,CAACmhB,cAAcnhB,KAAK,GAAGohB,eAAephB,KAAK,CAAC;AACrD;AAEO,SAASmhB,cAAcnhB,OAA4D;AACxF,QAAM;AAAA,IAACqhB;AAAAA,EAAAA,IAAcrhB,OACf;AAAA,IAACI;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAO2P,iBAAAA;AAAAA,MACH2R,cACF3R,iBAAAA;AAAAA,yBACqBtP,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,SAASghB,eAAephB,OAA4D;AACzF,QAAM;AAAA,IAACqhB;AAAAA,IAAYC;AAAAA,IAAYnO;AAAAA,EAAAA,IAAUnT,OACnC;AAAA,IAAC/D;AAAAA,IAAMoN;AAAAA,IAAOjL;AAAAA,EAAAA,IAASiC,kBAAYL,MAAMD,KAAK,GAC9C6F,UAAS;AAAA,IAACM,OAAOjK,KAAK2J,OAAOM;AAAAA,IAAOmD,OAAO;AAAA,EAAA;AAEjD,SAAOqG,iBAAAA;AAAAA,oBACWrG,MAAMkY,QAAQ,SAAS,OAAO;AAAA;AAAA,MAE5C/D,gBAAgBnU,OAAOA,OAAOgY,UAAU,CAAC;AAAA;AAAA,wBAEvBlO,SAAS,+BAA+B,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAW5EqK,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQI,UAAUiR,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQ2P,SAAS0B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQwQ,UAAUa,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQY,SAASyQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQ2P,SAAS0B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAM1CC,aAC5BhY,eAAe;AAAA,IAACpI,MAAMmI;AAAAA,IAAOzD,QAAAA;AAAAA,IAAQ4D,WAAWvN,KAAKuN;AAAAA,EAAAA,CAAU,IAC/D7J,MAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWb6d,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQI,UAAUiR,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQ2P,SAAS0B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQwQ,UAAUa,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQY,SAASyQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpE7D,gBAAgBnU,OAAOA,MAAMmY,WAAWxR,QAAQ2P,SAAS0B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAM1CC,aAC5BhY,eAAe;AAAA,IAACpI,MAAMmI;AAAAA,IAAOzD,QAAAA;AAAAA,IAAQ4D,WAAWvN,KAAKuN;AAAAA,EAAAA,CAAU,IAC/D7J,MAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjBvB,OAAOnC,MAAMsJ,IAAI;AAAA;AAEvB;AC9FA,MAAMkc,aAAa5O,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAK5BrN,uBAAuBiM,uBAAuBa,uBAAuByO,SAAS,GAE1EQ,gBAAgBlO,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAgS,QAAAxQ,SAAAG,eAAAC,aAAAF,cAAAD,YAAAkO,OAAA4L,SAAA/L,WAAArP,QAAAic,UAAAvO,QAAAvN,IAAAE,IAAAI,IAAAI;AAAAjB,WAAAnE,SAI/B;AAAA,IAAA2hB,sBAAAjd;AAAAA,IAAAkd,sBAAAhd;AAAAA,IAAA4R,IAAAJ;AAAAA,IAAAxQ,QAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAA+N;AAAAA,IAAA4L;AAAAA,IAAA9N,QAAA7M;AAAAA,IAAAT;AAAAA,IAAAic;AAAAA,IAAAvO;AAAAA,IAAAxN,MAAAW;AAAAA,IAAA,GAAAwO;AAAAA,EAAAA,IAiBI5T,OAAKmE,OAAAnE,OAAAmE,OAAAiS,QAAAjS,OAAAyB,SAAAzB,OAAA4B,eAAA5B,OAAA6B,aAAA7B,OAAA2B,cAAA3B,OAAA0B,YAAA1B,OAAA4P,OAAA5P,OAAAwb,SAAAxb,OAAAyP,WAAAzP,QAAAI,QAAAJ,QAAAqc,UAAArc,QAAA8N,QAAA9N,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,OAAAgR,SAAAjS,EAAA,CAAA,GAAAyB,UAAAzB,EAAA,CAAA,GAAA4B,gBAAA5B,EAAA,CAAA,GAAA6B,cAAA7B,EAAA,CAAA,GAAA2B,eAAA3B,EAAA,CAAA,GAAA0B,aAAA1B,EAAA,CAAA,GAAA4P,QAAA5P,EAAA,CAAA,GAAAwb,UAAAxb,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAAqc,WAAArc,EAAA,EAAA,GAAA8N,SAAA9N,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA;AAhBe,QAAAsZ,YAAA/Y,OAAA/E,SAAA,KAAA+E,IACA8E,YAAA5E,OAAAjF,SAAA,KAAAiF,IAStBiN,SAAA7M,OAAArF,SAAA,IAAAqF,IAIM6c,WAAAzc,OAAAzF,SAAA,YAAAyF,IAIRoR,KAAWK,QAAAA,mBAAmBT,MAAuB,IAA1CA,SAAA,OACX5R,YAAkBa,gBAClBZ,OAAaod,aAAa,YAAYrd,UAASC,OAAlCod,UAOE7N,YAAOwC,MAAO,WAAdA,KAAA7W,QACIgY,KAAAnT,UAASD;AAAO,MAAAqT;AAAAzT,YAAAyB,WAIpBgS,KAAApY,cAAcoG,OAAM,GAACzB,QAAAyB,SAAAzB,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,YAAA0B,cAClBgS,KAAArY,cAAcqG,UAAS,GAAC1B,QAAA0B,YAAA1B,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA2B,gBACtBkS,KAAAxY,cAAcsG,YAAW,GAAC3B,QAAA2B,cAAA3B,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,YAAA4B,iBACzBkS,KAAAzY,cAAcuG,aAAY,GAAC5B,QAAA4B,eAAA5B,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,YAAA6B,eAC7BkS,MAAA1Y,cAAcwG,WAAU,GAAC7B,QAAA6B,aAAA7B,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAgU;AAAAhU,YAAA0N,UAI7BsG,MAAA3Y,cAAcqS,MAAM,GAAC1N,QAAA0N,QAAA1N,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAA,MAAAkU;AAAAlU,YAAA8N,UACrBoG,MAAA7Y,cAAcyS,MAAM,GAAC9N,QAAA8N,QAAA9N,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAEd,QAAAqU,MAAAiF,YAAA,KAAA9d,QACFub,MAAAyE,UAAA,KAAAhgB,QACCwb,MAAAqF,WAAA,KAAA7gB;AAAyB,MAAAyb;AAAAjX,IAAA,EAAA,MAAAqS,MAAArS,UAAAsZ,aAAAtZ,EAAA,EAAA,MAAAqF,aAAArF,UAAA4P,SAAA5P,EAAA,EAAA,MAAAsP,OAAAtP,UAAAyP,aAAAzP,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,UAAAqc,YAAArc,EAAA,EAAA,MAAA+T,OAAA/T,EAAA,EAAA,MAAAgU,OAAAhU,EAAA,EAAA,MAAAkU,OAAAlU,UAAAqU,OAAArU,EAAA,EAAA,MAAA+W,OAAA/W,UAAAgX,OAAAhX,EAAA,EAAA,MAAA6P,MAAA7P,UAAAyT,MAAAzT,EAAA,EAAA,MAAA0T,MAAA1T,EAAA,EAAA,MAAA6T,MAAA7T,EAAA,EAAA,MAAA8T,MAAA9T,UAAAM,QAnB1C2W,MAAAlW,2BAAAA,IAAC,YAAA,EACU,WAAA8O,IACI,eAAA2D,IACL,WAAA,QACGlT,aAAAA,MAAI,GACXmP,WACK,SAAAgE,IACG,YAAAC,IACE,cAAAG,IACC,eAAAC,IACF,aAAAC,KACDuF,YAAAA,WACAjU,YAAAA,WACJuK,QAAAA,OACC,SAAAoE,KACA,SAAAE,KACF5T,OAAAA,MACS,kBAAA+T,KACF,gBAAA0C,KACC,iBAAAC,KACF3E,aAAAA,IACR/C,KACK+M,SAAAA,CAAQ,GAClBrc,QAAAqS,IAAArS,QAAAsZ,WAAAtZ,QAAAqF,WAAArF,QAAA4P,OAAA5P,QAAAsP,KAAAtP,QAAAyP,WAAAzP,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,QAAAqc,UAAArc,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAkU,KAAAlU,QAAAqU,KAAArU,QAAA+W,KAAA/W,QAAAgX,KAAAhX,QAAA6P,IAAA7P,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAA8T,IAAA9T,QAAAM,MAAAN,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAAA,MAAAkX;AAAA,SAAAlX,EAAA,EAAA,MAAAI,UAAAJ,UAAAiX,OAAAjX,EAAA,EAAA,MAAAM,QAxBJ4W,qCAAC,oBAAA,EAA2B9W,QAAcE,MACxC2W,UAAAA,IAAAA,CAwBF,GAAqBjX,QAAAI,QAAAJ,QAAAiX,KAAAjX,QAAAM,MAAAN,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA,GAzBrBkX;AAyBqB,CAExB;AACDqG,cAAc1d,cAAc;AAQrB,MAAM8d,OAAOJ;AC3Gb,SAAAK,qBAAAC,UAAAtd,IAAAud,iBAAA;AAAA,QAAA9d,IAAAC,qBAAAA,EAAA,CAAA,GAEL8d,cAAAxd,OAAA/E,SAAA4Y,UAAA7T;AAAgE,MAAAE;AAAAT,IAAA,CAAA,MAAA8d,mBAAA9d,SAAA+d,eAAA/d,EAAA,CAAA,MAAA6d,YAOjCpd,KAAAud,CAAAA,QAAA;AAC7B,QAAI,CAACH;AAAQ;AAIb,UAAAI,SAAeD,IAAGC;AAElB,QAAI,EAAEA,kBAAkB5kB;AAAK;AAI7B,UAAA6kB,0BAAgCJ,kBAAAA;AAEhC,QAAII,2BAAA,CAA4BA,wBAAuBrkB,SAAUokB,MAAM;AAAC;AAIxE,UAAAE,WAAiBJ,YAAAA,EAAaK,KAAAA;AAE9B,eAAKrkB,MAAYokB;AACf,UAAKpkB,OAEDkkB,WAAWlkB,MAAMA,GAAEF,SAAUokB,MAAM;AAAC;AAK1CJ,aAASG,GAAG;AAAA,EAAC,GACdhe,OAAA8d,iBAAA9d,OAAA+d,aAAA/d,OAAA6d,UAAA7d,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AA5BD,QAAAqe,UAAgBC,eAAAA,eAAe7d,EA4B9B,GAED8d,cAAoB3Y,CAAAA,CAAQiY;AAAS,MAAAhd;AAAAb,IAAA,CAAA,MAAAue,eAAAve,SAAAqe,WAE3Bxd,KAAAA,MAAA;AACR,QAAI,CAAC0d;AAAW;AAEhB,UAAAC,cAAoBC,CAAAA,UAAqBJ,QAAQL,KAAG;AAEpDte,WAAAA,SAAQgf,iBAAkB,aAAaF,WAAW,GAE3C,MAAA;AACL9e,eAAQif,oBAAqB,aAAaH,WAAW;AAAA,IAAC;AAAA,EACvD,GACFxe,OAAAue,aAAAve,OAAAqe,SAAAre,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAA,MAAAiB;AAAAjB,WAAAue,eAAEtd,KAAA,CAACsd,WAAW,GAACve,OAAAue,aAAAve,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA,GAVhBuT,MAAAA,UAAU1S,IAUPI,EAAa,GAEhB2d,MAAAA,cAAcf,WAAA,iBAAA,eAA2C;AAAC;AArDrD,SAAAzJ,UAAA;AAAA,SAEgDzc;AAAW;ACf3D,SAAAknB,kBAAAvP,KAAAwP,gBAAA;AAAA,QAAA9e,IAAAC,qBAAAA,EAAA,CAAA;AAAA,MAAAM,IAAAE;AAAAT,IAAA,CAAA,MAAA8e,kBAAA9e,SAAAsP,OAIK/O,KAAAA,MAAA;AACR+O,QAAGyP,SAA2BC,kBAACF,kBAAA,EAAoB;AAAA,EAAC,GACnDre,KAAA,CAACqe,gBAAgBxP,GAAG,GAACtP,OAAA8e,gBAAA9e,OAAAsP,KAAAtP,OAAAO,IAAAP,OAAAS,OAAAF,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAFxBuT,MAAAA,UAAUhT,IAEPE,EAAqB;AAAC;ACNpB,MAAMwe,kBACX,OAAOvf,WAAa,OAAe,OAAOxF,SAAW,OAAeA,OAAOglB,iBACvEhlB,OAAOglB,iBACPC,eAAAA,gBCqCOC,uBAAuBC,2BAAAA;AAEpC,SAASC,kCAAwD;AAC/D,SAAO;AAAA,IACLC,UAAUvmB,SAASwmB,YAAY;AAC7B,YAAMC,kBAAiB,IAAIR,gBAAgB,CAAC,CAACS,KAAK,MAAM;AACtDF,mBAAW;AAAA,UACTG,cAAcD,MAAME;AAAAA,UACpBne,QAAQ;AAAA,YACNM,OAAO2d,MAAMG,cAAc,CAAC,EAAEC;AAAAA,YAC9B5iB,QAAQwiB,MAAMG,cAAc,CAAC,EAAEE;AAAAA,UAAAA;AAAAA,UAEjC/iB,SAAS;AAAA,YACP+E,OAAO2d,MAAME,YAAY7d;AAAAA,YACzB7E,QAAQwiB,MAAME,YAAY1iB;AAAAA,UAAAA;AAAAA,QAC5B,CACD;AAAA,MACH,CAAC;AAEDuiB,aAAAA,gBAAeO,QAAQhnB,OAAO,GAEvB,MAAM;AACXymB,QAAAA,gBAAeQ,UAAUjnB,OAAO,GAChCymB,gBAAeS,WAAAA;AAAAA,MACjB;AAAA,IACF;AAAA,EAAA;AAEJ;AAEA,SAASb,6BAAmD;AAC1D,QAAMc,eAAe,oBAAIC,QAAAA,GACnBC,uCAAuBD,QAAAA;AAE7B,SAAO;AAAA,IACLb,UAAUvmB,SAASwmB,YAAY;AAC7B,YAAMc,cAAcD,iBAAiBE,IAAIvnB,OAAO,KAAK,CAAA;AAErD,UAAIwnB,UAAUL,aAAaI,IAAIvnB,OAAO;AAEtC,aAAKqnB,iBAAiBI,IAAIznB,OAAO,MAC/BqnB,iBAAiBK,IAAI1nB,SAASsnB,WAAW,GAKzCE,UAHiBlB,gCAAAA,EAGEC,UAAUvmB,SAAU2nB,CAAAA,gBAAgB;AACrD,mBAAWC,OAAON;AAChBM,cAAID,WAAW;AAAA,MAEnB,CAAC,IAGHL,YAAYO,KAAKrB,UAAU,GAEpB,MAAM;AAGX,cAAMsB,MAAMR,YAAYS,QAAQvB,UAAU;AAEtCsB,cAAM,MACRR,YAAYU,OAAOF,KAAK,CAAC,GAGvBR,YAAYtkB,WAAW,KAErBwkB,WAASA,QAAAA;AAAAA,MAEjB;AAAA,IACF;AAAA,EAAA;AAEJ;AC3GO,SAAAS,eAAAjoB,SAAA;AAAA,QAAAgH,IAAAC,qBAAAA,EAAA,CAAA,GACL,CAAAxC,OAAAyjB,OAAA,IAAwBlO,MAAAA,SAA6B,IAAI;AAAC,MAAAzS,IAAAE;AAAA,SAAAT,SAAAhH,WAEhDuH,KAAAA,MAAA;AACR,QAAKvH;AAAyB,aAEvBomB,qBAAoBG,UAAWvmB,SAASkoB,OAAO;AAAA,EAAC,GACtDzgB,KAAA,CAACzH,OAAO,GAACgH,OAAAhH,SAAAgH,OAAAO,IAAAP,OAAAS,OAAAF,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAJZuT,MAAAA,UAAUhT,IAIPE,EAAS,GAELhD;AAAI;ACPN,SAAA0jB,iBAAAC,WAAAC,SAAA;AAAA,QAAArhB,IAAAC,qBAAAA,EAAA,CAAA;AAAA,MAAAM;AAAAP,WAAAohB,aAIgC7gB,KAAA+gB,CAAAA,UAA0BF,UAAUE,KAAK,GAACthB,OAAAohB,WAAAphB,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAA/E,QAAAuhB,gBAAsBjD,eAAAA,eAAe/d,EAA0C;AAAC,MAAAE;AAAAT,IAAA,CAAA,MAAAuhB,iBAAAvhB,SAAAqhB,WAEtE5gB,KAAAA,MAAA;AACR,UAAA+gB,UAAgBC,CAAAA,YAA0BF,cAAcD,OAAK;AAE7DpnB,WAAAA,OAAMwkB,iBAAkB,WAAW8C,SAASH,OAAO,GAE5C,MAAMnnB,OAAMykB,oBAAqB,WAAW6C,SAASH,OAAO;AAAA,EAAC,GACrErhB,OAAAuhB,eAAAvhB,OAAAqhB,SAAArhB,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAAb,WAAAqhB,WAAExgB,KAAA,CAACwgB,OAAO,GAACrhB,OAAAqhB,SAAArhB,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GANZuT,MAAAA,UAAU9S,IAMPI,EAAS;AAAC;ACbR,SAAA6gB,cAAAC,kBAAAC,oBAAA;AAAA,QAAA5hB,IAAAC,qBAAAA,EAAA,CAAA;AAIL2e,QAAAA,cAAc+C,gBAAgB;AAAC,MAAAphB;AAAAP,WAAA2hB,oBAI3BphB,KAAAshB,CAAAA,kBAAA;AACE,UAAA9mB,QAAcb,OAAM4nB,WAAYH,gBAAgB;AAChD5mB,WAAAA,MAAK2jB,iBAAkB,UAAUmD,aAAa,GACvC,MAAM9mB,MAAK4jB,oBAAqB,UAAUkD,aAAa;AAAA,EAAC,GAChE7hB,OAAA2hB,kBAAA3hB,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAAA,MAAAS;AAAA,SAAAT,SAAA2hB,oBAGHlhB,KAAAA,MAAMvG,OAAM4nB,WAAYH,gBAAgB,EAACI,SAAQ/hB,OAAA2hB,kBAAA3hB,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAT5CgiB,MAAAA,qBACLzhB,IAQAE,IACAmhB,kBACF;AAAC;ACTH,SAASK,eAAelnB,OAAiByT,OAA2B;AAClE,SAAIA,UAAU,IACL,0BAA0BzT,MAAMyT,KAAK,IAAI,CAAC,QAG/CA,UAAUzT,MAAMiB,SACX,0BAA0BjB,MAAMyT,QAAQ,CAAC,CAAC,QAG5C,0BAA0BzT,MAAMyT,QAAQ,CAAC,CAAC,uBAAuBzT,MAAMyT,KAAK,IAAI,CAAC;AAC1F;AAEA,SAAS0T,kBAAkBnnB,OAA8B;AACvD,QAAMonB,WAAWpnB,MAAMiB;AACvB,MAAIU;AAKJ,QAAM0lB,WAAWA,MAAM;AACrB,QAAI,CAAC1lB,OAAO;AACVA,cAAQ,CAAA;AAER,eAAS8R,QAAQ2T,UAAU3T,QAAQ,IAAIA,SAAS,GAAG;AACjD,cAAM6T,aAAaJ,eAAelnB,OAAOyT,KAAK;AAE9C9R,cAAMmkB,KAAK;AAAA,UAACrS;AAAAA,UAAO8T,IAAIpoB,OAAO4nB,WAAWO,UAAU;AAAA,QAAA,CAAE;AAAA,MACvD;AAAA,IACF;AAEA,WAAO3lB;AAAAA,EACT;AA8BA,SAAO;AAAA,IAAC6lB,aA5BYA,MAAM;AACxB,iBAAW;AAAA,QAAC/T;AAAAA,QAAO8T;AAAAA,MAAAA,KAAOF,SAAAA;AACxB,YAAIE,GAAGP,QAAS,QAAOvT;AAGzB,aAAO;AAAA,IACT;AAAA,IAsBqB+Q,WApBFsC,CAAAA,kBAA8B;AAC/C,YAAMW,aAA6B,CAAA;AAEnC,iBAAW;AAAA,QAACF;AAAAA,MAAAA,KAAOF,YAAY;AAC7B,cAAMK,eAAeA,MAAM;AACrBH,aAAGP,WAASF,cAAAA;AAAAA,QAClB;AAEAS,WAAG5D,iBAAiB,UAAU+D,YAAY,GAE1CD,WAAW3B,KAAK,MAAMyB,GAAG3D,oBAAoB,UAAU8D,YAAY,CAAC;AAAA,MACtE;AAEA,aAAO,MAAM;AACX,mBAAWC,aAAaF;AACtBE,oBAAAA;AAAAA,MAEJ;AAAA,IACF;AAAA,EAAA;AAGF;AASA,SAASd,oBAAoB;AAC3B,SAAO;AACT;AAMO,SAAAe,gBAAA;AAAA,QAAA3iB,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAlF;AAAAA,EAAAA,IAAgBwG,YAAAA;AAAa,MAAAhB;AAAAP,WAAAjF,SACDwF,KAAA2hB,kBAAkBnnB,KAAK,GAACiF,OAAAjF,OAAAiF,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAApD,QAAA4iB,QAA4BriB;AAAkC,SAEvDyhB,MAAAA,qBAAqBY,MAAKrD,WAAYqD,MAAKL,aAAcX,iBAAiB;AAAC;ACvF7E,SAAAiB,eAAAtiB,IAAA;AAAuD,SACrDmhB,cAAc,gCADQnhB,OAAA/E,SAAA4Y,UAAA7T,EACyC;AAAC;AADlE,SAAA6T,UAAA;AAAA,SAAkD;AAAK;ACAvD,SAAA0O,wBAAAviB,IAAA;AAAgE,SAC9DmhB,cAAc,oCADiBnhB,OAAA/E,SAAA4Y,UAAA7T,EACoC;AAAC;AADtE,SAAA6T,UAAA;AAAA,SAA2D;AAAK;ACPhE,SAAS2O,qBAA6C;AAC3D,SAAOxX,iBAAAA;AAAAA;AAAAA;AAAAA;AAIT;AAEO,SAASyX,mBAAmBnnB,OAA2C;AAC5E,QAAM;AAAA,IAACqJ;AAAAA,IAAO0G;AAAAA,IAAO8B;AAAAA,EAAAA,IAAUxR,MAAAA,YAAYL,MAAMD,KAAK,GAChD;AAAA,IAACyJ;AAAAA,EAAAA,IAAauG,MAAMqX;AAE1B,SAAO1X,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gBAeO3Q,IAAIgR,MAAMqX,SAASxlB,IAAI,CAAC;AAAA,eACzB7C,IAAIgR,MAAMqX,SAASxlB,IAAI,CAAC;AAAA;AAAA,oBAEnBwH,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA,uBACenH,IAAI8S,OAAO,CAAC,CAAC,CAAC;AAAA;AAAA,0BAEXxI,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAiBpCR,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA,oBAC9B9G,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQC;AAAAA,IACnChK,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA,eACOmD,MAAM0G,MAAMC,QAAQC,QAAQpG,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,MAACtD,OAAO;AAAA,MAAGwD,QAAQ;AAAA,IAAA;AAAA,EAAC,CAAE,CAAC;AAAA;AAAA;AAAA;AAAA,0BAI5CL,MAAM0G,MAAMM,QAAQJ,QAAQrK,MAAM;AAAA,oBACxCwD,qBAAqB;AAAA,IACjClD,OAAO6J,MAAMnK,OAAOM;AAAAA,IACpBmD,OAAOA,MAAM0G,MAAMM,QAAQJ,QAAQ8D,MAAMlK;AAAAA,EAAAA,CAC1C,CAAC;AAAA,eACOR,MAAM0G,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA,0BAGpB7G,MAAM0G,MAAMM,QAAQJ,QAAQ8D,MAAMlK,EAAE;AAAA,eAC/CR,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA;AAAA;AAAA,oBAGzBP,eAAe;AAAA,IAC3B1D,QAAQ;AAAA,MAACM,OAAO6J,MAAMnK,OAAOM;AAAAA,MAAOmD,OAAOA,MAAM0G,MAAMM,QAAQC,SAASyD,MAAMlK;AAAAA,IAAAA;AAAAA,IAC9EL,WAAW;AAAA,MAACtD,OAAO;AAAA,MAAGwD,QAAQ;AAAA,IAAA;AAAA,EAAC,CAChC,CAAC;AAAA;AAAA;AAAA;AAAA,0BAIkBL,MAAM0G,MAAMC,QAAQI,SAASvG,EAAE;AAAA,oBACrCT,qBAAqB;AAAA,IACjClD,OAAO6J,MAAMnK,OAAOM;AAAAA,IACpBmD,OAAOA,MAAM0G,MAAMC,QAAQI,SAASxK;AAAAA,EAAAA,CACrC,CAAC;AAAA,eACOyD,MAAM0G,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA,0BAGpB7G,MAAM0G,MAAMC,QAAQI,SAAS2D,MAAMlK,EAAE;AAAA;AAAA;AAAA;AAAA,0BAIrCR,MAAM0G,MAAMC,QAAQM,SAASzG,EAAE;AAAA,oBACrCT,qBAAqB;AAAA,IACjClD,OAAO6J,MAAMnK,OAAOM;AAAAA,IACpBmD,OAAOA,MAAM0G,MAAMC,QAAQM,SAAS1K;AAAAA,EAAAA,CACrC,CAAC;AAAA,eACOyD,MAAM0G,MAAMC,QAAQM,SAASJ,EAAE;AAAA;AAAA;AAAA;AAAA,0BAIpB7G,MAAM0G,MAAMC,QAAQM,SAASyD,MAAMlK,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAU/D;AChHA,MAAMwd,iBAAiBxU,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACkU,kBAAkB,GAC9CI,UAAQzU,iCAAAA,OAAO9C,MAAKgD,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACmU,kBAAkB,GAOhCI,WAAW/T,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAqjB,SAAAC,WAAAzE,gBAAA7S,UAAAuX,eAAArX,UAAAsD,WAAAxV;AAAA+F,WAAAnE,SAIjC;AAAA,IAAAynB;AAAAA,IAAAC;AAAAA,IAAAtX;AAAAA,IAAAuX;AAAAA,IAAA1E;AAAAA,IAAA3S;AAAAA,IAAAlS;AAAAA,IAAA,GAAAwV;AAAAA,EAAAA,IASI5T,OAAKmE,OAAAnE,OAAAmE,OAAAsjB,SAAAtjB,OAAAujB,WAAAvjB,OAAA8e,gBAAA9e,OAAAiM,UAAAjM,OAAAwjB,eAAAxjB,OAAAmM,UAAAnM,OAAAyP,WAAAzP,OAAA/F,UAAAqpB,UAAAtjB,EAAA,CAAA,GAAAujB,YAAAvjB,EAAA,CAAA,GAAA8e,iBAAA9e,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAwjB,gBAAAxjB,EAAA,CAAA,GAAAmM,WAAAnM,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAA/F,QAAA+F,EAAA,CAAA;AACT,QAAAsP,MAAYmU,MAAAA,OAAgC,IAAI;AAAC,MAAAljB;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI/Cc,KAAAA,MAAM+O,IAAGyP,SAAQ/e,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFnB0jB,MAAAA,oBACEL,cACA9iB,EACF;AAAC,MAAAE,IAAAI;AAAAb,YAAAwjB,iBAES/iB,KAAAA,MAAA;AACJ6O,QAAGyP,YAELzP,IAAGyP,QAAQyE,gBAAiBA,iBAAA;AAAA,EAC7B,GACA3iB,KAAA,CAAC2iB,aAAa,GAACxjB,QAAAwjB,eAAAxjB,QAAAS,IAAAT,QAAAa,OAAAJ,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,IALlBuT,MAAAA,UAAU9S,IAKPI,EAAe,GAElBge,kBAAkBvP,KAAKwP,cAAc;AAKf,QAAA7d,MAACgL,YAADE,WAAA,KAAA3Q,QACJqU,KAAAiP,iBAAA,KAAAtjB,QAGFgY,KAAAvH,YAAAE;AAAoB,MAAAsH;AAAAzT,YAAAsjB,WAAAtjB,EAAA,EAAA,MAAAmM,YAAAnM,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAiB,MAAAjB,UAAA6P,MAAA7P,EAAA,EAAA,MAAAwT,MALhCC,oCAAC0P,SAAA,EACiB,kBAAAliB,IACJ,cAAA4O,OACRJ,WACK6T,SACC,UAAA9P,IACL,MAAA,YACKrH,UACLmD,IAAAA,CAAG,GACRtP,QAAAsjB,SAAAtjB,QAAAmM,UAAAnM,QAAAyP,WAAAzP,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACFiU,KAAAO,2BAAAA,KAAA,QAAA,EACE,UAAA;AAAA,IAAAlT,2BAAAA,IAAC4iB,MAAAA,eAAA;mCACAC,MAAAA,YAAA,CAAA,CAAU;AAAA,EAAA,EAAA,CACb,GAAO5jB,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA,SAAA7T,EAAA,EAAA,MAAAujB,aAAAvjB,UAAA/F,SAAA+F,EAAA,EAAA,MAAAyT,MAdTI,KAAAI,2BAAAA,KAAC,kBAA0BsP,WAAmB,WAAA,YAAkBtpB,OAC9DwZ,UAAAA;AAAAA,IAAAA;AAAAA,IAUAC;AAAAA,EAAAA,GAIF,GAAiB1T,QAAAujB,WAAAvjB,QAAA/F,OAAA+F,QAAAyT,IAAAzT,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA,GAfjB6T;AAeiB,CAEpB;AACDuP,SAASvjB,cAAc;ACrEvB,SAASgkB,4BAA4B;AAAA,EAAA,OAACjoB;AAAuB,GAAG;AAC9D,QAAM;AAAA,IACJsJ,OAAO;AAAA,MAAC4e,QAAQ5e;AAAAA,IAAAA;AAAAA,EAAK,IACnBhJ,MAAAA,YAAYN,OAAK;AAErB,SAAO;AAAA,IACL,YAAY;AAAA,MAACsJ,OAAOA,MAAM6e;AAAAA,IAAAA;AAAAA,IAC1B,eAAe;AAAA,MAAC7e,OAAOA,MAAM8e;AAAAA,IAAAA;AAAAA,IAC7B,gBAAgB;AAAA,MAAC9e,OAAOA,MAAM+e;AAAAA,IAAAA;AAAAA,IAC9B,eAAe;AAAA,MAAC/e,OAAOA,MAAMgf;AAAAA,IAAAA;AAAAA,IAC7B,aAAa;AAAA,MAAChf,OAAOA,MAAMif;AAAAA,IAAAA;AAAAA,IAC3B,aAAa;AAAA,MAACjf,OAAOA,MAAMkf;AAAAA,IAAAA;AAAAA,IAC3B,WAAW;AAAA,MAAClf,OAAOA,MAAMmf;AAAAA,IAAAA;AAAAA,IACzB,UAAU;AAAA,MAACnf,OAAOA,MAAMof;AAAAA,IAAAA;AAAAA,IACxB,WAAW;AAAA,MAACpf,OAAOA,MAAMqf;AAAAA,IAAAA;AAAAA,IACzB,gBAAgB;AAAA,MAACrf,OAAOA,MAAMqe;AAAAA,IAAAA;AAAAA,IAC9B,aAAa;AAAA,MAACre,OAAOA,MAAMsf;AAAAA,IAAAA;AAAAA,IAC3B,cAAc;AAAA,MAACtf,OAAOA,MAAMuf;AAAAA,IAAAA;AAAAA,IAC5B,aAAa;AAAA,MAACvf,OAAOA,MAAMwf;AAAAA,IAAAA;AAAAA,IAC3B,aAAa;AAAA,MAACxf,OAAOA,MAAMyf;AAAAA,IAAAA;AAAAA,IAC3B,YAAY;AAAA,MAACzf,OAAOA,MAAM0f;AAAAA,IAAAA;AAAAA,IAC1B,cAAc;AAAA,MAAC1f,OAAOA,MAAM2f;AAAAA,IAAAA;AAAAA,IAC5B,aAAa;AAAA,MAAC3f,OAAOA,MAAM4f;AAAAA,IAAAA;AAAAA,IAC3B,QAAQ;AAAA,MAAC5f,OAAOA,MAAM6f;AAAAA,IAAAA;AAAAA,IACtB,eAAe;AAAA,MAAC7f,OAAOA,MAAM8f;AAAAA,IAAAA;AAAAA,IAC7B,cAAc;AAAA,MAAC9f,OAAOA,MAAM+f;AAAAA,IAAAA;AAAAA,IAC5B,aAAa;AAAA,MAAC/f,OAAOA,MAAMggB;AAAAA,IAAAA;AAAAA,IAC3B,YAAY;AAAA,MAAChgB,OAAOA,MAAMigB;AAAAA,IAAAA;AAAAA,IAC1B,cAAc;AAAA,MAACjgB,OAAOA,MAAMkgB;AAAAA,IAAAA;AAAAA,IAC5B,YAAY;AAAA,MAAClgB,OAAOA,MAAMmgB;AAAAA,IAAAA;AAAAA,IAC1B,cAAc;AAAA,MAACngB,OAAOA,MAAMogB;AAAAA,IAAAA;AAAAA,IAC5B,kBAAkB;AAAA,MAACpgB,OAAOA,MAAMqgB;AAAAA,IAAAA;AAAAA,IAChC,oBAAoB;AAAA,MAACrgB,OAAOA,MAAMsgB;AAAAA,IAAAA;AAAAA,IAClC,iBAAiB;AAAA,MAACtgB,OAAOA,MAAMugB;AAAAA,IAAAA;AAAAA,IAC/B,WAAW;AAAA,MAACvgB,OAAOA,MAAMwgB;AAAAA,IAAAA;AAAAA,IACzB,cAAc;AAAA,MAACxgB,OAAOA,MAAMygB;AAAAA,IAAAA;AAAAA,IAC5B,YAAY;AAAA,MAACzgB,OAAOA,MAAM0gB;AAAAA,IAAAA;AAAAA,IAC1B,YAAY;AAAA,MAAC1gB,OAAOA,MAAM3F;AAAAA,IAAAA;AAAAA,IAC1B,SAAS;AAAA,MAAC2F,OAAOA,MAAM2gB;AAAAA,IAAAA;AAAAA,IACvB,UAAU;AAAA,MAAC3gB,OAAOA,MAAM4gB;AAAAA,IAAAA;AAAAA,IACxB,SAAS;AAAA,MAAC5gB,OAAOA,MAAM6gB;AAAAA,IAAAA;AAAAA,IACvB,cAAc;AAAA,MAAC7gB,OAAOA,MAAM8gB;AAAAA,IAAAA;AAAAA,EAAQ;AAExC;AAEO,SAASC,gBAAwC;AACtD,SAAO1a,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAOCsY,2BAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBrC;ACpEA,MAAMqC,gBAAgBC,MAAAA,KAAK,MAAM;iBAAO,gBAAa;AAAA,CAAA,CAAC,GAiBhDC,aAAa1X,iCAAAA,OAAO2X,IAAGzX,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAA2BoX,eAAexnB,uBAAuB,GAExF6nB,gBAAgBjX,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAtH,UAAA4tB,UAAA9W,WAAAlP,IAAAoP;AAAA3P,WAAAnE,SAI/B;AAAA,IAAAlD;AAAAA,IAAA4tB;AAAAA,IAAA9oB,MAAA8C;AAAAA,IAAAoP;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAA6D5T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAumB,UAAAvmB,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAA2P,WAAAhX,WAAAqH,EAAA,CAAA,GAAAumB,WAAAvmB,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAA2P,SAAA3P,EAAA,CAAA;AAAvC,QAAAvC,QAAA8C,OAAA/E,SAAA,IAAA+E;AAAQ,MAAAE;AAAAT,WAAAvC,SAMxBgD,KAAApF,cAAcoC,KAAI,GAACuC,OAAAvC,OAAAuC,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAAb,WAAArH,YAINkI,KAAAE,2BAAAA,IAAA,UAAOpI,UAAS,GAAOqH,OAAArH,UAAAqH,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAA,MAAAiB;AAAAjB,IAAA,EAAA,MAAArH,YAAAqH,UAAAumB,YACzCtlB,KAAAF,2BAAAA,IAAC,eAAA,EAAwBwlB,UAAiB5tB,OAAAA,SAAAA,CAAQ,GAAIqH,QAAArH,UAAAqH,QAAAumB,UAAAvmB,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAA,MAAA6P;AAAA7P,IAAA,EAAA,MAAAa,MAAAb,UAAAiB,MADxD4O,KAAA9O,2BAAAA,IAACylB,MAAAA,UAAA,EAAmB,UAAA3lB,IAClBI,UAAAA,IACF,GAAWjB,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAwT;AAAA,SAAAxT,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAS,MAAAT,EAAA,EAAA,MAAA6P,MAAA7P,UAAA2P,UATb6D,KAAAzS,2BAAAA,IAAC,YAAA,EACS,WAAA,QAAM,GACV0O,WACG,OAAAhP,IACEkP,SAAAA,QACJL,KAELO,UAAAA,GAAAA,CAGF,GAAa7P,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAS,IAAAT,QAAA6P,IAAA7P,QAAA2P,QAAA3P,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GAVbwT;AAUa,CAEhB;AACD8S,cAAczmB,cAAc;AAKrB,MAAM4mB,OAAOH,eC/CdjkB,eAAwB;AAAA,EAC5BN,OAAO;AAAA,EACPvD,QAAQ;AACV;AAEO,SAASkoB,qBAAgC;AAC9C,SAAOrkB;AACT;AAEO,SAASskB,8BACd9qB,OACa;AACb,QAAM;AAAA,IAAC+qB;AAAAA,IAAW7rB;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAElD,SAAOd,YAAYC,OAAOc,MAAMmf,QAAS1f,CAAAA,SAAS;AAAA,IAChDurB,UAAUvrB,QAAQ,SAAS,SAASV,IAAIgsB,UAAUtrB,GAAG,CAAC;AAAA,EAAA,EACtD;AACJ;ACFA,MAAMwrB,kBAAkBpY,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EACjC6X,oBACAC,6BAA6B,GAGzBI,qBAAqB1X,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAoS,IAAA5C,WAAAlP;AAAAP,WAAAnE,SAOpC;AAAA,IAAAwW;AAAAA,IAAAtQ,OAAAxB;AAAAA,IAAA,GAAAkP;AAAAA,EAAAA,IAAsC5T,OAAKmE,OAAAnE,OAAAmE,OAAAqS,IAAArS,OAAAyP,WAAAzP,OAAAO,OAAA8R,KAAArS,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AAAhC,QAAA+B,QAAAxB,OAAA/E,SAAA,IAAA+E;AAAS,MAAAE;AAAAT,WAAA+B,SAMRtB,KAAApF,cAAc0G,KAAK,GAAC/B,OAAA+B,OAAA/B,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAqS,MAAArS,EAAA,CAAA,MAAAsP,OAAAtP,EAAA,CAAA,MAAAyP,aAAAzP,SAAAS,MAH9BI,KAAAE,2BAAAA,IAAC,iBAAA,EACS,WAAA,aAAW,GACf0O,WACI,QAAAhP,IACK4R,aAAAA,IACR/C,IAAAA,CAAG,GACRtP,OAAAqS,IAAArS,OAAAsP,KAAAtP,OAAAyP,WAAAzP,OAAAS,IAAAT,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GANFa;AAME,CAEL;AACDkmB,mBAAmBlnB,cAAc;AAO1B,MAAMmnB,YAAYD,oBChCnBE,aAAavY,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAA2B5G,mBAAmB,GAEtEif,gBAAgB7X,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAoS,IAAApJ,UAAAN,UAAAG,UAAAnQ,UAAAyQ,SAAA7E,KAAAoF,MAAAG,MAAAT,qBAAAG,kBAAAiG,WAAAlG;AAAAvJ,WAAAnE,SAO/B;AAAA,IAAAwW;AAAAA,IAAAvJ;AAAAA,IAAAG;AAAAA,IAAAN;AAAAA,IAAAS;AAAAA,IAAAC;AAAAA,IAAA9E;AAAAA,IAAAoF;AAAAA,IAAAG;AAAAA,IAAAP;AAAAA,IAAAC;AAAAA,IAAA7Q;AAAAA,IAAA,GAAA8W;AAAAA,EAAAA,IAcI5T,OAAKmE,OAAAnE,OAAAmE,OAAAqS,IAAArS,OAAAiJ,UAAAjJ,OAAA2I,UAAA3I,OAAA8I,UAAA9I,OAAArH,UAAAqH,OAAAoJ,SAAApJ,OAAAuE,KAAAvE,OAAA2J,MAAA3J,OAAA8J,MAAA9J,QAAAqJ,qBAAArJ,QAAAwJ,kBAAAxJ,QAAAyP,WAAAzP,QAAAuJ,SAAA8I,KAAArS,EAAA,CAAA,GAAAiJ,WAAAjJ,EAAA,CAAA,GAAA2I,WAAA3I,EAAA,CAAA,GAAA8I,WAAA9I,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAoJ,UAAApJ,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAA2J,OAAA3J,EAAA,CAAA,GAAA8J,OAAA9J,EAAA,CAAA,GAAAqJ,sBAAArJ,EAAA,EAAA,GAAAwJ,mBAAAxJ,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAuJ,OAAAvJ,EAAA,EAAA;AAII,QAAAO,YAAO8R,MAAO,WAAdA,KAAA7W;AAAuC,MAAAiF;AAAAT,YAAA8I,YAGrCrI,KAAApF,cAAcyN,QAAQ,GAAC9I,QAAA8I,UAAA9I,QAAAS,MAAAA,KAAAT,EAAA,EAAA;AAAA,MAAAa;AAAAb,YAAAiJ,YACvBpI,KAAAxF,cAAc4N,QAAQ,GAACjJ,QAAAiJ,UAAAjJ,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAiB;AAAAjB,YAAA2I,YACvB1H,KAAA5F,cAAcsN,QAAQ,GAAC3I,QAAA2I,UAAA3I,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AACV,QAAA6P,KAAAxG,wBAAwB7N,SAAxB4N,UAAAC;AAAiE,MAAAmK;AAAAxT,YAAA6P,MAA/E2D,KAAAnY,cAAcwU,EAAiE,GAAC7P,QAAA6P,IAAA7P,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAAzT,YAAAuE,OACpFkP,KAAApY,cAAckJ,GAAG,GAACvE,QAAAuE,KAAAvE,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,YAAA2J,QACjB+J,KAAArY,cAAcsO,IAAI,GAAC3J,QAAA2J,MAAA3J,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA8J,QACnB+J,KAAAxY,cAAcyO,IAAI,GAAC9J,QAAA8J,MAAA9J,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AACL,QAAA8T,KAAAtK,qBAAqBhO,SAArB+N,OAAAC;AAAwD,MAAAuK;AAAA/T,YAAA8T,MAAtEC,MAAA1Y,cAAcyY,EAAwD,GAAC9T,QAAA8T,IAAA9T,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAgU;AAAA,SAAAhU,UAAAqS,MAAArS,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAO,MAAAP,EAAA,EAAA,MAAAS,MAAAT,UAAA+T,OAAA/T,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAAyT,MAAAzT,UAAA0T,MAAA1T,EAAA,EAAA,MAAA6T,MAXhFG,qCAAC,YAAA,EACU,WAAAzT,IACD,WAAA,QAAM,GACVkP,WACO,WAAAhP,IACA,WAAAI,IACA,WAAAI,IACD,UAAAuS,IACJ,MAAAC,IACC,OAAAC,IACA,OAAAG,IACA,OAAAE,KACM1B,iBACR/C,eAGP,GAAatP,QAAAqS,IAAArS,QAAArH,UAAAqH,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAO,IAAAP,QAAAS,IAAAT,QAAA+T,KAAA/T,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA,GAhBbgU;AAgBa,CAEhB;AACDkT,cAAcrnB,cAAc;AAOrB,MAAMsnB,OAAOD;ACjEb,SAASE,iBAAiBvrB,OAA+D;AAC9F,QAAM;AAAA,IAACkT;AAAAA,IAASC;AAAAA,EAAAA,IAAUnT,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAAA,YAAYL,MAAMD,KAAK;AAEtC,SAAO2P,iBAAAA;AAAAA,MACHwD,WACFxD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECyD,UACFzD,iBAAAA;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgB/O,KAAKyS,KAAKxS,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,KAAK6qB,QAAQ1qB,QAAQub,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa9C;ACzBA,MAAMoP,gBAAgB5Y,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAE9BuY,kBAAkBxoB,0BAA0BF,qBAAqB,GAE7D6oB,mBAAmBlY,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAmE,OAAAoL,cAAAC,WAAAlP,IAAAE,IAAAI,IAAA6O,cAAAC;AAAA3P,WAAAnE,SAIlC;AAAA,IAAA0T,QAAAhP;AAAAA,IAAA6D;AAAAA,IAAAzL,UAAA6W;AAAAA,IAAAI,OAAAnP;AAAAA,IAAAhD,MAAAoD;AAAAA,IAAA6O;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IASI5T,OAAKmE,OAAAnE,OAAAmE,OAAAoE,OAAApE,OAAAwP,cAAAxP,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAA0P,cAAA1P,OAAA2P,WAAAvL,QAAApE,EAAA,CAAA,GAAAwP,eAAAxP,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAA0P,eAAA1P,EAAA,CAAA,GAAA2P,SAAA3P,EAAA,CAAA;AARP,QAAAuP,SAAAhP,OAAA/E,SAAA,KAAA+E,IAGAqP,QAAAnP,OAAAjF,SAAA,KAAAiF,IACAhD,QAAAoD,OAAArF,SAAA,IAAAqF;AAMF,MAAAlI,WAAe6W;AAEf,MAAIE,iBAAiB,YAAU;AAAA,QAAAzO;AAAAjB,aAAArH,YAClBsI,qCAAC,sBAAA,YAA+B,GAAuBjB,OAAArH,UAAAqH,QAAAiB,OAAAA,MAAAjB,EAAA,EAAA,GAAlErH,WAAWA;AAAAA,EAAH;AACT,MAAAsI;AAAAjB,YAAAoE,SAOWnD,KAAA5F,cAAc+I,KAAK,GAACpE,QAAAoE,OAAApE,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAA,MAAA6P;AAAA7P,YAAAvC,SAErBoS,KAAAxU,cAAcoC,KAAI,GAACuC,QAAAvC,OAAAuC,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAArH,YAI1B6a,KAAAzS,2BAAAA,IAAA,UAAOpI,UAAS,GAAOqH,QAAArH,UAAAqH,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAA,SAAAzT,EAAA,EAAA,MAAAuP,UAAAvP,EAAA,EAAA,MAAA4P,SAAA5P,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAA6P,MAAA7P,EAAA,EAAA,MAAAwT,MAAAxT,UAAA2P,UAVzB8D,oCAAC,eAAA,EACS,WAAA,WAAS,GACbhE,WACKF,SAAAA,QACD,QAAAtO,IACA2O,QAAAA,OACD,OAAAC,IACEF,SAAAA,QACJL,KAELkE,UAAAA,IACF,GAAgBxT,QAAAuP,QAAAvP,QAAA4P,OAAA5P,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAA2P,QAAA3P,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GAXhByT;AAWgB,CAEnB;AACD8T,iBAAiB1nB,cAAc;AAOxB,MAAM2nB,UAAUD;AChFhB,SAASE,kBAA6B;AAC3C,SAAO;AAAA,IACL,YAAc;AAAA,IAEd,oBAAoB;AAAA,MAClBxqB,SAAS;AAAA,IAAA;AAAA,IAGX,WAAW;AAAA,MACTA,SAAS;AAAA,MACTsb,eAAe;AAAA,IAAA;AAAA,EACjB;AAEJ;AAEO,SAASmP,iBAAiB7rB,OAAkE;AACjG,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMwO,QAASlO,CAAAA,eAAe;AACtD,UAAMqO,SAAS5P,IAAIuB,eAAe,MAAMF,MAAM,CAAC,IAAI,IAAIA,MAAME,UAAU,CAAC;AAExE,WAAO;AAAA,MACL,QAAU,IAAIqO,MAAM,SAASA,MAAM;AAAA,MACnC,WAAW;AAAA,QAACsM,SAAS,GAAGtM,MAAM,QAAQA,MAAM;AAAA,MAAA;AAAA,IAAE;AAAA,EAElD,CAAC;AACH;ACJA,MAAMmd,eAAejZ,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAkC4Y,iBAAiBC,gBAAgB,GAE7FE,kBAAkBvY,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAoS,IAAA7C,cAAAmN,kBAAApY,KAAAkL;AAAAzP,WAAAnE,SAIjC;AAAA,IAAAwW;AAAAA,IAAA1Z,UAAA6W;AAAAA,IAAAjL;AAAAA,IAAAtI,OAAA0gB;AAAAA,IAAA,GAAAlN;AAAAA,EAAAA,IAAiF5T,OAAKmE,OAAAnE,OAAAmE,OAAAqS,IAAArS,OAAAwP,cAAAxP,OAAA2c,kBAAA3c,OAAAuE,KAAAvE,OAAAyP,cAAA4C,KAAArS,EAAA,CAAA,GAAAwP,eAAAxP,EAAA,CAAA,GAAA2c,mBAAA3c,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA;AACtF,QAAA4c,UAAgBrY,QAAQ/I,SAARmhB,mBAAApY;AAA0C,MAAAhE;AAAAP,WAAAwP,gBAGlDjP,KAAA+U,MAAAA,SAAQpa,IAAKsU,cAAc4E,OAAsC,GAACpU,OAAAwP,cAAAxP,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAD1E,QAAArH,WACQ4H;AAEP,MAAAE;AAAAT,WAAA4c,WAMWnc,KAAApF,cAAcuhB,OAAO,GAAC5c,OAAA4c,SAAA5c,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAEzB,QAAAa,KAAAyO;AAAU,MAAArO;AAAA,SAAAjB,EAAA,EAAA,MAAAqS,MAAArS,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAS,MAAAT,UAAAa,MALjBI,KAAAF,2BAAAA,IAAC,cAAA,EACS,WAAA,UAAQ,GACZ0O,WACI,QAAAhP,IACK4R,aAAAA,IACR,KAAAxR,IAEJlI,SAAAA,CACH,GAAeqH,QAAAqS,IAAArS,QAAArH,UAAAqH,QAAAyP,WAAAzP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GARfiB;AAQe,CAElB;AACD2mB,gBAAgB/nB,cAAc;AAOvB,MAAMgoB,SAASD;AA/Ba,SAAAxT,QAAAyB,OAAA;AAAA,SAQaA,SAAS9U,2BAAAA,IAAA,OAAA,EAAM8U,UAAAA,MAAAA,CAAM;AAAM;ACd3E,SAASiS,WAAW;AAClB,SAAOvc,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAeT;AAEA,MAAMwc,YAAYrZ,iCAAAA,OAAOgM,IAAG9L,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAA6BpB,uBAAuBqa,QAAQ,GAElFE,eAAe3Y,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAtH,UAAA8W,WAAAlP,IAAAE,IAAAI;AAAAb,WAAAnE,SAI9B;AAAA,IAAAlD;AAAAA,IAAA6E,UAAA+C;AAAAA,IAAAuW,SAAArW;AAAAA,IAAAiN,QAAA7M;AAAAA,IAAA,GAAA4O;AAAAA,EAAAA,IAAwE5T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,OAAAlI,WAAAqH,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA;AAA5D,QAAAxC,YAAA+C,OAAA/E,SAAA,IAAA+E,IAAcuW,UAAArW,OAAAjF,SAAA,IAAAiF,IAAaiN,SAAA7M,OAAArF,SAAA,IAAAqF;AAAU,MAAAI;AAAAjB,WAAA0N,UAGHzM,KAAA5F,cAAcqS,MAAM,GAAC1N,OAAA0N,QAAA1N,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAA,MAAA6P;AAAA7P,IAAA,CAAA,MAAArH,YAAAqH,SAAAxC,aAElEqS,KAAA9O,2BAAAA,IAAC,MAAA,EAAQ,IAAA,QAAavD,MAAAA,WAAiB,QAAA,sBAEvC,GAAOwC,OAAArH,UAAAqH,OAAAxC,WAAAwC,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,IAAA,EAAA,MAAA8W,WAAA9W,UAAA6P,MAHT2D,oCAAC,KAAA,EAAO,IAAA,QAAgBsD,SACtBjH,UAAAA,GAAAA,CAGF,GAAM7P,QAAA8W,SAAA9W,QAAA6P,IAAA7P,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAA,SAAAzT,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAiB,MAAAjB,UAAAwT,MALRC,KAAA1S,2BAAAA,IAAC,aAAkB,WAAA,OAAK,GAAK0O,WAAoB,SAAAxO,IAA4BqO,KAC3EkE,UAAAA,GAAAA,CAKF,GAAYxT,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAiB,IAAAjB,QAAAwT,IAAAxT,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GANZyT;AAMY,CAEf;AACDuU,aAAanoB,cAAc;AAOpB,MAAMooB,MAAMD,cCvDNE,SAAqB;AAAA,EAChCC,MAAM;AAAA,EACNC,GAAG;AAAA,IAACC;AAAAA,IAAgBC;AAAAA,IAAWC;AAAAA,EAAAA,GAAQ;AACrC,UAAM,CAACC,IAAI,IAAIF,UAAUG,MAAM,GAAG,GAE5BC,gBAAgBH,MAAMI,SAAS5mB,OAC/B6mB,iBAAiBL,MAAMI,SAASzrB,QAEhC2rB,SAASR,eAAeS,OAAOC,KAAK,GACpCC,SAASX,eAAeS,OAAOG,KAAK;AAE1C,QAAIP,iBAAiB,KAAKE,kBAAkB;AAC1C,aAAO,CAAA;AAGT,UAAMM,sBAAsB,CAAC,UAAU,KAAK,EAAE7uB,SAASmuB,IAAI,GAErD;AAAA,MAACW;AAAAA,MAASC;AAAAA,IAAAA,IAA+CF,sBAC3D;AAAA,MACEC,SAASE,MAAM,MAAMR,SAASH,eAAe,GAAG,CAAC;AAAA,MACjDU,SAASZ,SAAS,WAAW,IAAI;AAAA,IAAA,IAEnC;AAAA,MACEW,SAASX,SAAS,SAAS,IAAI;AAAA,MAC/BY,SAASC,MAAM,MAAML,SAASJ,gBAAgB,GAAG,CAAC;AAAA,IAAA;AAGxD,WAAO;AAAA,MACLU,MAAM;AAAA,QAACH;AAAAA,QAASC;AAAAA,MAAAA;AAAAA,IAAO;AAAA,EAE3B;AACF;AAEA,SAASC,MAAME,KAAa1hB,KAAaC,KAAa;AACpD,SAAO3J,KAAK0J,IAAI1J,KAAK2J,IAAIyhB,KAAK1hB,GAAG,GAAGC,GAAG;AACzC;ACxBA,SAAS0hB,kBAAkBC,aAAoBC,aAAoBC,QAAgB;AACjF,QAAM5nB,QAAQ2nB,YAAYX,IAAIU,YAAYV,GACpC7rB,SAASwsB,YAAYT,IAAIQ,YAAYR,GAErChU,WAAW9W,KAAKyrB,KAAK7nB,QAAQA,QAAQ7E,SAASA,MAAM;AAE1D,SAAO2sB,sBAAsBJ,aAAaC,aAAavrB,KAAK0J,IAAI,GAAG8hB,SAAS1U,QAAQ,CAAC;AACvF;AAEA,SAAS4U,sBAAsBJ,aAAoBC,aAAoBI,UAAyB;AAC9F,SAAO;AAAA,IACLf,GAAGU,YAAYV,KAAKW,YAAYX,IAAIU,YAAYV,KAAKe;AAAAA,IACrDb,GAAGQ,YAAYR,KAAKS,YAAYT,IAAIQ,YAAYR,KAAKa;AAAAA,EAAAA;AAEzD;AAEO,SAASC,mBAAmBC,QAAwB;AACzD,QAAM1f,MAAM0f,OAAOhuB,QAEbiuB,OAAc,CAAA;AAEpB,WAASvf,IAAI,GAAGA,IAAIJ,KAAKI,KAAK,GAAG;AAC/B,UAAMwf,QAAQF,OAAOtf,CAAC,GAChByf,YAAYH,OAAOtf,IAAI,CAAC,GACxB0f,YAAYJ,OAAOtf,IAAI,CAAC;AAE9B,QAAIyf,aAAaD,MAAMxc,QAAQ;AAC7B,YAAM2c,aAAab,kBAAkBU,OAAOC,WAAWD,MAAMxc,MAAM,GAC7D4c,WAAWd,kBAAkBU,OAAOE,WAAWF,MAAMxc,MAAM,GAC3D6c,eAAeV,sBAAsBQ,YAAYH,OAAO,GAAG,GAC3DM,aAAaX,sBAAsBK,OAAOI,UAAU,GAAG;AAE7DL,WAAKpJ,KAAK;AAAA,QACRjoB,MAAM;AAAA,QACN,GAAGyxB;AAAAA,MAAAA,CACJ,GAEDJ,KAAKpJ,KAAK;AAAA,QACRjoB,MAAM;AAAA,QACN0xB;AAAAA,QACAC;AAAAA,QACAC;AAAAA,MAAAA,CACD;AAAA,IACH;AACEP,WAAKpJ,KAAK;AAAA,QACRjoB,MAAM;AAAA,QACN,GAAGsxB;AAAAA,MAAAA,CACJ;AAAA,EAEL;AAEA,SAAOD;AACT;AAEO,SAASQ,gBAAgBR,MAAqB;AACnD,SAAOA,KACJ/uB,IAAI,CAACwvB,GAAG5J,QACH4J,EAAE9xB,SAAS,UACN,GAAGkoB,QAAQ,IAAI,MAAM,GAAG,IAAI4J,EAAE3B,CAAC,IAAI2B,EAAEzB,CAAC,KAG3CyB,EAAE9xB,SAAS,UACN,KAAK8xB,EAAEH,aAAaxB,CAAC,IAAI2B,EAAEH,aAAatB,CAAC,IAAIyB,EAAEF,WAAWzB,CAAC,IAAI2B,EAAEF,WAAWvB,CAAC,IAAIyB,EAAEJ,SAASvB,CAAC,IAAI2B,EAAEJ,SAASrB,CAAC,KAG/G,EACR,EACApjB,KAAK,GAAG;AACb;ACpFA,MAAM8kB,cAAcjc,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC5B,CAAC;AAAA,EAAC+b,IAAIC;AAAC,MAAMtf,iBAAAA;AAAAA;AAAAA,aAEFsf,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,aAAapc,wBAAOqc,KAAInc,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,6CAIxBmc,YAAYtc,iBAAAA,OAAOqc,KAAInc,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,+BAKhBwC,QAAQhC,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAgrB,GAAAxb,WAAAlP,IAAAsqB;AAAA7qB,WAAAnE,SAO9B;AAAA,IAAAkG,OAAA8oB;AAAAA,IAAA3tB,QAAA+tB;AAAAA,IAAAvd,QAAAnN;AAAAA,IAAA,GAAAkP;AAAAA,EAAAA,IAAwD5T,OAAKmE,OAAAnE,OAAAmE,OAAAirB,GAAAjrB,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAA6qB,MAAAI,IAAAjrB,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAA6qB,IAAA7qB,EAAA,CAAA;AAAjC,QAAA0N,SAAAnN,OAAA/E,SAAA,IAAA+E,IAC5B;AAAA,IAAAzI;AAAAA,EAAAA,IAAeyJ,eACf0P,cAAoBnZ,KAAIgW,OAAOG,SAE/Bid,SAAeL,IAAI;AAAC,MAAApqB;AAAA,MAAAT,EAAA,CAAA,MAAAkrB,UAAAlrB,EAAA,CAAA,MAAAirB,KAAAjrB,EAAA,CAAA,MAAA0N,UAAA1N,SAAA6qB,GAAA;AAEpB,UAAAb,SAAwB,CACtB;AAAA,MAAAjB,GACK;AAAA,MAACE,GACD;AAAA,IAAA,GAEL;AAAA,MAAAF,GACKrb;AAAAA,MAAMub,GACN;AAAA,MAACvb;AAAAA,IAAAA,GAGN;AAAA,MAAAqb,GACKmC;AAAAA,MAAMjC,GACNgC,IAAI;AAAA,MAACvd;AAAAA,IAAAA,GAGV;AAAA,MAAAqb,GACK8B,IAAInd;AAAAA,MAAMub,GACV;AAAA,MAACvb;AAAAA,IAAAA,GAGN;AAAA,MAAAqb,GACK8B;AAAAA,MAAC5B,GACD;AAAA,IAAA,CACJ,GAGHgB,OAAaF,mBAAmBC,MAAM;AACzBvpB,SAAAgqB,gBAAgBR,IAAI,GAACjqB,OAAAkrB,QAAAlrB,OAAAirB,GAAAjrB,OAAA0N,QAAA1N,OAAA6qB,GAAA7qB,OAAAS;AAAAA,EAAA;AAAAA,SAAAT,EAAA,CAAA;AAAlC,QAAA+qB,OAAatqB,IAEb0qB,aAAmB,GAAGJ,IAAI,IAC1BK,WAAiB,GAAGL,IAAI,MAAMF,CAAC,gBAIQhqB,KAAA,OAAOgqB,CAAC,IAAIA,CAAC;AAAE,MAAA5pB;AAAAjB,IAAA,EAAA,MAAAiR,eAAAjR,UAAA6qB,KAChD5pB,KAAAF,+BAAA,QAAA,EAAS,IAAA,eACP,UAAAA,+BAAA,UAAS,GAAA,GAAMkQ,GAAAA,aAAoB4Z,OAAAA,GAAWA,QAAAA,GAAQ,MAAA,QAAA,CAAO,GAC/D,GAAO7qB,QAAAiR,aAAAjR,QAAA6qB,GAAA7qB,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAC0D,QAAA6P,KAAAoB,cAAc;AAAC,MAAAuC;AAAAxT,IAAA,EAAA,MAAAmrB,cAAAnrB,UAAA6P,MAAhF2D,oCAAC,YAAA,EAAc2X,eAAiB,MAAA,qBAAiC,aAAAtb,GAAAA,CAAe,GAAI7P,QAAAmrB,YAAAnrB,QAAA6P,IAAA7P,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAAzT,YAAAorB,YACpF3X,oCAAC,WAAA,EAAa2X,GAAAA,SAAAA,CAAQ,GAAIprB,QAAAorB,UAAAprB,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,IAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAAyT,MAAAzT,UAAA6qB,KAL5BnX,KAAAO,2BAAAA,KAAA,OAAA,EAAY4W,OAAAA,GAAWA,QAAAA,GAAY,SAAAhqB,IACjCI,UAAAA;AAAAA,IAAAA;AAAAA,IAGAuS;AAAAA,IACAC;AAAAA,EAAAA,EAAAA,CACF,GAAMzT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA6qB,GAAA7qB,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA,SAAA7T,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAA0T,MAAA1T,UAAA6qB,KAPRhX,oCAAC,aAAA,EAAW,GAAKpE,WAAeob,OAAQvb,KACtCoE,cAOF,GAAc1T,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAA0T,IAAA1T,QAAA6qB,GAAA7qB,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA,GARd6T;AAQc,CAEjB;AACDxC,MAAMxR,cAAc;ACvHb,MAAMwrB,yBAAyBhsB,0BACpC,sCACA,IACF;ACUO,SAAAisB,wBAAAzvB,OAAA;AAAA,QAAAmE,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAtH;AAAAA,IAAAK;AAAAA,EAAAA,IAA4B6C;AAAK,MAAA0E;AAAAP,WAAAhH,WACyBuH,KAAA;AAAA,IAAAG,SAAU;AAAA,IAAG1H;AAAAA,EAAAA,GAAUgH,OAAAhH,SAAAgH,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAAjF,QAAAvF,QAA0D8F;AAAoC,MAAAE;AAAA,SAAAT,EAAA,CAAA,MAAArH,YAAAqH,SAAAvF,SAEvFgG,KAAAM,2BAAAA,IAAA,uBAAA,UAAA,EAAwCtG,OAAQ9B,SAAAA,CAAS,GAAkCqH,OAAArH,UAAAqH,OAAAvF,OAAAuF,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAA3FS;AAA2F;AAGpG6qB,wBAAwBzrB,cAAc;ACvB/B,SAAS0rB,SAAS9wB,OAAkD;AACzE,SAAOmL,CAAAA,EAAQnL,SAAS,OAAOA,SAAU,YAAY,CAACgB,MAAMC,QAAQjB,KAAK;AAC3E;ACIA,MAAM+wB,gBAA6C;AAAA,EACjD9qB,SAAS;AAAA,EACT1H,SAAS;AACX;AAKO,SAAAyyB,qBAAA;AACL,QAAAhxB,QAAc0F,MAAAA,WAAWkrB,sBAAsB;AAK/C,MAAI5wB,UAAU,CAAC8wB,SAAS9wB,KAAK,KAAKA,MAAKiG,YAAa;AAClD,UAAM,IAAI3E,MAAM,2DAA2D;AAC5E,SAEMtB,SAAA+wB;AAAsB;ACpBxB,SAASE,mBAAmB;AAAA,EACjC/yB;AAAAA,EACAgzB;AAAAA,EACAC;AAKF,GAAoB;AAClB,SAAKD,YAIEC,QAAQjzB,QAAQ,IAHdA;AAIX;AAEA+yB,mBAAmB7rB,cAAc;ACpB1B,SAASgsB,mBAAmB9wB,OAAiBgH,OAAyB;AAC3E,QAAM+pB,MAAgB,CAAA;AAEtB,WAASphB,IAAI,GAAGA,IAAI3P,MAAMiB,QAAQ0O,KAAK;AAC1B3P,UAAM2P,CAAC,IAET3I,SACP+pB,IAAIjL,KAAKnW,CAAC;AAId,SAAOohB;AACT;AAEO,SAASC,mBAAmBhxB,OAAiBgH,OAAyB;AAC3E,QAAM+pB,MAAgB,CAAA;AAEtB,WAASphB,IAAI,GAAGA,IAAI3P,MAAMiB,QAAQ0O,KAAK;AAC1B3P,UAAM2P,CAAC,KAER3I,SACR+pB,IAAIjL,KAAKnW,CAAC;AAId,SAAOohB;AACT;ACPO,MAAME,eAAe3c,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA,GAIrCrE,SAAc2F,YAAAA;AAAa,MAAA0qB,QAAAtzB,UAAA8W;AAAAzP,WAAAnE,SAC3B;AAAA,IAAAlD;AAAAA,IAAAoC,OAAAkxB;AAAAA,IAAA,GAAAxc;AAAAA,EAAAA,IAAgD5T,OAAKmE,OAAAnE,OAAAmE,OAAAisB,QAAAjsB,OAAArH,UAAAqH,OAAAyP,cAAAwc,SAAAjsB,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA;AACrD,QAAAjF,QAAckxB,UAAUrwB,OAAKb,OAE7B,CAAA/B,SAAAkzB,UAAA,IAA8BlZ,MAAAA,SAAgC,IAAI,GAElEjR,QADoBkf,eAAejoB,OAAO,GACHyI,OAAcM,SAAI7H,OAAMiyB;AAA2B,MAAA5rB;AAAA,MAAAP,EAAA,CAAA,MAAAjF,SAAAiF,SAAA+B,OAAA;AAGxF,UAAAqqB,KAAWP,mBAAmB9wB,OAAOgH,KAAK;AAEnCxB,SAAA6rB,GAAEpwB,SAAUowB,GAAEvmB,KAAM,GAAe,IAAnCrK,QAAoCwE,OAAAjF,OAAAiF,OAAA+B,OAAA/B,OAAAO;AAAAA,EAAA;AAAAA,SAAAP,EAAA,CAAA;AAH7C,QAAA8H,MAGEvH;AACgB,MAAAE;AAAA,MAAAT,EAAA,CAAA,MAAAjF,SAAAiF,SAAA+B,OAAA;AAEhB,UAAAsqB,OAAWN,mBAAmBhxB,OAAOgH,KAAK;AAEnCtB,SAAA2rB,KAAEpwB,SAAUowB,KAAEvmB,KAAM,GAAe,IAAnCrK,QAAoCwE,OAAAjF,OAAAiF,OAAA+B,OAAA/B,OAAAS;AAAAA,EAAA;AAAAA,SAAAT,EAAA,CAAA;AAH7C,QAAA6H,MAGEpH;AACgB,MAAAI,IAAAI;AAAAjB,YAAAhH,WAE8D6H,KAAAA,MAAM7H,SAASiI,KAAA,CAC7FjI,OAAO,GACRgH,QAAAhH,SAAAgH,QAAAa,IAAAb,QAAAiB,OAAAJ,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,IAFD0jB,MAAAA,oBAAkEL,cAAcxiB,IAAeI,EAE9F;AAAC,MAAA4O;AAAA,SAAA7P,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA8H,OAAA9H,EAAA,EAAA,MAAA6H,OAAA7H,UAAAyP,aAGAI,KAAA9O,2BAAAA,IAAA,OAAA,EAAa,WAAA,gBAAc,GAAK0O,WAAwB3H,eAAAA,KAAkBD,eAAAA,KAAUqkB,KAAAA,YACjFvzB,UACH,GAAMqH,QAAArH,UAAAqH,QAAA8H,KAAA9H,QAAA6H,KAAA7H,QAAAyP,WAAAzP,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA,GAFN6P;AAEM,CAET;AACDmc,aAAansB,cAAc;ACjDpB,SAASysB,gBAAgBC,cAAoD;AAIlF,MAAI,CAAChB,SAASgB,YAAY,KAAKA,aAAa7rB,YAAY;AACtD,UAAM,IAAI3E,MAAM,qCAAqC;AAGvD,MAAI,CAACwwB;AACH,UAAM,IAAIxwB,MAAM,uEAAuE;AAGzF,MAAIwwB,aAAa7rB,YAAY;AAC3B,WAAO6rB;AAGT,QAAM,IAAIxwB,MAAM,6BAA6B;AAC/C;ACjBO,MAAMywB,eAAentB,0BAC1B,4BACA,IACF;ACaO,SAAAotB,cAAA5wB,OAAA;AAAA,QAAAmE,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAAtH;AAAAA,IAAA+zB,SAAAnsB;AAAAA,EAAAA,IAA6C1E,OAAnB8wB,cAAApsB,OAAA/E,SAAA,IAAA+E,IAG1BqsB,qBAA2BzsB,MAAAA,WAAWqsB,YAAY;AAAC,MAAA/rB;AAAAT,WAAA4sB,sBACpCnsB,KAAAmsB,sBAAsBN,gBAAgBM,kBAAkB,GAAC5sB,OAAA4sB,oBAAA5sB,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAxE,QAAA6sB,SAAepsB,IACfqsB,sBAA4BD,QAAME,eAIlCC,SAHoBH,QAAMG,SAAN,KAGQ;AAAC,MAAAnsB;AAAAb,WAAA2sB,eAGb9rB,KAAAxF,cAAcsxB,WAAW,GAAC3sB,OAAA2sB,aAAA3sB,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAA1C,QAAA0sB,UAAgB7rB,IAGhBosB,gBAAsBP,QAAO1wB,SAAU,GACvCZ,aAAmB+C,KAAI0J,IAAK8a,cAAAA,GAAiBsK,aAAa,GAC1DC,SAAeL,SAASA,OAAMK,SAAUR,QAAQtxB,UAAU,IAAIsxB,QAAQtxB,UAAU;AAAC,MAAA6F;AAAAjB,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGrBwB,SAAEjB,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAA9D,QAAA,CAAA,EAAAmtB,cAAA,IAA2Bna,eAAiC/R,EAAE,GAG9D,CAAAxD,OAAAyjB,OAAA,IAAwBlO,MAAAA,SAAS,CAAC,GAElCoa,aAAmB3vB,UAAS;AAAC,MAAAoS;AAAA7P,IAAA,CAAA,MAAA8sB,uBAAA9sB,SAAAmtB,kBAG3Btd,KAAAwd,CAAAA,eAAA;AAEE,UAAAC,gBAAsBR,sBAAsBO,UAAU;AAEtD,WAAIA,eAAe7xB,SACjB2xB,eAAeI,CAAAA,UAAA;AACb,YAAAC,UAAgBD,MAAMF,UAAU,KAAhB,GAChBI,YAAkB;AAAA,QAAA,GAAIF;AAAAA,QAAK,CAAGF,UAAU,GAAGG,UAAU;AAAA,MAAA;AAErDtM,aAAAA,QAAQwM,OAAMlzB,KAAMizB,SAAS,EAACzxB,MAAO,GAE9ByxB;AAAAA,IAAS,CACjB,IAGDvM,QAAQ9M,OAAY,GAGf,MAAA;AACDiZ,qBAAe7xB,SACjB2xB,eAAeQ,CAAAA,YAAA;AACb,cAAAC,cAAkB;AAAA,UAAA,GAAIL;AAAAA,QAAAA;AAEtB,eAAIE,YAAUJ,UAAU,MAAM,KAC5B,OAAOI,YAAUJ,UAAU,GAE3BnM,QAAQwM,OAAMlzB,KAAMizB,WAAS,EAACzxB,MAAO,KAErCyxB,YAAUJ,UAAU,IAApBI,YAAUJ,UAAU,IAAK,GAGpBI;AAAAA,MAAS,CACjB,IAGDvM,QAAQ2M,QAAY,GAGtBP,gBAAAA;AAAAA,IAAiB;AAAA,EAClB,GACFttB,OAAA8sB,qBAAA9sB,OAAAmtB,gBAAAntB,OAAA6P,MAAAA,KAAA7P,EAAA,CAAA;AAzCH,QAAA+sB,gBAAsBld;AA2CrB,MAAA2D,IAAAC;AAAAzT,IAAA,CAAA,MAAAgtB,SAAAhtB,SAAA8sB,uBAGStZ,KAAAA,MAAMsZ,sBAAsBE,KAAK,GAAGvZ,KAAA,CAACuZ,OAAOF,mBAAmB,GAAC9sB,OAAAgtB,OAAAhtB,OAAA8sB,qBAAA9sB,QAAAwT,IAAAxT,QAAAyT,OAAAD,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,IAA1EuT,MAAAA,UAAUC,IAAoCC,EAA4B;AAAC,MAAAC;AAAA1T,IAAA,EAAA,MAAAotB,cAAAptB,EAAA,EAAA,MAAAgtB,SAAAhtB,EAAA,EAAA,MAAA+sB,iBAAA/sB,EAAA,EAAA,MAAAvC,SAAAuC,UAAAktB,UAGlExZ,KAAA;AAAA,IAAAhT,SACI;AAAA,IAAG0sB;AAAAA,IAAAJ;AAAAA,IAAAD;AAAAA,IAAAtvB,MAAAA;AAAAA,IAAAyvB;AAAAA,EAAAA,GAMbltB,QAAAotB,YAAAptB,QAAAgtB,OAAAhtB,QAAA+sB,eAAA/sB,QAAAvC,OAAAuC,QAAAktB,QAAAltB,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AARH,QAAAvF,QACSiZ;AASR,MAAAG;AAAA,SAAA7T,EAAA,EAAA,MAAArH,YAAAqH,UAAAvF,SAEMoZ,KAAA9S,2BAAAA,IAAA,aAAA,UAAA,EAA8BtG,OAAQ9B,SAAAA,CAAS,GAAwBqH,QAAArH,UAAAqH,QAAAvF,OAAAuF,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA,GAAvE6T;AAAuE;AAxFzE,SAAAga,SAAAC,KAAA;AAAA,SAgEkBC,MAAI;AAAC;AAhEvB,SAAA3Z,QAAA2Z,GAAA;AAAA,SA4CgBA,IAAI;AAAC;AA+C5BtB,cAAc5sB,cAAc;ACrGrB,SAAAmuB,WAAA;AAAA,QAAAhuB,IAAAC,qBAAAA,EAAA,CAAA,GACLxF,QAAc0F,MAAAA,WAAWqsB,YAAY;AAErC,MAAI,CAAC/xB;AACH,UAAM,IAAIsB,MAAM,mCAAmC;AAGrD,MAAA;AAAA,QAAA0E;AAAA,WAAAT,SAAAvF,SACSgG,KAAA6rB,gBAAgB7xB,KAAK,GAACuF,OAAAvF,OAAAuF,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAtBS;AAAAA,EAAsB,SAAAF,IAAA;AACtB0tB,UAAAA,MAAAA;AACP,UAAIA,eAAelyB,QACX,IAAIA,MAAM,eAAekyB,IAAGC,OAAQ,EAAE,IAEtC,IAAInyB,MAAM,eAAekyB,GAAG,EAAE;AAAA,EACrC;AACF;ACDH,MAAME,cAAczf,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAC;AAAA,EAACmC,UAAU;AAAU,CAAC,GAE/Cod,gBAAgB/e,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAtH,UAAA01B,YAAAC,SAAA7e,WAAAlP;AAAAP,WAAAnE,SAI/B;AAAA,IAAAlD;AAAAA,IAAA01B;AAAAA,IAAAC;AAAAA,IAAAr0B,OAAAsG;AAAAA,IAAA,GAAAkP;AAAAA,EAAAA,IAA4E5T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAquB,YAAAruB,OAAAsuB,SAAAtuB,OAAAyP,WAAAzP,OAAAO,OAAA5H,WAAAqH,EAAA,CAAA,GAAAquB,aAAAruB,EAAA,CAAA,GAAAsuB,UAAAtuB,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AAA3C,QAAA/F,QAAAsG,OAAA/E,SAAA5D,eAAA2I,IACtC;AAAA,IAAA2sB;AAAAA,IAAAE;AAAAA,EAAAA,IAA6BY,SAAAA,GAC7BO,iBAAuB9K,MAAAA,OAA2B,IAAI,GACtDnU,MAAYmU,MAAAA,OAA8B,IAAI,GAC9C+K,gBAAsB/K,MAAAA,OAAgB2J,UAAU;AAAC,MAAA3sB;AAAAT,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAE+BgB,KAAAA,MAAM6O,IAAGyP,SAAQ/e,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAjG0jB,MAAAA,oBAAkEL,cAAc5iB,EAAiB;AAAC,MAAAI,IAAAI;AAAAjB,IAAA,CAAA,MAAAotB,cAAAptB,SAAAquB,cAKxFxtB,KAAAA,MAAA;AACe2tB,kBAAazP,YAAaqO,cAA1BA,cAGrBiB,aAAa;AAAA,MAAAI,eAAgBF,eAAcxP;AAAAA,IAAAA,CAAS,GAGtDyP,cAAazP,UAAWqO;AAAAA,EAAH,GACpBnsB,KAAA,CAACmsB,YAAYiB,UAAU,GAACruB,OAAAotB,YAAAptB,OAAAquB,YAAAruB,OAAAa,IAAAb,QAAAiB,OAAAJ,KAAAb,EAAA,CAAA,GAAAiB,KAAAjB,EAAA,EAAA,IAR3BuT,MAAAA,UAAU1S,IAQPI,EAAwB;AAAC,MAAA4O;AAAA7P,IAAA,EAAA,MAAAotB,cAAAptB,UAAAsuB,WAG1Bze,KAAAyR,CAAAA,UAAA;AAEEgN,cAAUhN,KAAK;AAEf,UAAAoN,cAAoBpf,IAAGyP,SACvBd,SAAeve,SAAQ+uB;AAEnB,KAACrB,cAAD,CAAgBsB,eAAhB,CAAgCzQ,UAEhC9kB,cAAc8kB,MAAsD,KAA3CrkB,wBAAwB80B,aAAazQ,MAAM,MACtEsQ,eAAcxP,UAAWd;AAAAA,EAC1B,GACFje,QAAAotB,YAAAptB,QAAAsuB,SAAAtuB,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAbH,QAAA2uB,cAAoB9e;AAenB,MAAA2D;AAAAxT,IAAA,EAAA,MAAA/F,SAAA+F,UAAAktB,UAQU1Z,KAAA;AAAA,IAAA,GAAIvZ;AAAAA,IAAKizB;AAAAA,EAAAA,GAASltB,QAAA/F,OAAA+F,QAAAktB,QAAAltB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAA,SAAAzT,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA2uB,eAAA3uB,EAAA,EAAA,MAAAyP,aAAAzP,UAAAwT,MAL3BC,KAAA1S,2BAAAA,IAAC,aAAA,EAAW,GACN0O,WACI,WAAA,SACCkf,SAAAA,aACJrf,KACE,OAAAkE,IAEN7a,SAAAA,CACH,GAAcqH,QAAArH,UAAAqH,QAAA2uB,aAAA3uB,QAAAyP,WAAAzP,QAAAwT,IAAAxT,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GARdyT;AAQc,CAEjB,GAKYmb,QAAQvf,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAtH,UAAA8W,WAAAlP;AAAAP,WAAAnE,SAI9B;AAAA,IAAAlD;AAAAA,IAAA+zB,SAAAnsB;AAAAA,IAAA,GAAAkP;AAAAA,EAAAA,IAA8C5T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAyP,WAAAzP,OAAAO,OAAA5H,WAAAqH,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AAAlC,QAAA0sB,UAAAnsB,OAAA/E,SAAA,IAAA+E;AAAW,MAAAE;AAAAT,IAAA,CAAA,MAAArH,YAAAqH,SAAAsP,OAAAtP,EAAA,CAAA,MAAAyP,aAIxBhP,oCAAC,eAAA,EAAa,GAAKgP,WAAgBH,KAChC3W,SAAAA,CACH,GAAgBqH,OAAArH,UAAAqH,OAAAsP,KAAAtP,OAAAyP,WAAAzP,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAS,MAAAT,SAAA0sB,WAHlB7rB,KAAAE,2BAAAA,IAAC,eAAA,EAAuB2rB,SACtBjsB,UAAAA,GAAAA,CAGF,GAAgBT,OAAAS,IAAAT,OAAA0sB,SAAA1sB,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAJhBa;AAIgB,CAEnB;AACD+tB,MAAM/uB,cAAc;AC7FpB,MAAMlF,MAAM,6BACNk0B,aAAarvB,OAAOC,IAAI,GAAG9E,GAAG,UAAU;AAE9CyE,YAAYyvB,UAAU,IAAI;AAEnB,MAAMC,sBAA0C;AAAA,EACrDpuB,SAAS;AAAA,EACTod,iBAAiB;AAAA,EACjB,IAAI9kB,UAAU;AACZ,WAAI,OAAO0G,WAAa,MACf,QAGLN,YAAYyvB,UAAU,MAI1BzvB,YAAYyvB,UAAU,IAAInvB,SAASqvB,cAAc,KAAK,GACtD3vB,YAAYyvB,UAAU,EAAEG,aAAa,eAAe,EAAE,GAEtDtvB,SAASuvB,KAAKC,YAAY9vB,YAAYyvB,UAAU,CAAC,IAE1CzvB,YAAYyvB,UAAU;AAAA,EAC/B;AACF,GAEaM,gBAAgB9vB,0BAA8C1E,KAAKm0B,mBAAmB;ACrB5F,SAAAM,YAAA;AACL,QAAA30B,QAAc0F,MAAAA,WAAWgvB,aAAa;AAEtC,MAAI,CAAC10B;AACH,UAAM,IAAIsB,MAAM,oCAAoC;AAMtD,MAAI,CAACwvB,SAAS9wB,KAAK,KAAKA,MAAKiG,YAAa;AACxC,UAAM,IAAI3E,MAAM,kDAAkD;AACnE,SAEMtB;AAAK;ACLP,SAAA40B,OAAAxzB,OAAA;AAAA,QAAAmE,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAtH;AAAAA,IAAA22B,iBAAAnH;AAAAA,EAAAA,IAA0CtsB,OAC1C0zB,SAAeH,UAAAA,GACfI,iBACGrH,OAAOoH,OAAMpR,YAAaoR,OAAMpR,SAAUgK,IAAI,IAAIoH,OAAMv2B,YAAau2B,OAAMpR,UAAkBtS;AAEhG,MAAI,CAAC2jB;AAAa,WACT;AACR,MAAAjvB;AAAA,SAAAP,EAAA,CAAA,MAAArH,YAAAqH,SAAAwvB,iBAEMjvB,KAAAkvB,SAAAA,aAAa92B,UAAU62B,aAAa,GAACxvB,OAAArH,UAAAqH,OAAAwvB,eAAAxvB,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAArCO;AAAqC;AAG9C8uB,OAAOxvB,cAAc;ACPd,SAAA6vB,eAAA7zB,OAAA;AAAA,QAAAmE,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAA6d;AAAAA,IAAAnlB;AAAAA,IAAAK;AAAAA,IAAA22B,qBAAAxR;AAAAA,EAAAA,IAA4EtiB,OAC5E+zB,kBAAwB5N,2BACtB6N,gBACAzb,SACAyZ,QACF,GAKqBttB,KAAAud,mBAAA,MACRrd,KAAAzH,WAAA42B;AAA0B,MAAA/uB;AAAAb,IAAA,CAAA,MAAAme,YAAAne,SAAAO,MAAAP,EAAA,CAAA,MAAAS,MAH9BI,KAAA;AAAA,IAAAH,SACI;AAAA,IAAGod,iBACKvd;AAAAA,IAAuBvH,SAC/ByH;AAAAA,IAA0B0d;AAAAA,EAAAA,GAEpCne,OAAAme,UAAAne,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AANH,QAAAvF,QACEoG;AAMuD,MAAAI;AAAA,SAAAjB,EAAA,CAAA,MAAArH,YAAAqH,SAAAvF,SAElDwG,KAAAF,2BAAAA,IAAA,cAAA,UAAA,EAA+BtG,OAAQ9B,SAAAA,CAAS,GAAyBqH,OAAArH,UAAAqH,OAAAvF,OAAAuF,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA,GAAzEiB;AAAyE;AAjB3E,SAAA4sB,WAAA;AAAA,SAKG;AAAI;AALP,SAAAzZ,UAAA;AAAA,SAIG1U,SAAQuvB;AAAK;AAgBvBS,eAAe7vB,cAAc;AAE7B,MAAMgwB,iBAAiBA,MAAM,MAAM;AAAC,GCnC9BC,eAAephB,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,oFAYlBkhB,SAAS1gB,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,uBAAA,CAAA,GAI/B;AAAA,IAAAoS;AAAAA,IAAA1Z;AAAAA,EAAAA,IAAuBkD;AAAK,MAAA0E;AAAA,SAAAP,EAAA,CAAA,MAAAqS,MAAArS,SAAArH,YAAAqH,EAAA,CAAA,MAAAsP,OAG1B/O,KAAAQ,2BAAAA,IAAC,cAAA,EAAa,eAAA,IAAgBsR,IAAY,WAAA,UAAc/C,KACrD3W,UACH,GAAeqH,OAAAqS,IAAArS,OAAArH,UAAAqH,OAAAsP,KAAAtP,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFfO;AAEe,CAElB;AACDwvB,OAAOlwB,cAAc;ACHrB,MAAMmwB,oBAAoBthB,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,uBAI9BohB,cAAcvhB,iBAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,sCASjBqhB,cAAc7gB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAkwB,YAAAC,UAAAC,YAAA5gB,WAAAlP,IAAAE,IAAAI;AAAAb,WAAAnE,SAMpC;AAAA,IAAAwW,IAAA9R;AAAAA,IAAAgE,KAAA9D;AAAAA,IAAA0vB;AAAAA,IAAAG,OAAAzvB;AAAAA,IAAAuvB;AAAAA,IAAAC;AAAAA,IAAA,GAAA5gB;AAAAA,EAAAA,IAA0F5T,OAAKmE,OAAAnE,OAAAmE,OAAAmwB,YAAAnwB,OAAAowB,UAAApwB,OAAAqwB,YAAArwB,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,OAAAsvB,aAAAnwB,EAAA,CAAA,GAAAowB,WAAApwB,EAAA,CAAA,GAAAqwB,aAAArwB,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA;AAAxF,QAAAqS,KAAA9R,OAAA/E,SAAA,QAAA+E,IAAYgE,MAAA9D,OAAAjF,SAAA,IAAAiF;AAAO,MAAAQ;AAAAjB,WAAAa,MAAcI,KAAAJ,OAAArF,SAAA,CAAA,IAAAqF,IAAUb,OAAAa,IAAAb,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAV,QAAAswB,QAAArvB,IACxC;AAAA,IAAAhF;AAAAA,EAAAA,IAAgBsF,YAAAA,GAChB+N,MAAYmU,MAAAA,OAA8B,IAAI,GAC9C8M,aAAmB9M,MAAAA,OAA8B,IAAI,GACrD,CAAA+M,WAAAC,YAAA,IAAkCzd,eAAS,CAAC,GAC5C,CAAA0d,cAAAC,eAAA,IAAwC3d,MAAAA,SAAS,CAAC,GAClD,CAAA4d,YAAAC,aAAA,IAAoC7d,MAAAA,SAAS,EAAE;AAAC,MAAAnD;AAAA7P,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGgCoQ,KAAAA,MAAMP,IAAGyP,SAAQ/e,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA,GAAjG0jB,MAAAA,oBAAkEL,cAAcxT,EAAiB;AAAC,MAAA2D;AAAAxT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAExF+T,KAAAA,MAAA;AACR,QAAI,CAAC+c,WAAUxR;AAAQ;AAEvB,UAAA+R,eAAqBP,WAAUxR,QAAQgS;AAEnCD,4BAAwBE,eAC1BH,cAAcC,aAAYG,YAAa;AAAA,EACxC,GACFjxB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAAzT,YAAAqwB,cAAE5c,KAAA,CAAC4c,UAAU,GAACrwB,QAAAqwB,YAAArwB,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GARfuT,MAAAA,UAAUC,IAQPC,EAAY;AAAC,MAAAC,IAAAG;AAAA7T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAENiU,KAAAA,MAAA;AACR,QAAI,CAACpE,IAAGyP;AAAQ;AAEhB,UAAAmS,WAAiBC,eAAe7hB,IAAGyP,QAAQqS,UAAW;AAEtD,QAAIF,UAAQ;AACV,UAAI,EAAEA,oBAAoBF;AAAY;AAEtC,YAAAK,eAAqBA,MAAA;AACnBZ,qBAAaS,SAAQV,SAAU;AAAA,MAAC;AAGlCU,eAAQxS,iBAAkB,UAAU2S,cAAc;AAAA,QAAAC,SAAU;AAAA,MAAA,CAAK;AAEjE,YAAAC,KAAW,IAAItS,gBAAgBuS,CAAAA,YAAA;AAC7Bb,wBAAgBa,QAAO,CAAA,EAAG5R,YAAY1iB,MAAO;AAAA,MAAC,CAC/C;AAEDq0B,aAAAA,GAAEvR,QAASkR,QAAQ,GAEnBG,aAAAA,GAEO,MAAA;AACLH,iBAAQvS,oBAAqB,UAAU0S,YAAY,GAEnDE,GAAEtR,UAAWiR,QAAQ,GACrBK,GAAErR,WAAAA;AAAAA,MAAa;AAAA,IAChB;AAGH,UAAAuR,iBAAqBA,MAAA;AACnBhB,mBAAav2B,OAAMw3B,OAAQ;AAAA,IAAC,GAG9BC,eAAqBA,MAAA;AACnBhB,sBAAgBz2B,OAAM03B,WAAY;AAAA,IAAC;AAGrC13B,WAAAA,OAAMwkB,iBAAkB,UAAU2S,gBAAc;AAAA,MAAAC,SAAU;AAAA,IAAA,CAAK,GAC/Dp3B,OAAMwkB,iBAAkB,UAAUiT,YAAY,GAG9ChB,gBAAgBz2B,OAAM03B,WAAY,GAElCP,eAAAA,GAEO,MAAA;AACLn3B,aAAMykB,oBAAqB,UAAU0S,cAAY,GACjDn3B,OAAMykB,oBAAqB,UAAUgT,YAAY;AAAA,IAAC;AAAA,EACnD,GACA9d,KAAA,CAAA,GAAE7T,QAAA0T,IAAA1T,QAAA6T,OAAAH,KAAA1T,EAAA,EAAA,GAAA6T,KAAA7T,EAAA,EAAA,IAlDLuT,MAAAA,UAAUG,IAkDPG,EAAE;AAEL,QAAAvJ,MAAYgmB,MAAKt0B,QACjBkB,SAAe0zB,aAAatmB,OAAOsmB,aAAa30B,MAAMsI,GAAG,KAAKtI,MAAMsI,GAAG,IAAxD,GACfstB,YAAkB30B,SAASiB,KAAI2J,IAAK3J,KAAIC,MAAQoyB,YAAYtzB,SAAUoN,GAAG,IAAI,GAAG,CAAK,IAAnE,GAClBwnB,UAAgB50B,SAASiB,KAAI4zB,MAAQvB,YAAYE,gBAAgBxzB,SAAUoN,GAAG,IAAI,IAAlE;AAAuE,MAAAyJ,KAAAD;AAAA9T,IAAA,EAAA,MAAA6xB,aAAA7xB,EAAA,EAAA,MAAAuE,OAAAvE,EAAA,EAAA,MAAA4wB,cAAA5wB,EAAA,EAAA,MAAAowB,YAAApwB,EAAA,EAAA,MAAA0wB,gBAAA1wB,EAAA,EAAA,MAAAwwB,aAAAxwB,EAAA,EAAA,MAAA/D,SAAA+D,UAAA8xB,WAE7Ehe,KAAAA,MAAA;AACHsc,gBACLA,SAAS;AAAA,MAAAyB;AAAAA,MAAAttB,KAAiBtI,MAAMsI,GAAG;AAAA,MAACqsB;AAAAA,MAAAF;AAAAA,MAAAF;AAAAA,MAAAsB;AAAAA,IAAAA,CAA+C;AAAA,EAAC,GACnF/d,OAAC8d,WAAWttB,KAAKqsB,YAAYR,UAAUM,cAAcF,WAAWv0B,OAAO61B,OAAO,GAAC9xB,QAAA6xB,WAAA7xB,QAAAuE,KAAAvE,QAAA4wB,YAAA5wB,QAAAowB,UAAApwB,QAAA0wB,cAAA1wB,QAAAwwB,WAAAxwB,QAAA/D,OAAA+D,QAAA8xB,SAAA9xB,QAAA+T,KAAA/T,QAAA8T,OAAAC,MAAA/T,EAAA,EAAA,GAAA8T,KAAA9T,EAAA,EAAA,IAHlFuT,MAAAA,UAAUO,IAGPC,GAA+E;AAAC,MAAAC;AAAAhU,IAAA,EAAA,MAAA6xB,aAAA7xB,EAAA,EAAA,MAAAuE,OAAAvE,EAAA,EAAA,MAAAmwB,cAAAnwB,EAAA,EAAA,MAAA4wB,cAAA5wB,EAAA,EAAA,MAAAswB,SAAAtwB,EAAA,EAAA,MAAAqwB,cAAArwB,EAAA,EAAA,MAAA/D,SAAA+D,UAAA8xB,WAEtD9d,MAAA;AAAA,IAAA6d;AAAAA,IAAAttB;AAAAA,IAAAqsB;AAAAA,IAAA30B;AAAAA,IAAA61B;AAAAA,IAAA3B;AAAAA,IAAAG;AAAAA,IAAAD;AAAAA,EAAAA,GAS5BrwB,QAAA6xB,WAAA7xB,QAAAuE,KAAAvE,QAAAmwB,YAAAnwB,QAAA4wB,YAAA5wB,QAAAswB,OAAAtwB,QAAAqwB,YAAArwB,QAAA/D,OAAA+D,QAAA8xB,SAAA9xB,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AATD,QAAArH,WAAiBq5B,YAAYhe,GAS5B;AAAC,MAAAE;AAAAlU,YAAA9C,UAI+BgX,MAAA;AAAA,IAAAhX;AAAAA,EAAAA,GAAQ8C,QAAA9C,QAAA8C,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAAA,MAAAqU;AAAArU,IAAA,EAAA,MAAArH,YAAAqH,UAAAkU,OAArCG,8CAAUkc,KAAAA,YAAmB,OAAArc,KAC1Bvb,SAAAA,CACH,GAAMqH,QAAArH,UAAAqH,QAAAkU,KAAAlU,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AAAA,MAAA+W;AAAA,SAAA/W,EAAA,EAAA,MAAAqS,MAAArS,UAAAyP,aAAAzP,EAAA,EAAA,MAAAqU,OAHR0C,MAAAhW,2BAAAA,IAAC,mBAAA,EAAsBsR,IAAY,WAAA,eAAa,GAAK5C,WAAgBH,KACnE+E,UAAAA,IAAAA,CAGF,GAAoBrU,QAAAqS,IAAArS,QAAAyP,WAAAzP,QAAAqU,KAAArU,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA,GAJpB+W;AAIoB,CAEvB;AACDmZ,YAAYrwB,cAAc;AAE1B,SAAAmyB,YAAAzxB,IAAA;AAAA,QAAAP,IAAAC,uBAAA,EAAA,GAAqB;AAAA,IAAA4xB;AAAAA,IAAAttB;AAAAA,IAAA4rB;AAAAA,IAAAS;AAAAA,IAAAN;AAAAA,IAAAD;AAAAA,IAAAp0B;AAAAA,IAAA61B;AAAAA,EAAAA,IAAAvxB;AAiBnB,MAAI,CAAC8vB,cAAcC,MAAKt0B,WAAY;AAAC,WAAS;AAE9C,MAAI40B,eAAe,IAAE;AAAA,QAAAnwB;AAAAT,MAAA,CAAA,MAAAswB,MAAA,CAAA,KAAAtwB,SAAAqwB,cACW5vB,MAAA4vB,WAAWC,QAAQ,GAACtwB,OAAAswB,MAAA,CAAA,GAAAtwB,OAAAqwB,YAAArwB,OAAAS,OAAAA,MAAAT,EAAA,CAAA;AAAA,QAAAa;AAAA,WAAAb,SAAAS,OAA3CI,KAAA,CAACE,2BAAAA,IAAC,aAAA,EAAqBN,UAAAA,IAAAA,GAAJ,CAAyB,CAAc,GAACT,OAAAS,KAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAA3Da;AAAAA,EAA2D;AACnE,MAAAJ;AAAA,MAAAT,EAAA,CAAA,MAAA6xB,aAAA7xB,EAAA,CAAA,MAAAuE,OAAAvE,EAAA,CAAA,MAAAmwB,cAAAnwB,EAAA,CAAA,MAAA4wB,cAAA5wB,EAAA,CAAA,MAAAswB,SAAAtwB,EAAA,EAAA,MAAAqwB,cAAArwB,EAAA,EAAA,MAAA/D,SAAA+D,UAAA8xB,SAAA;AAAA,QAAAjxB;AAAAb,cAAA6xB,aAAA7xB,EAAA,EAAA,MAAAuE,OAAAvE,EAAA,EAAA,MAAAmwB,cAAAnwB,EAAA,EAAA,MAAA4wB,cAAA5wB,UAAAqwB,cAAArwB,EAAA,EAAA,MAAA/D,SAE0C4E,KAAAA,CAAAoxB,MAAAC,eAAA;AACzC,YAAAC,YAAkBN,YAAYK,YAC9B94B,OAAai3B,WAAW4B,IAAI,GAC5Bt3B,OAAYw1B,aAAaA,WAAW8B,MAAME,SAAqB,IAAnDA;AAAoD,aAG9DpxB,2BAAAA,IAAC,eAA6B,OAAA;AAAA,QAAAqxB,KAAMD,aAAavB,aAAa30B,MAAMsI,GAAG;AAAA,MAAA,GACpEnL,kBADeuB,IAElB;AAAA,IAAc,GAEjBqF,QAAA6xB,WAAA7xB,QAAAuE,KAAAvE,QAAAmwB,YAAAnwB,QAAA4wB,YAAA5wB,QAAAqwB,YAAArwB,QAAA/D,OAAA+D,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAVMS,KAAA6vB,MAAK1a,MAAOic,WAAWC,OAAO,EAAC52B,IAAK2F,EAU1C,GAACb,OAAA6xB,WAAA7xB,OAAAuE,KAAAvE,OAAAmwB,YAAAnwB,OAAA4wB,YAAA5wB,OAAAswB,OAAAtwB,QAAAqwB,YAAArwB,QAAA/D,OAAA+D,QAAA8xB,SAAA9xB,QAAAS;AAAAA,EAAA;AAAAA,SAAAT,EAAA,EAAA;AAAA,SAVKS;AAUL;AAGJ,SAAS0wB,eAAeC,YAA+B;AACrD,MAAIiB,YAAYjB;AAEhB,SAAOiB,aAAa,CAACv4B,cAAcu4B,SAAS;AAC1CA,gBAAYA,UAAUjB;AAGxB,SAAOiB;AACT;ACjMO,SAASC,cAAct5B,SAA6B;AAEzD,MAAIu5B,SAAS7E,OAAO8E,yBAAyBx5B,QAAQ6C,OAAO,KAAK,GAAG0kB,KAChEkS,UAAUF,UAAU,oBAAoBA,UAAUA,OAAOG;AAE7D,SAAID,UACMz5B,QAAgBsW,OAI1BijB,SAAS7E,OAAO8E,yBAAyBx5B,SAAS,KAAK,GAAGunB,KAC1DkS,UAAUF,UAAU,oBAAoBA,UAAUA,OAAOG,gBAErDD,UACMz5B,QAAQ6C,MAAqCyT,MAI/CtW,QAAQ6C,MAAqCyT,OAAQtW,QAAgBsW;AAC/E;ACvBO,MAAMqjB,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;ACjBO,SAASx1B,KAAK4jB,SAUN;AACb,QAAM;AAAA,IACJ6R;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAvc,UAAU;AAAA,IACVwc;AAAAA,IACAC;AAAAA,IACAC;AAAAA,EAAAA,IACEnS;AAEJ,SAAO;AAAA,IACL8G,MAAM;AAAA,IACN,MAAMC,GAAGqL,MAAM;AACb,YAAM;AAAA,QAACtV;AAAAA,QAAUmK;AAAAA,QAAWoL;AAAAA,QAAUnL;AAAAA,MAAAA,IAASkL,MACzC;AAAA,QAAC9K;AAAAA,QAAUgL;AAAAA,MAAAA,IAAapL,OAExBhlB,WAAW,MAAMqwB,WAAAA,eAAeH,MAAM;AAAA,QAC1CI,aAAa;AAAA,QACbC,UAAUzS,QAAQvD,mBAAmBtiB;AAAAA,QACrCu4B,gBAAgB;AAAA,QAChBjd;AAAAA,QACAkd,cAAc;AAAA,MAAA,CACf;AAED,UAAInN,WAAWoN,OACXC,YAAYD;AAEhB,YAAME,YAAYxL,SAAS5mB,OACrBqyB,YAAYzL,SAASzrB;AAEvBorB,gBAAUjuB,SAAS,KAAK,MAC1BwsB,WAAWsN,aAAa5wB,SAAS8wB,OAAO9wB,SAAS+wB,QACjDJ,YAAYE,YAAY7wB,SAAS6uB,MAG/B9J,UAAUjuB,SAAS,OAAO,MAC5BwsB,WAAWsN,YAAY5wB,SAAS+wB,OAChCJ,YAAYE,aAAa7wB,SAAS6uB,MAAM7uB,SAASgxB,UAG/CjM,UAAUjuB,SAAS,QAAQ,MAC7BwsB,WAAWsN,aAAa5wB,SAAS8wB,OAAO9wB,SAAS+wB,QACjDJ,YAAYE,YAAY7wB,SAASgxB,SAG/BjM,UAAUjuB,SAAS,MAAM,MAC3BwsB,WAAWsN,YAAY5wB,SAAS8wB,MAChCH,YAAYE,aAAa7wB,SAAS6uB,MAAM7uB,SAASgxB;AAKnD,YAAMC,iBAAiB3N,WAAWsM,QAAQ,CAAC,IAAIA,QAAQ,CAAC,GAClDsB,kBAAkBP,YAAYf,QAAQ,CAAC,IAAIA,QAAQ,CAAC,GACpDuB,iBAAiBf,UAAU5xB,QAAQoxB,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAC/DG,wBAAkBvU,UAAU2V,gBAC5BnB,kBAAkBmB,cAAc,GAE5BtB,sBACFjV,SAASwK,SAAS1uB,MAAM8H,QAAQ,GAAG2yB,cAAc,OACxClB,SAASzU,YAAYvjB,WAC9B2iB,SAASwK,SAAS1uB,MAAM8H,QAAQ,GAAGyxB,SAASzU,OAAO,OAGjDmU,kBACF/U,SAASwK,SAAS1uB,MAAM4sB,WAAW,GAAG1oB,KAAK0J,IAAI2sB,gBAAgBnB,YAAYtU,WAAWkV,KAAQ,CAAC,MAE/F9V,SAASwK,SAAS1uB,MAAMi6B,YAAY,GAAGO,eAAe;AAGxD,YAAME,iBAAiB,MAAMjB,SAASkB,cAAczW,SAASwK,QAAQ,GAE/DkM,UAAUF,eAAez3B,QACzB43B,UAAUH,eAAe5yB;AAE/B,aAAIoyB,cAAcW,WAAWV,cAAcS,UAClC;AAAA,QAACE,OAAO;AAAA,UAACxM,OAAO;AAAA,QAAA;AAAA,MAAI,IAGtB,CAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AC/FO,SAASyM,iBAAiBC,QAIV;AACrB,QAAM;AAAA,IAACrO;AAAAA,IAAWxrB;AAAAA,IAAY2G;AAAAA,EAAAA,IAASkzB,QAEjCpK,IAAI9oB,MAAM3G,UAAU,GACpB85B,eAAyCrK,MAAMrvB,SAAYuG,MAAMA,MAAM/F,SAAS,CAAC,IAAI6uB;AAE3F,SAAO,OAAOqK,gBAAiB,WAAWtO,UAAUsO,YAAY,IAAI15B;AACtE;AAEO,SAAS25B,aAAaF,QAGN;AACrB,QAAM;AAAA,IAACG;AAAAA,IAAeF;AAAAA,EAAAA,IAAgBD;AAEtC,MAAIC,EAAAA,iBAAiB15B,UAAa45B,kBAAkB55B;AAIpD,WAAO2C,KAAK0J,IACVqtB,gBAAgBjB,QACfmB,iBAAiBnB,SAAYrB,0BAA0B,CAC1D;AACF;ACZA,MAAMyC,eAAa3mB,iBAAAA,OAAO4mB,QAAAA,OAAOC,OAAO5X,IAAI,CAAC,EAAC/O,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,uHAUxC2mB,aAAa9mB,iBAAAA,OAAO4mB,QAAAA,OAAOC,OAAOxc,IAAI,CAAC,EAACnK,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,yBAOjC4mB,cAAcpmB,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAy1B,SAAAzlB,OAAA0lB,UAAAC,QAAAC,QAAAl9B,UAAAm9B,aAAA3M,SAAAC,SAAA7lB,UAAAuT,SAAAwR,WAAA5a,QAAA+B,WAAArP,QAAA0N,QAAAioB,UAAA97B,OAAAqG,MAAAyB,OAAAi0B,OAAAC;AAAAj2B,WAAAnE,SAyBpC;AAAA,IAAAq6B,oBAAAJ;AAAAA,IAAAJ;AAAAA,IAAAzlB;AAAAA,IAAA0lB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAl9B;AAAAA,IAAAme;AAAAA,IAAAwR;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAA7lB;AAAAA,IAAAmK;AAAAA,IAAAtN;AAAAA,IAAA0N;AAAAA,IAAAioB;AAAAA,IAAA97B;AAAAA,IAAAqG;AAAAA,IAAAyB;AAAAA,IAAAgnB,GAAAiN;AAAAA,IAAA/M,GAAAgN;AAAAA,IAAA,GAAAxmB;AAAAA,EAAAA,IAuBI5T,OAAKmE,OAAAnE,OAAAmE,OAAA01B,SAAA11B,OAAAiQ,OAAAjQ,OAAA21B,UAAA31B,OAAA41B,QAAA51B,OAAA61B,QAAA71B,OAAArH,UAAAqH,OAAA81B,aAAA91B,OAAAmpB,SAAAnpB,OAAAopB,SAAAppB,QAAAuD,UAAAvD,QAAA8W,SAAA9W,QAAAsoB,WAAAtoB,QAAA0N,QAAA1N,QAAAyP,WAAAzP,QAAAI,QAAAJ,QAAA8N,QAAA9N,QAAA+1B,UAAA/1B,QAAA/F,OAAA+F,QAAAM,MAAAN,QAAA+B,OAAA/B,QAAAg2B,OAAAh2B,QAAAi2B,UAAAP,UAAA11B,EAAA,CAAA,GAAAiQ,QAAAjQ,EAAA,CAAA,GAAA21B,WAAA31B,EAAA,CAAA,GAAA41B,SAAA51B,EAAA,CAAA,GAAA61B,SAAA71B,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAA81B,cAAA91B,EAAA,CAAA,GAAAmpB,UAAAnpB,EAAA,CAAA,GAAAopB,UAAAppB,EAAA,CAAA,GAAAuD,WAAAvD,EAAA,EAAA,GAAA8W,UAAA9W,EAAA,EAAA,GAAAsoB,YAAAtoB,EAAA,EAAA,GAAA0N,SAAA1N,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAA8N,SAAA9N,EAAA,EAAA,GAAA+1B,WAAA/1B,EAAA,EAAA,GAAA/F,QAAA+F,EAAA,EAAA,GAAAM,OAAAN,EAAA,EAAA,GAAA+B,QAAA/B,EAAA,EAAA,GAAAg2B,QAAAh2B,EAAA,EAAA,GAAAi2B,QAAAj2B,EAAA,EAAA;AAET,QAAA;AAAA,IAAAktB;AAAAA,EAAAA,IAAiBc,YAGjBmF,UACQ2C,eAAA9C,yBAKRjK,KAAWiN,SAAA,KAAc7C,QAAO,CAAA,GAChClK,KAAWgN,SAAA,KAAc9C,QAAO,CAAA,GAWhB5yB,KAAAm1B,UAAA,cAAAl6B;AAAiC,MAAAiF;AAAAT,IAAA,EAAA,MAAAmpB,WAAAnpB,EAAA,EAAA,MAAAopB,WAAAppB,UAAA+1B,YAAA/1B,EAAA,EAAA,MAAA/F,SAAA+F,EAAA,EAAA,MAAAO,MAAAP,EAAA,EAAA,MAAA+B,SAAA/B,EAAA,EAAA,MAAA+oB,KAAA/oB,EAAA,EAAA,MAAAipB,KAAAjpB,UAAAktB,UARxCzsB,KAAA;AAAA,IAAA4zB,MACCtL;AAAAA,IAACI;AAAAA,IAAAC;AAAAA,IAAApY,UAGG+kB;AAAAA,IAAQ3D,KACbnJ;AAAAA,IAAClnB;AAAAA,IAAAmrB;AAAAA,IAAAj1B,YAGMsI;AAAAA,IAAiC,GAC1CtG;AAAAA,EAAAA,GACJ+F,QAAAmpB,SAAAnpB,QAAAopB,SAAAppB,QAAA+1B,UAAA/1B,QAAA/F,OAAA+F,QAAAO,IAAAP,QAAA+B,OAAA/B,QAAA+oB,GAAA/oB,QAAAipB,GAAAjpB,QAAAktB,QAAAltB,QAAAS,MAAAA,KAAAT,EAAA,EAAA;AAXH,QAAAm2B,aACS11B,IAgBCI,KAAA+0B,WAAW,OAAXA,SAAAp6B,QACDyF,KAAA40B,WAAW,OAAXA,SAAAr6B;AAAoC,MAAAqU;AAAA7P,IAAA,EAAA,MAAAa,MAAAb,UAAAiB,MAFpC4O,KAAA;AAAA,IAAAwkB,MACCxzB;AAAAA,IAAoCuxB,KACrCnxB;AAAAA,IAAoCqzB,OAClC94B;AAAAA,IAAS+4B,QACR/4B;AAAAA,EAAAA,GACTwE,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AANH,QAAAo2B,aACSvmB,IAYA2D,KAAA/D;AAAoC,MAAAgE;AAAAzT,YAAA01B,WAWhCjiB,KAAAiiB,UAAA,CAAW,UAAU,SAAS,IAA9Bl6B,QAA2CwE,QAAA01B,SAAA11B,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,YAAA01B,WAC3ChiB,KAAAgiB,UAAA,CAAW,WAAW,SAAS,IAA/Bl6B,QAA4CwE,QAAA01B,SAAA11B,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA01B,WAC/C7hB,KAAA6hB,UAAA,CAAW,UAAU,UAAU,IAA/Bl6B,QAA4CwE,QAAA01B,SAAA11B,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,IAAA,EAAA,MAAArH,YAAAqH,UAAA8W,WAUhDhD,KAAA/S,2BAAAA,IAAC,MAAA,EAAe,WAAA,UAAe,MAAA,GAAY+V,mBAE3C,GAAO9W,QAAArH,UAAAqH,QAAA8W,SAAA9W,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,IAAA,EAAA,MAAAuD,YAAAvD,UAAA8T,MAVTC,qCAAC,YAAA,EACS,WAAA,oBACE,WAAA,UACJ,MAAA,GACIxQ,UACA,UAAA1L,qBAAoBc,UAClB,YAAAd,qBAAoBQ,YAEhCyb,UAAAA,GAAAA,CAGF,GAAa9T,QAAAuD,UAAAvD,QAAA8T,IAAA9T,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAgU;AAAAhU,IAAA,EAAA,MAAAiQ,SAAAjQ,UAAA21B,YAAA31B,EAAA,EAAA,MAAAo2B,cAEZpiB,MAAA/D,SACClP,+BAAC,OAAA,EACM40B,KAAAA,UACES,OAAAA,YACAvD,OAAAA,6BACCC,QAAAA,8BACAC,QAAAA,8BAA4B,GAEvC/yB,QAAAiQ,OAAAjQ,QAAA21B,UAAA31B,QAAAo2B,YAAAp2B,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAA,MAAAkU;AAAA,SAAAlU,UAAAsoB,aAAAtoB,EAAA,EAAA,MAAA0N,UAAA1N,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAm2B,cAAAn2B,EAAA,EAAA,MAAAI,UAAAJ,EAAA,EAAA,MAAA8N,UAAA9N,UAAA+T,OAAA/T,EAAA,EAAA,MAAAgU,OAAAhU,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAAyT,MAAAzT,EAAA,EAAA,MAAA0T,MAAA1T,UAAA6T,MAAA7T,EAAA,EAAA,MAAAM,QAtCH4T,sCAACmhB,cAAA,EACS,WAAA,cACH7hB,IACW8U,kBAAAA,WACR5a,QACH4B,KACGlP,QACA0N,QACD,QAAA,UACAqoB,OAAAA,YACD71B,MACI,UAAAzI,qBAAoBC,MAClB,YAAAD,qBAAoBQ,YACvB,SAAAob,IACA,SAAAC,IACH,MAAAG,IAENE,UAAAA;AAAAA,IAAAA;AAAAA,IAaCC;AAAAA,EAAAA,EAAAA,CASH,GAAahU,QAAAsoB,WAAAtoB,QAAA0N,QAAA1N,QAAAsP,KAAAtP,QAAAm2B,YAAAn2B,QAAAI,QAAAJ,QAAA8N,QAAA9N,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAAM,MAAAN,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA,GAvCbkU;AAuCa,CAEhB;AACDuhB,YAAY51B,cAAc;ACxC1B,MAAMw2B,kBAAkBA,MAAA;AAAA,QAAAr2B,IAAAC,uBAAA,CAAA,GACtB;AAAA,IAAAitB;AAAAA,EAAAA,IAAiBc,SAAAA;AAAU,MAAAztB;AAAA,SAAAP,SAAAktB,UAEpB3sB,KAAAQ,+BAAA,SAAY,OAAA;AAAA,IAAA7D,QAAS;AAAA,IAAOo5B,OAAS;AAAA,IAACtlB,UAAY;AAAA,IAAOjP,OAAS;AAAA,IAAOmrB;AAAAA,EAAAA,EAAQ,CAAC,GAAIltB,OAAAktB,QAAAltB,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAAtFO;AAAsF,GAQlFg2B,UAAUlnB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,uBAAA,GAAA,GAKhC;AAAA,IAAA2mB;AAAAA,IAAA4P;AAAAA,EAAAA,IAA2Bj1B,YAAAA,GAC3Bk1B,yBAA+BhL,mBAAAA;AAAoB,MAAAiL,kBAAAC,qBAAAC,mBAAAC,oBAAAC,cAAAC,WAAA/5B,SAAAiP,UAAAmnB,qBAAA4D,OAAAC,MAAAxa,aAAA8S,QAAA2H,kBAAAznB,WAAArP,QAAAG,IAAAE,IAAAsT,KAAAC,KAAAnT,IAAAI,IAAA4O,IAAA2D,IAAAC,IAAAC,IAAAG,IAAAC,IAAAqjB;AAAA,MAAAn3B,SAAAnE,OAAA;AAEnD,UAAA;AAAA,MAAAq6B,oBAAAhiB;AAAAA,MAAAwhB,SAAArhB;AAAAA,MAAApE,OAAA8G;AAAAA,MAAA+G,iBAAA9G;AAAAA,MAAAre,UAAAse;AAAAA,MAAAic,eAAAhc;AAAAA,MAAAla,SAAAma;AAAAA,MAAAlL,UAAAmL;AAAAA,MAAAggB,oBAAA/f;AAAAA,MAAA+b,qBAAA9b;AAAAA,MAAA+f,kBAAA9f;AAAAA,MAAAyf,OAAAxf;AAAAA,MAAA6W;AAAAA,MAAA4I,MAAAxf;AAAAA,MAAAlU,UAAAmU;AAAAA,MAAAZ,SAAAa;AAAAA,MAAA2Q,WAAA1Q;AAAAA,MAAA0f,mBAAAzf;AAAAA,MAAA0X,QAAAzX;AAAAA,MAAAyf,iBAAAxf;AAAAA,MAAArK,QAAA8pB;AAAAA,MAAAC,mBAAAC;AAAAA,MAAAR,kBAAAS;AAAAA,MAAAv3B,QAAAw3B;AAAAA,MAAA9pB,QAAA+pB;AAAAA,MAAAv3B,MAAAw3B;AAAAA,MAAA/1B,OAAAg2B;AAAAA,MAAArL,SAAAsL;AAAAA,MAAAb,WAAAc;AAAAA,MAAA,GAAAC;AAAAA,IAAAA,IAgCIr8B;AAhCJ0E,SAAA2T,MAAAzT,KAAA4T,MAAAxT,KAAAkW,MAAA2f,mBAAA1f,MAAA+f,YAAA9f,MAAAhW,KAAAiW,MAAAla,UAAAma,MAAAlL,WAAAmL,MAAAuf,sBAAAtf,MAAA+b,sBAAA9b,MAAAsf,oBAAArf,MAAAyf,QAAAxf,MAAAyf,OAAAxf,MAAA5H,KAAA6H,MAAA+E,cAAA9E,MAAAnE,KAAAoE,MAAAnE,KAAAoE,MAAA0X,SAAAzX,MAAApE,KAAAqE,MAAAlE,KAAA2jB,MAAAX,qBAAAa,MAAAR,mBAAAS,MAAAv3B,SAAAw3B,MAAA9jB,KAAA+jB,MAAA9jB,MAAA+jB,MAAA9jB,MAAA+jB,MAAAjB,eAAAkB,MAAAb,YAAAc,MAAAxoB,YAAAyoB,MAgCSl4B,OAAAnE,OAAAmE,OAAA02B,kBAAA12B,OAAA22B,qBAAA32B,OAAA42B,mBAAA52B,OAAA62B,oBAAA72B,OAAA82B,cAAA92B,OAAA+2B,WAAA/2B,OAAAhD,SAAAgD,OAAAiM,UAAAjM,OAAAozB,qBAAApzB,QAAAg3B,OAAAh3B,QAAAi3B,MAAAj3B,QAAAyc,aAAAzc,QAAAuvB,QAAAvvB,QAAAk3B,kBAAAl3B,QAAAyP,WAAAzP,QAAAI,QAAAJ,QAAAO,IAAAP,QAAAS,IAAAT,QAAA+T,KAAA/T,QAAAgU,KAAAhU,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAA8T,IAAA9T,QAAAm3B;AAAAA,EAAA;AAAAT,uBAAA12B,EAAA,CAAA,GAAA22B,sBAAA32B,EAAA,CAAA,GAAA42B,oBAAA52B,EAAA,CAAA,GAAA62B,qBAAA72B,EAAA,CAAA,GAAA82B,eAAA92B,EAAA,CAAA,GAAA+2B,YAAA/2B,EAAA,CAAA,GAAAhD,UAAAgD,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAozB,sBAAApzB,EAAA,CAAA,GAAAg3B,QAAAh3B,EAAA,EAAA,GAAAi3B,OAAAj3B,EAAA,EAAA,GAAAyc,cAAAzc,EAAA,EAAA,GAAAuvB,SAAAvvB,EAAA,EAAA,GAAAk3B,mBAAAl3B,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAA+T,MAAA/T,EAAA,EAAA,GAAAgU,MAAAhU,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,GAAA0T,KAAA1T,EAAA,EAAA,GAAA6T,KAAA7T,EAAA,EAAA,GAAA8T,KAAA9T,EAAA,EAAA,GAAAm3B,YAAAn3B,EAAA,EAAA;AA/Ba,QAAAmzB,UAAA5yB,OAAA/E,SAAAw3B,0BAAAzyB,IACX43B,WAAA13B,OAAAjF,SAAA,KAAAiF,IACF23B,YAAAv3B,OAAArF,SAAA,KAAAqF,IAGPqyB,gBAAAjyB,OAAAzF,SAAA,KAAAyF,IAUAsC,WAAAsM,OAAArU,SAAA,WAAAqU,IAEWwoB,gBAAA7kB,OAAAhY,SAAA,WAAAgY,IACX8jB,oBAAA7jB,OAAAjY,SAAA,SAAAiY,IAEA8jB,kBAAA7jB,OAAAlY,SAAA,KAAAkY,IACQgJ,aAAA7I,OAAArY,SAAA,IAAAqY,IAIAykB,aAAAxkB,OAAAtY,SAAA,IAAAsY,IACRxT,OAAAyT,QAAAvY,SAAA,YAAAuY,KACOwkB,YAAAvkB,QAAAxY,SAAA,SAAAwY,KAKT8J,kBAAwB4Y,oBAAoBD,wBAAsBz9B,SAClEo+B,qBACET,uBAAuB1D,8BAA4Bp3B,MAAKysB,aAAL,QAA2B,GAChF+O,mBACET,qBAAqB/6B,MAAKiiB,mBAAoB2Y,uBAAsBz9B,SACtEy+B,oBACEZ,sBAAsBh7B,MAAKiiB,mBAAoB2Y,uBAAsBz9B,SACvE2zB,cAAoBmK,gBAAgBN,MAAKgC,QAAQ9L,SAEjDgJ,UAD6B5S,wBAAAA,IACb,KAAAqV,UAChBM,eAAqBxX,eAAenD,eAAuB,GAACrc;AAAA,MAAAyS;AAAAlU,YAAAyc,eAC5CvI,MAAA7Y,cAAcohB,WAAW,GAACzc,QAAAyc,aAAAzc,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAA1C,QAAA8W,UAAgB5C;AAA0B,MAAAG;AAAArU,YAAA0c,cAC3BrI,MAAAhZ,cAAcqhB,UAAU,GAAC1c,QAAA0c,YAAA1c,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AAAxC,QAAA0N,SAAe2G;AAAyB,MAAA0C;AAAA/W,YAAAs4B,cACzBvhB,MAAA1b,cAAci9B,UAAU,GAACt4B,QAAAs4B,YAAAt4B,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAAxC,QAAA8N,SAAeiJ,KACf2hB,iBAAuBr9B,cAAck9B,SAAS;AAAC,MAAAvhB;AAAAhX,YAAA2sB,eAC/B3V,MAAA3b,cAAcsxB,WAAW,GAAC3sB,QAAA2sB,aAAA3sB,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAA1C,QAAA0sB,UAAgB1V,KAChB1H,MAAYmU,MAAAA,OAA8B,IAAI,GAC9CkS,WAAiBlS,MAAAA,OAA8B,IAAI;AAAC,MAAAxM;AAAAjX,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAG4BwX,MAAAA,MAAM3H,IAAGyP,SAAQ/e,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA,GAAjG0jB,MAAAA,oBAAkEL,cAAcpM,GAAiB;AAEjG,QAAA7b,aAAmBunB,iBACnByS,gBAAsBlC,iBAAAqE,kBAAmCkB,cAAY12B,QAA/CvG,QAKtBuG,QAAcizB,iBAAiB;AAAA,IAAApO;AAAAA,IAAAxrB;AAAAA,IAAA2G,OAGtB22B;AAAAA,EAAAA,CACR,GACDlF,WAAiB/P,MAAAA,OAAO1hB,KAAK;AAAC,MAAAmV,KAAAC;AAAAnX,YAAA+B,SAEpBmV,MAAAA,MAAA;AACRsc,aAAQzU,UAAWhd;AAAAA,EAAH,GACfoV,MAAA,CAACpV,KAAK,GAAC/B,QAAA+B,OAAA/B,QAAAkX,KAAAlX,QAAAmX,QAAAD,MAAAlX,EAAA,EAAA,GAAAmX,MAAAnX,EAAA,EAAA,IAFVuT,gBAAU2D,KAEPC,GAAO;AAAC,MAAAC;AAAApX,IAAA,EAAA,MAAAo1B,iBAAAp1B,UAAA+B,SAKMqV,MAAA+d,aAAa;AAAA,IAAAC;AAAAA,IAAAF,cAA8BnzB;AAAAA,EAAAA,CAAM,GAAC/B,QAAAo1B,eAAAp1B,QAAA+B,OAAA/B,QAAAoX,OAAAA,MAAApX,EAAA,EAAA;AAAnE,QAAA6mB,WAAiBzP,KACjBic,cAAoB5P,MAAAA,OAAOoD,QAAQ;AAAC,MAAAxP,KAAAC;AAAAtX,YAAA6mB,YAE1BxP,MAAAA,MAAA;AACRgc,gBAAWtU,UAAW8H;AAAAA,EAAH,GAClBvP,MAAA,CAACuP,QAAQ,GAAC7mB,QAAA6mB,UAAA7mB,QAAAqX,KAAArX,QAAAsX,QAAAD,MAAArX,EAAA,EAAA,GAAAsX,MAAAtX,EAAA,EAAA,IAFbuT,gBAAU8D,KAEPC,GAAU;AAGb,QAAAgc,oBAA0B7P,MAAAA,OAAejoB,MAAS;AAAC,MAAA+b,KAAAC;AAAAxX,IAAA,EAAA,MAAAozB,uBAAApzB,EAAA,EAAA,MAAA6mB,YAAA7mB,EAAA,EAAA,MAAAi3B,QAAAj3B,UAAA+B,SAGzCwV,MAAAA,MAAA;AACR,UAAAohB,kBAAwBrpB,IAAGyP;AAE3B,QAAI,CAACkY,QAAD,CAAU0B;AAAe;AAE7B,UAAAjE,iBAAuBpB,kBAAiBvU;AAEpCqU,0BACEsB,mBAAmBl5B,WACrBm9B,gBAAe1+B,MAAM8H,QAAS,GAAG2yB,cAAc,QAExC3yB,UAAUvG,WACnBm9B,gBAAe1+B,MAAM8H,QAAS,GAAGA,KAAK,OAGpC,OAAO8kB,YAAa,aACtB8R,gBAAe1+B,MAAM4sB,WAAY,GAAGA,QAAQ;AAAA,EAC7C,GACArP,MAAA,CAACzV,OAAOqxB,qBAAqBvM,UAAUoQ,IAAI,GAACj3B,QAAAozB,qBAAApzB,QAAA6mB,UAAA7mB,QAAAi3B,MAAAj3B,QAAA+B,OAAA/B,QAAAuX,KAAAvX,QAAAwX,QAAAD,MAAAvX,EAAA,EAAA,GAAAwX,MAAAxX,EAAA,EAAA,IAlB/CuT,MAAAA,UAAUgE,KAkBPC,GAA4C;AAE/C,QAAA,CAAAohB,kBAAArF,iBAAA,IAA4CvgB,MAAAA,SAA6BxX,MAAS;AAAC,MAAAic;AAAAzX,IAAA,EAAA,MAAA01B,WAAA11B,EAAA,EAAA,MAAAo4B,aAAAp4B,UAAAkzB,iBAAAlzB,EAAA,EAAA,MAAAo3B,sBAAAp3B,EAAA,EAAA,MAAAq3B,oBAAAr3B,EAAA,EAAA,MAAAmzB,WAAAnzB,EAAA,EAAA,MAAAozB,uBAAApzB,UAAAq4B,iBAAAr4B,EAAA,EAAA,MAAAs3B,qBAAAt3B,EAAA,EAAA,MAAAu3B,mBAAAv3B,UAAAy3B,qBAClDhgB,MAAA;AAAA,IAAAie;AAAAA,IAAA0C;AAAAA,IAAAzC;AAAAA,IAAAzC;AAAAA,IAAAkE;AAAAA,IAAAC;AAAAA,IAAAlE;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAgF;AAAAA,IAAAf;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,IAAAnE;AAAAA,IAAAU,cAxDE;AAAA,IAAUT;AAAAA,IAAAC;AAAAA,EAAAA,GA0E5CxzB,QAAA01B,SAAA11B,QAAAo4B,WAAAp4B,QAAAkzB,eAAAlzB,QAAAo3B,oBAAAp3B,QAAAq3B,kBAAAr3B,QAAAmzB,SAAAnzB,QAAAozB,qBAAApzB,QAAAq4B,eAAAr4B,QAAAs3B,mBAAAt3B,QAAAu3B,iBAAAv3B,QAAAy3B,mBAAAz3B,QAAAyX,OAAAA,MAAAzX,EAAA,EAAA;AAlBD,QAAA64B,aAAmBC,gBAAcrhB,GAkBhC;AAAC,MAAAC;AAAA1X,YAAAk3B,oBAMUxf,MAAAwf,mBAAA;AAAA,IAAAvD,WAEOuD;AAAAA,EAAAA,IAFP17B,QAIGwE,QAAAk3B,kBAAAl3B,QAAA0X,OAAAA,MAAA1X,EAAA,EAAA;AAAA,MAAA2X;AAAA3X,IAAA,EAAA,MAAA64B,cAAA74B,UAAAq4B,iBAAAr4B,EAAA,EAAA,MAAA0X,OAR+DC,MAAA;AAAA,IAAAkhB;AAAAA,IAAAvQ,WAEjE+P;AAAAA,IAAaU,sBACFC,WAAAA;AAAAA,IAAU7a,UACtBzG;AAAAA,EAAAA,GAKX1X,QAAA64B,YAAA74B,QAAAq4B,eAAAr4B,QAAA0X,KAAA1X,QAAA2X,OAAAA,MAAA3X,EAAA,EAAA;AATD,QAAA;AAAA,IAAA+oB;AAAAA,IAAAE;AAAAA,IAAAZ;AAAAA,IAAAC;AAAAA,IAAA2Q;AAAAA,IAAAlD;AAAAA,IAAAmD;AAAAA,EAAAA,IAAkEC,uBAAYxhB,GAS7E,GAEDyhB,kBAAwB/Q,eAAcgR,MAAsBD,iBAE5DxD,SAAevN,eAAcpY,OAAS8Y,GACtC8M,SAAexN,eAAcpY,OAASgZ,GAEtCE,UAAgBd,eAAe,mBAAmB,GAAUc,SAC5DC,UAAgBf,eAAe,mBAAmB,GAAUe;AAAA,MAAAxR;AAAA5X,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAE/BmY,MAAA0hB,CAAAA,YAAA;AAC3B3D,aAAQ5W,UAAWua;AAAAA,EAAH,GACjBt5B,QAAA4X,OAAAA,MAAA5X,EAAA,EAAA;AAFD,QAAAu5B,WAAiB3hB;AAEX,MAAAC;AAAA7X,YAAAi5B,QAGJphB,MAAAze,CAAAA,SAAA;AACEkW,QAAGyP,UAAW3lB,MACd6/B,KAAIO,YAAapgC,IAAI;AAAA,EAAC,GACvB4G,QAAAi5B,MAAAj5B,QAAA6X,OAAAA,MAAA7X,EAAA,EAAA;AAJH,QAAAw5B,cAAoB3hB;AAMnB,MAAAC;AAAA9X,YAAA+2B,aAImBjf,MAAAif,YAAYzE,cAAcyE,SAAgB,IAA1C,MAA2C/2B,QAAA+2B,WAAA/2B,QAAA8X,OAAAA,MAAA9X,EAAA,EAAA;AAAA,MAAA+X;AAAA/X,IAAA,EAAA,MAAAi5B,KAAAtF,UAAA5U,WAAEhH,MAAAA,MAAMkhB,KAAItF,UAAU5U,SAAQ/e,EAAA,EAAA,IAAAi5B,KAAAtF,UAAA5U,SAAA/e,QAAA+X,OAAAA,MAAA/X,EAAA,EAAA,GAA7F0jB,0BAAoB5L,KAA6CC,GAA4B;AAAC,MAAAyf;AAAAh3B,OAAA;AAI5F,QAAI02B,kBAAgB;AAAEM,YAAOT;AAAP,YAAAv2B;AAAAA,IAAgB;AAEtC,QAAI,CAACu2B,WAAS;AAAES,YAAO;AAAP,YAAAh3B;AAAAA,IAAW;AAAA,QAAAk3B;AAAA13B,cAAA+2B,aAAA/2B,EAAA,EAAA,MAAAi5B,KAAAQ,gBAEpB/B,OAAA3hB,MAAAA,aAAaghB,WAAW;AAAA,MAAAznB,KAAM2pB,KAAIQ;AAAAA,IAAAA,CAAc,GAACz5B,QAAA+2B,WAAA/2B,EAAA,EAAA,IAAAi5B,KAAAQ,cAAAz5B,QAAA03B,QAAAA,OAAA13B,EAAA,EAAA,GAAxDw3B,MAAOE;AAAAA,EAAiD;AAN1D,QAAA7hB,QAAc2hB;AAOsC,MAAAE,KAAAC;AAIpD,MAJoD33B,UAAAk5B,UAErBxB,MAAAA,MAAMwB,QAAQvB,MAAA,CAACuB,MAAM,GAACl5B,QAAAk5B,QAAAl5B,QAAA03B,KAAA13B,QAAA23B,QAAAD,MAAA13B,EAAA,EAAA,GAAA23B,MAAA33B,EAAA,EAAA,IAArD0jB,0BAAoByT,WAAWO,KAAcC,GAAQ,GAEjD1rB,UAAQ;AAAA,QAAA2rB;AAAA,WAAA53B,UAAA+2B,aACHa,OAAAb,mEAAA,GAAkB/2B,QAAA+2B,WAAA/2B,QAAA43B,QAAAA,OAAA53B,EAAA,EAAA,GAAlB43B;AAAAA,EAAkB;AAC1B,MAAAA;AAAA53B,YAAAg3B,SAKIY,MAAAZ,wCAAU,iBAAA,EAAe,GAAGh3B,QAAAg3B,OAAAh3B,QAAA43B,OAAAA,MAAA53B,EAAA,EAAA;AAsBpB,QAAA63B,MAAAzE,sBAAAwF,mBAAA72B;AAA4C,MAAA+1B;AAAA93B,IAAA,EAAA,MAAA01B,WAAA11B,EAAA,EAAA,MAAAo4B,aAAAp4B,EAAA,EAAA,MAAA41B,UAAA51B,EAAA,EAAA,MAAA61B,UAAA71B,UAAAhD,WAAAgD,EAAA,EAAA,MAAAmzB,WAAAnzB,UAAAmpB,WAAAnpB,EAAA,EAAA,MAAAopB,WAAAppB,EAAA,EAAA,MAAAuD,YAAAvD,UAAA8W,WAAA9W,EAAA,EAAA,MAAAsoB,aAAAtoB,WAAA0N,UAAA1N,EAAA,GAAA,MAAAo5B,mBAAAp5B,EAAA,GAAA,MAAAyP,aAAAzP,EAAA,GAAA,MAAAI,UAAAJ,EAAA,GAAA,MAAAw5B,eAAAx5B,EAAA,GAAA,MAAA8N,UAAA9N,EAAA,GAAA,MAAA+1B,YAAA/1B,WAAA63B,OAAA73B,EAAA,GAAA,MAAAM,QAAAN,EAAA,GAAA,MAAA+oB,KAAA/oB,WAAAipB,KApBrD6O,MAAA/2B,2BAAAA,IAAC,aAAA,EAAW,GACN0O,WACgB0jB,oBAAAA,SACXuC,SACF0C,OAAAA,WACGmB,UAAAA,UACF3D,QACAC,QACAuD,QAAAA,iBACE71B,UACDuT,SACEwR,WACH5a,QACH8rB,KAAAA,aACGp5B,QACA0N,QACCqb,SACAC,SACC2M,UACJz1B,MACC,OAAAu3B,KACJ9O,GACAE,GAEFjsB,UAAAA,QAAAA,CACH,GAAcgD,QAAA01B,SAAA11B,QAAAo4B,WAAAp4B,QAAA41B,QAAA51B,QAAA61B,QAAA71B,QAAAhD,SAAAgD,QAAAmzB,SAAAnzB,QAAAmpB,SAAAnpB,QAAAopB,SAAAppB,QAAAuD,UAAAvD,QAAA8W,SAAA9W,QAAAsoB,WAAAtoB,SAAA0N,QAAA1N,SAAAo5B,iBAAAp5B,SAAAyP,WAAAzP,SAAAI,QAAAJ,SAAAw5B,aAAAx5B,SAAA8N,QAAA9N,SAAA+1B,UAAA/1B,SAAA63B,KAAA73B,SAAAM,MAAAN,SAAA+oB,GAAA/oB,SAAAipB,GAAAjpB,SAAA83B,OAAAA,MAAA93B,EAAA,GAAA;AAAA,MAAA+3B;AAAA/3B,IAAA,GAAA,MAAA43B,OAAA53B,WAAA83B,OAAA93B,EAAA,GAAA,MAAA0sB,WA7BhBqL,sCAAC,iBAAuBrL,SAErBkL,UAAAA;AAAAA,IAAAA;AAAAA,IAEDE;AAAAA,EAAAA,GA0BF,GAAgB93B,SAAA43B,KAAA53B,SAAA83B,KAAA93B,SAAA0sB,SAAA1sB,SAAA+3B,OAAAA,MAAA/3B,EAAA,GAAA;AA/BlB,QAAAw4B,UACET;AA+BD,MAAAC;AAAAh4B,IAAA,GAAA,MAAAi3B,QAAAj3B,WAAAw4B,WAAAx4B,EAAA,GAAA,MAAAuvB,UAGCyI,MAAAf,SACC1H,SACCxuB,2BAAAA,IAAC,UAAwB,iBAAA,OAAOwuB,UAAW,WAAlBA,SAAA/zB,QAAkDg9B,UAAAA,QAAAA,CAAQ,IADpFA,UAICx4B,SAAAi3B,MAAAj3B,SAAAw4B,SAAAx4B,SAAAuvB,QAAAvvB,SAAAg4B,OAAAA,MAAAh4B,EAAA,GAAA;AANJ,QAAArH,WACEq/B;AAKE,MAAAC;AAAAj4B,IAAA,GAAA,MAAA01B,WAAA11B,WAAArH,YAKCs/B,MAAAvC,UAAU30B,2BAAAA,IAAC24B,QAAAA,iBAAA,EAAiB/gC,SAAAA,CAAS,IAArCA,UAAkEqH,SAAA01B,SAAA11B,SAAArH,UAAAqH,SAAAi4B,OAAAA,MAAAj4B,EAAA,GAAA;AAAA,MAAAk4B;AAAA,SAAAl4B,EAAA,GAAA,MAAA6V,SAAA7V,WAAAi4B,OAFrEC,6DAEGD,UAAAA;AAAAA,IAAAA;AAAAA,IAGApiB;AAAAA,EAAAA,EAAAA,CAAK,GACL7V,SAAA6V,OAAA7V,SAAAi4B,KAAAj4B,SAAAk4B,OAAAA,MAAAl4B,EAAA,GAAA,GANHk4B;AAMG,CAEN;AACD3B,QAAQ12B,cAAc;AAEtB,SAAAi5B,gBAAAv4B,IAAA;AAAA,QAAAP,IAAAC,uBAAA,EAAA,GAAuB;AAAA,IAAAy1B;AAAAA,IAAA0C;AAAAA,IAAAzC;AAAAA,IAAAzC;AAAAA,IAAAkE;AAAAA,IAAAC;AAAAA,IAAAlE;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAgF;AAAAA,IAAAf;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,IAAAnE;AAAAA,IAAAU;AAAAA,IAAAT;AAAAA,IAAAC;AAAAA,EAAAA,IAAAjzB;AAoCtB,MAAAurB;AAAA,MAAA9rB,EAAA,CAAA,MAAA01B,WAAA11B,EAAA,CAAA,MAAAo4B,aAAAp4B,EAAA,CAAA,MAAA21B,YAAA31B,EAAA,CAAA,MAAAkzB,iBAAAlzB,EAAA,CAAA,MAAAo3B,sBAAAp3B,SAAAq3B,oBAAAr3B,EAAA,CAAA,MAAAmzB,WAAAnzB,EAAA,CAAA,MAAAozB,uBAAApzB,EAAA,CAAA,MAAAqzB,eAAArzB,EAAA,CAAA,MAAAq4B,iBAAAr4B,EAAA,EAAA,MAAAs3B,qBAAAt3B,EAAA,EAAA,MAAAu3B,mBAAAv3B,EAAA,EAAA,MAAAy3B,qBAAAz3B,EAAA,EAAA,MAAAszB,qBAAAtzB,EAAA,EAAA,MAAAg0B,gBAAAh0B,EAAA,EAAA,MAAAuzB,qBAAAvzB,UAAAwzB,UAAA;AAKG,QAHA1H,MAA0B,IAGtBoH,iBAAAqE;AACF,UAAID,sBAAsB,iBAAe;AAAA,YAAA72B;AAAAT,UAAA,EAAA,MAAAo3B,sBAAAp3B,UAAAq4B,iBAErC53B,MAAAk5B,yBAAc;AAAA,UAAAC,mBACO,CAACvB,aAAa,EAACwB,OAAQzC,kBAAkB;AAAA,QAAA,CAC7D,GAACp3B,QAAAo3B,oBAAAp3B,QAAAq4B,eAAAr4B,QAAAS,OAAAA,MAAAT,EAAA,EAAA,GAHJ8rB,IAAGjL,KACDpgB,GAGF;AAAA,MAAC,OAAA;AAIa,cAAAA,MAAA42B,oBAAA77B;AAA6B,YAAAqF;AAAAb,UAAA,EAAA,MAAAo3B,sBAAAp3B,UAAAg0B,gBAAAh0B,EAAA,EAAA,MAAAS,OADzCI,MAAAi5B,WAAAA,KAAK;AAAA,UAAAhG,UACOrzB;AAAAA,UAA6B22B;AAAAA,UAAAtgB,SAE9B8b;AAAAA,UAAuBoB;AAAAA,QAAAA,CAEjC,GAACh0B,QAAAo3B,oBAAAp3B,QAAAg0B,cAAAh0B,QAAAS,KAAAT,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GANJ8rB,IAAGjL,KACDhgB,GAMF;AAAA,MAAC;AAEJ,QAAAJ;AAMD,QANCT,EAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGQgB,KAAA8E,kBAAO;AAAA,MAAAw0B,UAAWpH;AAAAA,IAAAA,CAAyB,GAAC3yB,QAAAS,MAAAA,KAAAT,EAAA,EAAA,GAArD8rB,IAAGjL,KAAMpgB,EAA4C,GAGjDyyB,iBAAAE,qBAAoC;AAGjB,YAAAvyB,MAAAw2B,oBAAA77B;AAA6B,UAAAyF;AAAAjB,QAAA,EAAA,MAAAkzB,iBAAAlzB,EAAA,EAAA,MAAAmzB,WAAAnzB,EAAA,EAAA,MAAAozB,uBAAApzB,EAAA,EAAA,MAAAqzB,eAAArzB,EAAA,EAAA,MAAAszB,qBAAAtzB,EAAA,EAAA,MAAAuzB,qBAAAvzB,EAAA,EAAA,MAAAa,OAAAb,UAAAwzB,YADhDvyB,MAAAxD,KAAK;AAAA,QAAAqgB,iBACcjd;AAAAA,QAA6BqyB;AAAAA,QAAAC;AAAAA,QAAAC;AAAAA,QAAAC;AAAAA,QAAAvc,SAKrC8b;AAAAA,QAAuBU;AAAAA,QAAAC;AAAAA,QAAAC;AAAAA,MAAAA,CAIjC,GAACxzB,QAAAkzB,eAAAlzB,QAAAmzB,SAAAnzB,QAAAozB,qBAAApzB,QAAAqzB,aAAArzB,QAAAszB,mBAAAtzB,QAAAuzB,mBAAAvzB,QAAAa,KAAAb,QAAAwzB,UAAAxzB,QAAAiB,OAAAA,MAAAjB,EAAA,EAAA,GAXJ8rB,IAAGjL,KACD5f,GAWF;AAAA,IAAC;AAIH,QAAIs2B,iBAAe;AAGH,YAAA12B,MAAAw2B,oBAAA77B;AAA6B,UAAAyF;AAAAjB,QAAA,EAAA,MAAAg0B,gBAAAh0B,UAAAa,OADzCI,MAAA6nB,iBAAM;AAAA,QAAAgL,UACMjzB;AAAAA,QAA6BmzB;AAAAA,QAAAld,SAE9B8b;AAAAA,MAAAA,CACV,GAAC5yB,QAAAg0B,cAAAh0B,QAAAa,KAAAb,QAAAiB,OAAAA,MAAAjB,EAAA,EAAA,GALJ8rB,IAAGjL,KACD5f,GAKF;AAAA,IAAC;AAIH,QAAIm3B,WAAS;AAAA,UAAAv3B;AAAAb,gBAAA21B,YAET90B,MAAAoP,WAAAA,MAAM;AAAA,QAAAjX,SACK28B;AAAAA,QAAQ7e,SACR8b;AAAAA,MAAAA,CACV,GAAC5yB,QAAA21B,UAAA31B,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GAJJ8rB,IAAGjL,KACDhgB,GAIF;AAAA,IAAC;AAKC60B,eACF5J,IAAGjL,KAAMqH,MAAM;AAKH,UAAArnB,KAAA42B,qBAAAj8B;AAA8B,QAAAyF;AAAAjB,cAAAa,MAD1CI,KAAAo4B,WAAAA,KAAK;AAAA,MAAAvF,UACOjzB;AAAAA,MAA8BiW,SAC/B8b;AAAAA,MAAuBmD,UACtB;AAAA,IAAA,CACX,GAAC/1B,QAAAa,IAAAb,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GALJ8rB,IAAGjL,KACD5f,EAKF,GAACjB,OAAA01B,SAAA11B,OAAAo4B,WAAAp4B,OAAA21B,UAAA31B,OAAAkzB,eAAAlzB,OAAAo3B,oBAAAp3B,OAAAq3B,kBAAAr3B,OAAAmzB,SAAAnzB,OAAAozB,qBAAApzB,OAAAqzB,aAAArzB,OAAAq4B,eAAAr4B,QAAAs3B,mBAAAt3B,QAAAu3B,iBAAAv3B,QAAAy3B,mBAAAz3B,QAAAszB,mBAAAtzB,QAAAg0B,cAAAh0B,QAAAuzB,mBAAAvzB,QAAAwzB,UAAAxzB,QAAA8rB;AAAAA,EAAA;AAAAA,UAAA9rB,EAAA,EAAA;AAAA,SAED8rB;AAAU;ACpeP,SAASkO,iBAAyC;AACvD,SAAOzuB,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAWT;AAEO,SAAS0uB,kBAAkBp+B,OAA2C;AAC3E,QAAM;AAAA,IAACqJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAAS1P,kBAAYL,MAAMD,KAAK,GACxCs+B,QAAQtuB,MAAMuuB,MAAM18B,OAAOmO,MAAMuuB,MAAMC,YAAY;AAEzD,SAAO7uB,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,qBAYY3Q,IAAIgR,MAAMuuB,MAAM18B,OAAO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAO9B7C,IAAIgR,MAAMuuB,MAAM18B,IAAI,CAAC;AAAA,eACtB7C,IAAIgR,MAAMuuB,MAAM18B,IAAI,CAAC;AAAA,uBACb7C,IAAIgR,MAAMuuB,MAAM18B,OAAO,CAAC,CAAC;AAAA,oBAC5ByH,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA,oBAC9BT,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,eAKOnH,IAAIs/B,IAAI,CAAC;AAAA,gBACRt/B,IAAIs/B,IAAI,CAAC;AAAA,kBACPt/B,IAAIgR,MAAMuuB,MAAMC,QAAQ,CAAC;AAAA,iBAC1Bx/B,IAAIgR,MAAMuuB,MAAMC,QAAQ,CAAC;AAAA,yBACjBx/B,IAAIgR,MAAMuuB,MAAMC,WAAW,CAAC,CAAC;AAAA,sBAChCl1B,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAOhC5G,eAAe;AAAA,IAC3B1D,QAAQ;AAAA,MAACM,OAAO6J,MAAMnK,OAAOM;AAAAA,MAAOmD,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IAAAA;AAAAA,IACvE4D,WAAWuG,MAAMuuB,MAAM90B;AAAAA,EAAAA,CACxB,CAAC;AAAA;AAAA;AAAA;AAAA,oBAIYJ,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BASkBmD,MAAM0G,MAAMM,QAAQJ,QAAQrK,MAAM;AAAA,oBACxCwD,qBAAqB;AAAA,IACjClD,OAAO6J,MAAMnK,OAAOM;AAAAA,IACpBmD,OAAOA,MAAM0G,MAAMM,QAAQJ,QAAQ8D,MAAMlK;AAAAA,EAAAA,CAC1C,CAAC;AAAA;AAAA,sBAEcR,MAAM0G,MAAMM,QAAQJ,QAAQ8D,MAAMlK,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAM5BR,MAAM0G,MAAMC,QAAQM,SAAS1K,MAAM;AAAA,oBAC7CyD,MAAM0G,MAAMC,QAAQM,SAASzG,EAAE;AAAA;AAAA;AAAA,sBAG7BR,MAAM0G,MAAMC,QAAQM,SAAS1K,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAM3ByD,MAAM0G,MAAMC,QAAQI,SAASxK,MAAM;AAAA,oBAC7CyD,MAAM0G,MAAMC,QAAQI,SAASvG,EAAE;AAAA;AAAA;AAAA,sBAG7BR,MAAM0G,MAAMC,QAAQI,SAASxK,MAAM;AAAA;AAAA;AAAA;AAIzD;ACvGA,MAAM44B,cAAc3rB,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACmrB,cAAc,GACvC7W,UAAQzU,iCAAAA,OAAO9C,MAAKgD,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACorB,iBAAiB,GAO/BK,QAAQjrB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAsjB,WAAAzE,gBAAA7S,UAAAE,UAAAsD,WAAAxV;AAAA+F,WAAAnE,SAI9B;AAAA,IAAA0nB;AAAAA,IAAAtX;AAAAA,IAAAhS;AAAAA,IAAA6kB;AAAAA,IAAA3S;AAAAA,IAAA,GAAAsD;AAAAA,EAAAA,IAA6E5T,OAAKmE,OAAAnE,OAAAmE,OAAAujB,WAAAvjB,OAAA8e,gBAAA9e,OAAAiM,UAAAjM,OAAAmM,UAAAnM,OAAAyP,WAAAzP,OAAA/F,UAAAspB,YAAAvjB,EAAA,CAAA,GAAA8e,iBAAA9e,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAmM,WAAAnM,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAA/F,QAAA+F,EAAA,CAAA;AAClF,QAAAsP,MAAYmU,MAAAA,OAAgC,IAAI;AAAC,MAAAljB;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI/Cc,KAAAA,MAAM+O,IAAGyP,SAAQ/e,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFnB0jB,MAAAA,oBACEL,cACA9iB,EACF,GAEAse,kBAAkBvP,KAAKwP,cAAc;AAKf,QAAAre,MAACwL,YAADE,WAAA,KAAA3Q,QACJqF,KAAAie,iBAAA,KAAAtjB,QAEFyF,KAAAgL,YAAAE;AAAoB,MAAA0D;AAAA7P,IAAA,CAAA,MAAAmM,YAAAnM,EAAA,CAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAS,MAAAT,EAAA,EAAA,MAAAa,MAAAb,UAAAiB,MAJhC4O,oCAACsT,SAAA,EACiB,kBAAA1iB,IACJ,cAAAI,IAA+B,GACvC4O,WACM,UAAAxO,IACAkL,UACLmD,KACA,MAAA,SAAO,GACZtP,OAAAmM,UAAAnM,OAAAyP,WAAAzP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACF+T,KAAAzS,2BAAAA,IAAA,QAAA,CAAA,CAAQ,GAAAf,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAAyT;AAAA,SAAAzT,EAAA,EAAA,MAAAujB,aAAAvjB,UAAA/F,SAAA+F,EAAA,EAAA,MAAA6P,MAVV4D,KAAAQ,2BAAAA,KAAC,eAAuBsP,WAAmB,WAAA,SAAetpB,OACxD4V,UAAAA;AAAAA,IAAAA;AAAAA,IASA2D;AAAAA,EAAAA,GACF,GAAcxT,QAAAujB,WAAAvjB,QAAA/F,OAAA+F,QAAA6P,IAAA7P,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GAXdyT;AAWc,CAEjB;AACD6mB,MAAMz6B,cAAc;ACtCpB,SAASs2B,YAAoC;AAC3C,SAAO5qB,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAUT;AAEA,SAASgvB,eAAe1+B,OAA2C;AACjE,QAAM;AAAA,IAACW;AAAAA,EAAAA,IAAQN,MAAAA,YAAYL,MAAMD,KAAK;AAEtC,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAIU/O,KAAKoO,KAAKnO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUnC;AAEA,SAAS+9B,gBAAgB3+B,OAAmB;AAC1C,QAAM;AAAA,IAACqJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAAS1P,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAO2P,iBAAAA;AAAAA;AAAAA,wBAEerG,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA,aACzCR,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA,kBACzB9G,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKsBmD,MAAM0G,MAAMC,QAAQY,QAAQ/G,EAAE;AAAA,iBACzCR,MAAM0G,MAAMC,QAAQY,QAAQV,EAAE;AAAA,sBACzB9G,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQY,QAAQhL;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMUoD,eAAe;AAAA,IAC3B1D,QAAQ;AAAA,MAACM,OAAO6J,MAAMnK,OAAOM;AAAAA,MAAOmD,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IAAAA;AAAAA,IACvE4D,WAAWuG,MAAM6uB,OAAOp1B;AAAAA,EAAAA,CACzB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,0BAKkBH,MAAM0G,MAAMC,QAAQM,SAASzG,EAAE;AAAA,eAC1CR,MAAM0G,MAAMC,QAAQM,SAASJ,EAAE;AAAA,oBAC1B9G,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQM,SAAS1K;AAAAA,IACpCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,0BAKkBmD,MAAM0G,MAAMC,QAAQI,SAASvG,EAAE;AAAA,eAC1CR,MAAM0G,MAAMC,QAAQI,SAASF,EAAE;AAAA,oBAC1B9G,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQI,SAASxK;AAAAA,IACpCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA;AAAA;AAGR;AAEA,SAAS24B,SAASj9B,OAAqB;AACrC,SAAO;AAAA,IAACD,UAAU5C,IAAI6C,MAAKD,QAAQ;AAAA,IAAGM,YAAY,GAAGlD,IAAI6C,MAAKK,UAAU,CAAC;AAAA,EAAA;AAC3E;AAEA,SAAS68B,mBAAmB9+B,OAA2C;AACrE,QAAM;AAAA,IAACoO;AAAAA,EAAAA,IAAapO,OACd;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,MAAAA,YAAYL,MAAMD,KAAK;AAE7C,SAAOd,YAAYC,OAAOkP,WAAY1M,CAAAA,cACpCm9B,SAASl+B,KAAKoO,KAAKlO,MAAMa,SAAS,KAAKf,KAAKoO,KAAKlO,MAAM,CAAC,CAAC,CAC3D;AACF;AAEA,SAASk+B,aASP;AACA,SAAO,CACLntB,uBACA8sB,gBACAC,iBACAG,oBACAtvB,oCAAoC;AAExC;AAEA,SAASwvB,aAAah/B,OAA2C;AAC/D,QAAM;AAAA,IAACqJ;AAAAA,EAAAA,IAAShJ,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,uBAOcrG,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,2BAK1B7G,MAAM0G,MAAMC,QAAQY,QAAQV,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAMhC7G,MAAM0G,MAAMC,QAAQI,SAASF,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,yBAK/B7G,MAAM0G,MAAMC,QAAQM,SAASJ,EAAE;AAAA;AAAA;AAGxD;AAEO,MAAM+uB,cAAc;AAAA,EACzB15B,MAAM+0B;AAAAA,EACNvqB,OAAOgvB;AAAAA,EACPG,SAASF;AACX,GC3IMG,eAAetsB,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACisB,YAAY15B,IAAI,GAE1C+hB,UAAQzU,iCAAAA,OAAO+rB,OAAM7rB,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAKxBisB,YAAYlvB,KAAK,GAEdqvB,UAAUvsB,wCAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACisB,YAAYC,OAAO,GAOlCG,SAAS7rB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAtH,UAAAmmB,gBAAA7S,UAAA1H,KAAA4H,UAAAsD,WAAAlP,IAAAE,IAAAI,IAAAI;AAAAjB,WAAAnE,SAI/B;AAAA,IAAAlD;AAAAA,IAAAmmB;AAAAA,IAAA7S;AAAAA,IAAAzO,UAAA+C;AAAAA,IAAAgE;AAAAA,IAAAuS,SAAArW;AAAAA,IAAAiN,QAAA7M;AAAAA,IAAAsL;AAAAA,IAAAlQ,OAAAgF;AAAAA,IAAA,GAAAwO;AAAAA,EAAAA,IAWI5T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAA8e,gBAAA9e,OAAAiM,UAAAjM,OAAAuE,KAAAvE,OAAAmM,UAAAnM,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,QAAAiB,OAAAtI,WAAAqH,EAAA,CAAA,GAAA8e,iBAAA9e,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAAmM,WAAAnM,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAiB,KAAAjB,EAAA,EAAA;AAPP,QAAAxC,YAAA+C,OAAA/E,SAAA,IAAA+E,IAEAuW,UAAArW,OAAAjF,SAAA,IAAAiF,IACAiN,SAAA7M,OAAArF,SAAA,IAAAqF,IAKF+b,UAAgBrY,QAAQ/I,SAHfyF,OAAAzF,SAAA,IAAAyF,KAGOsD,KAEhB+K,MAAYmU,MAAAA,OAAiC,IAAI;AAAC,MAAA5T;AAAA7P,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAIhDoQ,KAAAA,MAAMP,IAAGyP,SAAQ/e,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA,GAFnB0jB,MAAAA,oBACEL,cACAxT,EACF,GAEAgP,kBAAkBvP,KAAKwP,cAAc;AAKf,QAAAtL,MAACvH,YAADE,WAAA,KAAA3Q;AAAsC,MAAAiY;AAAAzT,YAAAxC,aAG3CiW,KAAApY,cAAcmC,SAAQ,GAACwC,QAAAxC,WAAAwC,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,YAAA8W,WACxBpD,KAAArY,cAAcyb,OAAO,GAAC9W,QAAA8W,SAAA9W,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA0N,UACvBmG,KAAAxY,cAAcqS,MAAM,GAAC1N,QAAA0N,QAAA1N,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,YAAA4c,WACtB9I,KAAAzY,cAAcuhB,OAAO,GAAC5c,QAAA4c,SAAA5c,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AACpB,QAAA+T,MAAA9H,YAAAE;AAAoB,MAAA6H;AAAAhU,IAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAA+T,OAAA/T,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAAyT,MAAAzT,EAAA,EAAA,MAAA0T,MAAA1T,EAAA,EAAA,MAAA6T,MAAA7T,UAAA8T,MARhCE,MAAAjT,2BAAAA,IAACoiB,WACiB,kBAAA3P,IACR,WAAA,aACJ/D,WACO,WAAAgE,IACD,UAAAC,IACD,SAAAG,IACD,QAAAC,IACE,UAAAC,KACLzE,KAEJ3W,UACH,GAAQqH,QAAArH,UAAAqH,QAAAyP,WAAAzP,QAAA+T,KAAA/T,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAA8T,IAAA9T,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAA,MAAAkU;AAAAlU,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAIJyU,MAAAnT,2BAAAA,IAACo6B,MAAAA,iBAAA,CAAA,CAAe,GAAGn7B,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAAA,MAAAqU;AAAArU,YAAAxC,aADrB6W,MAAAtT,+BAAC,MAAA,EAAWvD,MAAAA,WACV0W,UAAAA,KACF,GAAOlU,QAAAxC,WAAAwC,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AAAA,MAAA+W;AAAA/W,IAAA,EAAA,MAAA8W,WAAA9W,UAAAqU,OAHT0C,MAAAhW,2BAAAA,IAAC,SAAA,EAAiB+V,SAChBzC,UAAAA,IAAAA,CAGF,GAAUrU,QAAA8W,SAAA9W,QAAAqU,KAAArU,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAAA,MAAAgX;AAAA,SAAAhX,EAAA,EAAA,MAAAgU,OAAAhU,UAAA+W,OAnBZC,MAAA/C,2BAAAA,KAAC,cAAA,EAAqB,WAAA,UACpBD,UAAAA;AAAAA,IAAAA;AAAAA,IAcA+C;AAAAA,EAAAA,EAAAA,CAKF,GAAe/W,QAAAgU,KAAAhU,QAAA+W,KAAA/W,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA,GApBfgX;AAoBe,CAElB;AACDkkB,OAAOr7B,cAAc;ACrFrB,MAAMwC,aAAwB;AAAA,EAC5B,oBAAoB;AAAA,IAClBpF,SAAS;AAAA,EAAA;AAAA,EAEX,mCAAmC;AAAA,IACjCqF,WAAW;AAAA,EAAA;AAAA,EAEb,qBAAuB;AAAA,EACvB,cAAgB;AAClB;AAEO,SAAS84B,iBAA4B;AAC1C,SAAO/4B;AACT;AAEO,SAASg5B,0BACdx/B,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMwO,QAASlO,CAAAA,gBAAgB;AAAA,IACvDsN,SAAS7O,IAAIqB,MAAME,UAAU,CAAC;AAAA,EAAA,EAC9B;AACJ;ACPA,MAAMm/B,cAAc5sB,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC7BusB,gBACAC,yBAAyB,GAGrBE,iBAAiBlsB,iBAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAoS,IAAAsK,kBAAApY,KAAAkL;AAAAzP,WAAAnE,SAIhC;AAAA,IAAAwW;AAAAA,IAAA9N;AAAAA,IAAAtI,OAAA0gB;AAAAA,IAAA,GAAAlN;AAAAA,EAAAA,IAAyD5T,OAAKmE,OAAAnE,OAAAmE,OAAAqS,IAAArS,OAAA2c,kBAAA3c,OAAAuE,KAAAvE,OAAAyP,cAAA4C,KAAArS,EAAA,CAAA,GAAA2c,mBAAA3c,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA;AAC9D,QAAA4c,UAAgBrY,QAAQ/I,SAARmhB,mBAAApY,KAIHhE,YAAO8R,MAAO,WAAdA,KAAA7W;AAAuC,MAAAiF;AAAAT,WAAA4c,WAGxCnc,KAAApF,cAAcuhB,OAAO,GAAC5c,OAAA4c,SAAA5c,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAqS,MAAArS,EAAA,CAAA,MAAAsP,OAAAtP,EAAA,CAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAO,MAAAP,UAAAS,MAJhCI,KAAAE,2BAAAA,IAAC,aAAA,EACU,WAAAR,IACD,WAAA,YACJkP,WACI,QAAAhP,IACK4R,aAAAA,IACR/C,IAAAA,CAAG,GACRtP,OAAAqS,IAAArS,OAAAsP,KAAAtP,OAAAyP,WAAAzP,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAPFa;AAOE,CAEL;AACD06B,eAAe17B,cAAc;AAOtB,MAAM27B,QAAQD;AC/Cd,SAASE,mBAA2C;AACzD,SAAOlwB,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAMT;AAGO,SAASmwB,oBAA4C;AAE1D,SAAOnwB,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAgBT;AAGO,SAASowB,2BAA2B9/B,OAA2C;AACpF,QAAM;AAAA,IAACqJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAAS1P,MAAAA,YAAYL,MAAMD,KAAK;AAE9C,SAAO2P,iBAAAA;AAAAA,yBACgBrG,MAAM0G,MAAMC,QAAQC,QAAQrK,MAAM;AAAA,yBAClCyD,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO1C9K,IAAIgR,MAAMgwB,OAAO75B,KAAK,CAAC;AAAA,cACtBnH,IAAIgR,MAAMgwB,OAAO1+B,MAAM,CAAC;AAAA,qBACjBtC,IAAIgR,MAAMgwB,OAAO1+B,SAAS,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAoBpBiI,eAAe;AAAA,IAACE,WAAWuG,MAAMgwB,OAAOv2B;AAAAA,EAAAA,CAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAQrDH,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA,2BAC9B7G,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,6BAK5BR,MAAM0G,MAAMC,QAAQY,QAAQhL,MAAM;AAAA,6BAClCyD,MAAM0G,MAAMC,QAAQY,QAAQ/G,EAAE;AAAA;AAAA;AAAA;AAAA,6BAI9BR,MAAM0G,MAAMC,QAAQC,QAAQC,EAAE;AAAA,6BAC9B7G,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,2BAKhCR,MAAM0G,MAAMC,QAAQI,SAASxK,MAAM;AAAA,2BACnCyD,MAAM0G,MAAMC,QAAQI,SAASvG,EAAE;AAAA;AAAA;AAAA;AAAA,2BAI/BR,MAAM0G,MAAMC,QAAQM,SAAS1K,MAAM;AAAA,2BACnCyD,MAAM0G,MAAMC,QAAQM,SAASzG,EAAE;AAAA;AAAA;AAAA;AAAA,2BAI/BR,MAAM0G,MAAMC,QAAQM,SAASJ,EAAE;AAAA,2BAC/B7G,MAAM0G,MAAMC,QAAQM,SAASzG,EAAE;AAAA;AAAA;AAG1D;AAGO,SAASm2B,kBAAkBhgC,OAA2C;AAC3E,QAAM;AAAA,IAAC+P;AAAAA,EAAAA,IAAS1P,MAAAA,YAAYL,MAAMD,KAAK;AAEvC,SAAO2P,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,aAQI3Q,IAAIgR,MAAMgwB,OAAO75B,KAAK,CAAC;AAAA,cACtBnH,IAAIgR,MAAMgwB,OAAO1+B,MAAM,CAAC;AAAA,qBACjBtC,IAAIgR,MAAMgwB,OAAO1+B,SAAS,CAAC,CAAC;AAAA;AAEjD;AAGO,SAAS4+B,kBACdjgC,OACwB;AACxB,QAAM;AAAA,IAACkgC;AAAAA,EAAAA,IAAkBlgC,OACnB;AAAA,IAAC+P;AAAAA,EAAAA,IAAS1P,MAAAA,YAAYL,MAAMD,KAAK,GACjCogC,aAAapwB,MAAMgwB,OAAO75B,OAC1Bk6B,cAAcrwB,MAAMgwB,OAAO1+B,QAC3Bg/B,eAAetwB,MAAMgwB,OAAO9kB,SAC5BrZ,QAAOw+B,cAAcrwB,MAAMgwB,OAAO9kB,UAAU,GAC5CqlB,gBAAgBH,aAAaE,eAAe,IAAIz+B,OAChD2+B,sBAAsBJ,aAAa,IAAIv+B,QAAO,IAAIy+B,cAClD5Y,UAAUyY,mBAAmB,MAAQlgC,MAAMwgC,aAAa;AAE9D,SAAO9wB,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAKG3Q,IAAIshC,YAAY,CAAC;AAAA,WAClBthC,IAAIshC,YAAY,CAAC;AAAA,cACdthC,IAAI6C,KAAI,CAAC;AAAA,aACV7C,IAAI6C,KAAI,CAAC;AAAA,qBACD7C,IAAI6C,QAAO,CAAC,CAAC;AAAA;AAAA,2BAEPmO,MAAMgwB,OAAOU,oBAAoB;AAAA,kCAC1B1wB,MAAMgwB,OAAOW,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjEjZ,WACF/X,iBAAAA;AAAAA,+BAC2B4wB,aAAa;AAAA,KACvC;AAAA;AAAA,MAECJ,kBACFxwB,iBAAAA;AAAAA,+BAC2B6wB,mBAAmB;AAAA,KAC7C;AAAA;AAEL;AC1JA,MAAMI,eAAe9tB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAC4sB,gBAAgB,GAC3CtY,UAAQzU,iCAAAA,OAAO9C,MAAKgD,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAC6sB,iBAAiB,GACtCe,iBAAiB/tB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAC8sB,0BAA0B,GACvDe,QAAQhuB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACgtB,iBAAiB,GACrCc,QAAQjuB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAiDitB,iBAAiB,GAS9Ec,SAASvtB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAqjB,SAAAC,WAAAtX,UAAAuX,eAAArX,UAAAsD,WAAAxV;AAAA+F,WAAAnE,SAI/B;AAAA,IAAAynB;AAAAA,IAAAC;AAAAA,IAAAtX;AAAAA,IAAAuX;AAAAA,IAAArX;AAAAA,IAAAlS;AAAAA,IAAA,GAAAwV;AAAAA,EAAAA,IAAqF5T,OAAKmE,OAAAnE,OAAAmE,OAAAsjB,SAAAtjB,OAAAujB,WAAAvjB,OAAAiM,UAAAjM,OAAAwjB,eAAAxjB,OAAAmM,UAAAnM,OAAAyP,WAAAzP,OAAA/F,UAAAqpB,UAAAtjB,EAAA,CAAA,GAAAujB,YAAAvjB,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAwjB,gBAAAxjB,EAAA,CAAA,GAAAmM,WAAAnM,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAA/F,QAAA+F,EAAA,CAAA;AAC1F,QAAAsP,MAAYmU,MAAAA,OAAgC,IAAI;AAAC,MAAAljB;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI/Cc,KAAAA,MAAM+O,IAAGyP,SAAQ/e,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFnB0jB,MAAAA,oBACEL,cACA9iB,EACF;AAAC,MAAAE,IAAAI;AAAAb,WAAAwjB,iBAES/iB,KAAAA,MAAA;AACJ6O,QAAGyP,YAELzP,IAAGyP,QAAQyE,gBAAiBA,iBAAA;AAAA,EAC7B,GACA3iB,KAAA,CAAC2iB,aAAa,GAACxjB,OAAAwjB,eAAAxjB,QAAAS,IAAAT,QAAAa,OAAAJ,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,IALlBuT,gBAAU9S,IAKPI,EAAe;AAKI,QAAAI,MAACgL,YAADE,WAAA,KAAA3Q,QAEPqU,KAAA2T,kBAAkB,MAAlBF,SACC9P,KAAAvH,YAAAE;AAAoB,MAAAsH;AAAAzT,IAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAiB,MAAAjB,EAAA,EAAA,MAAA6P,MAAA7P,UAAAwT,MAJhCC,KAAA1S,2BAAAA,IAACoiB,SAAA,EACiB,kBAAAliB,IAAsC,GAClDwO,WACK,SAAAI,IACC,UAAA2D,IACL,MAAA,YACAlE,KAAG,GACRtP,QAAAyP,WAAAzP,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEAiU,KAAA3S,2BAAAA,IAAC,OAAA,CAAA,CAAK,GAAGf,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,IAAA,EAAA,MAAAsjB,WAAAtjB,UAAAwjB,iBADX3P,KAAAI,2BAAAA,KAAC,gBAAA,EAAe,eAAA,IAAsB,aAAA,kBACpCP,UAAAA;AAAAA,IAAAA;AAAAA,IACA3S,2BAAAA,IAAC,OAAA,EAAgBuiB,UAAAA,SAAyBE,gBAAAA,cAAAA,CAAa;AAAA,EAAA,EAAA,CACzD,GAAiBxjB,QAAAsjB,SAAAtjB,QAAAwjB,eAAAxjB,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA,SAAA9T,EAAA,EAAA,MAAAujB,aAAAvjB,EAAA,EAAA,MAAA/F,SAAA+F,EAAA,EAAA,MAAAyT,MAAAzT,UAAA6T,MAZnBC,qCAAC,cAAA,EAAwByP,WAAmB,WAAA,UAAgBtpB,OAC1DwZ,UAAAA;AAAAA,IAAAA;AAAAA,IAQAI;AAAAA,EAAAA,EAAAA,CAIF,GAAe7T,QAAAujB,WAAAvjB,QAAA/F,OAAA+F,QAAAyT,IAAAzT,QAAA6T,IAAA7T,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA,GAbf8T;AAae,CAElB;AACD8oB,OAAO/8B,cAAc;AC/BrB,MAAMg9B,iBAAiBnuB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACrD,kBAAkB,GAE/CsxB,cAAYpuB,iBAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,wDAOvBsU,UAAQzU,iCAAAA,OAAOquB,SAAQnuB,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC3B7E,6BACAyB,oBACAW,sBAAsB,GAGlB4wB,iBAAetuB,iCAAAA,OAAOS,IAAGP,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC7BpB,uBACApB,4BAA4B,GASjB4wB,WAAW5tB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAi9B,6BAAApe,gBAAArP,WAAAlP,IAAAE,IAAAI,IAAAI,IAAA4O,IAAAF;AAAA3P,WAAAnE,SAIjC;AAAA,IAAA4F,QAAAlB;AAAAA,IAAAue;AAAAA,IAAA7S,UAAAxL;AAAAA,IAAAjD,UAAAqD;AAAAA,IAAAiW,SAAA7V;AAAAA,IAAAyM,QAAAmC;AAAAA,IAAAF;AAAAA,IAAAutB;AAAAA,IAAA,GAAAztB;AAAAA,EAAAA,IAUI5T,OAAKmE,OAAAnE,OAAAmE,OAAAk9B,6BAAAl9B,OAAA8e,gBAAA9e,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAAiB,IAAAjB,OAAA6P,IAAA7P,OAAA2P,WAAAutB,8BAAAl9B,EAAA,CAAA,GAAA8e,iBAAA9e,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAiB,KAAAjB,EAAA,CAAA,GAAA6P,KAAA7P,EAAA,CAAA,GAAA2P,SAAA3P,EAAA,CAAA;AATP,QAAAyB,UAAAlB,OAAA/E,SAAA,KAAA+E,IAEA0L,WAAAxL,OAAAjF,SAAA,KAAAiF,IACAjD,YAAAqD,OAAArF,SAAA,IAAAqF,IACAiW,UAAA7V,OAAAzF,SAAA,IAAAyF,IACAyM,SAAAmC,OAAArU,SAAA,IAAAqU,IAMFP,MAAYmU,MAAAA,OAAmC,IAAI,GAEnDpjB,YAAkBa,aAAAA;AAAc,MAAAsS;AAAAxT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI9B+T,KAAAA,MAAMlE,IAAGyP,SAAQ/e,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GAFnB0jB,MAAAA,oBACEL,cACA7P,EACF,GAEAqL,kBAAkBvP,KAAKwP,cAAc;AAOhB,QAAArL,KAAApT,UAASD,QACXsT,KAAArT,UAASC;AAAK,MAAAuT;AAAA7T,YAAAxC,aAEdqW,KAAAxY,cAAcmC,SAAQ,GAACwC,QAAAxC,WAAAwC,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,YAAA8W,WACxBhD,KAAAzY,cAAcyb,OAAO,GAAC9W,QAAA8W,SAAA9W,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AACvB,QAAA+T,MAAA1T,UAASD;AAAO,MAAA4T;AAAAhU,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACjBuU,MAAA3Y,cAAc,CAAC,GAAC2E,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAA,MAAAkU;AAAAlU,IAAA,EAAA,MAAAiM,YAAAjM,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,EAAA,EAAA,MAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAA6T,MAAA7T,EAAA,EAAA,MAAA8T,MAAA9T,UAAA2P,UAR1BuE,qCAACiP,SAAA,EACS,WAAA,YACK,eAAA1P,IACF,aAAAC,IAAc,GACrBjE,WACO,WAAAoE,IACD,UAAAC,IACD,SAAAC,KACD,QAAAC,KACD,OAAA3T,UAASC,MACPqP,SAAAA,QACC1D,UACLqD,KAAG,GACRtP,QAAAiM,UAAAjM,QAAAyP,WAAAzP,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAA6T,IAAA7T,QAAA8T,IAAA9T,QAAA2P,QAAA3P,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAAA,MAAAqU;AAAArU,YAAA0N,UAES2G,MAAAhZ,cAAcqS,MAAM,GAAC1N,QAAA0N,QAAA1N,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AAIjB,QAAA+W,MAAAtV,UAAA,KAAAjG;AAAuB,MAAAwb;AAAAhX,YAAAk9B,+BAAAl9B,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,UAAAK,UAAAC,QAAAN,UAAAqU,OAAArU,EAAA,EAAA,MAAA+W,OALtCC,qCAACgmB,gBAAA,EACU,SAAA3oB,KACkB6oB,wDAClB,SAAA78B,UAASD,QACX,OAAAC,UAASC,MACH,eAAAyW,KACA,eAAA1W,UAASD,QACX,aAAAC,UAASC,MAAK,GACzBN,QAAAk9B,6BAAAl9B,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAAqU,KAAArU,QAAA+W,KAAA/W,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAAA,MAAAiX;AAAA,SAAAjX,EAAA,EAAA,MAAAkU,OAAAlU,UAAAgX,OAxBNC,MAAAlW,2BAAAA,IAAC,gBAAA,EAAuB,WAAA,YACtB,0CAAC+7B,aAAA,EACC5oB,UAAAA;AAAAA,IAAAA;AAAAA,IAcA8C;AAAAA,EAAAA,EAAAA,CASF,GACF,GAAiBhX,QAAAkU,KAAAlU,QAAAgX,KAAAhX,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA,GA1BjBiX;AA0BiB,CAEpB;AACDgmB,SAASp9B,cAAc;ACjCvB,MAAMs9B,yBAA8C;AAAA,EAACjQ,QAAQ;AAAC,GAExDkQ,kBAAkB1uB,iCAAAA,OAAOiP,IAAI,EAAE0f,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC1uB,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAACrD,kBAAkB,GAE9EsxB,YAAYpuB,iBAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,wDAOvB0uB,SAAS7uB,iBAAAA,OAAOiP,IAAI,EAAE0f,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC1uB,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,gGAUlD2uB,SAAS9uB,iBAAAA,OAAOiP,IAAI,EAAE0f,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC1uB,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,8FAUlDsU,QAAQzU,iCAAAA,OAAO9C,MAAKgD,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EACxB7E,6BACAyB,oBACAW,sBAAsB,GAGlB4wB,eAAetuB,iCAAAA,OAAOC,KAAIC,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAC9BpB,uBACApB,4BAA4B,GAGxBoxB,UAAU/uB,wBAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,oCAMrB6uB,WAAWhvB,iBAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,qCAMtB8uB,YAAYjvB,iBAAAA,OAAOiP,IAAI,EAAC/O,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,kEAOxB+uB,uBAAuBlvB,iCAAAA,OAAOoO,MAAM,EAAClO,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EAAC;AAAA,EAC1C,mBAAmB;AAAA,IACjB5R,SAAS;AAAA,EAAA;AAEb,CAAC,GAOY4gC,YAAYxuB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAA2b,eAAAC,oBAAAqhB,6BAAAY,aAAAhf,gBAAAva,KAAAw5B,SAAAC,QAAA7xB,UAAAsD,WAAAwuB,QAAA19B,IAAAE,IAAAI,IAAAI,IAAA4O,IAAA2D,IAAAC,IAAA9D;AAAA3P,WAAAnE,SAIlC;AAAA,IAAAqhC;AAAAA,IAAAz7B,QAAAlB;AAAAA,IAAAu9B;AAAAA,IAAA7xB,UAAAxL;AAAAA,IAAAjD,UAAAqD;AAAAA,IAAA0D;AAAAA,IAAA4V,MAAAyB;AAAAA,IAAAW,WAAAV;AAAAA,IAAAkiB;AAAAA,IAAAjnB,SAAA7V;AAAAA,IAAA+8B;AAAAA,IAAAtwB,QAAAmC;AAAAA,IAAA1D;AAAAA,IAAAlQ,OAAAuX;AAAAA,IAAAyqB;AAAAA,IAAAnf;AAAAA,IAAAlmB,MAAA6a;AAAAA,IAAA9D;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAoBI5T,OAAKmE,OAAAnE,OAAAmE,OAAA4b,eAAA5b,OAAA6b,oBAAA7b,OAAAk9B,6BAAAl9B,OAAA89B,aAAA99B,OAAA8e,gBAAA9e,OAAAuE,KAAAvE,OAAA+9B,SAAA/9B,OAAAg+B,QAAAh+B,OAAAmM,UAAAnM,QAAAyP,WAAAzP,QAAAi+B,QAAAj+B,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA2P,WAAAiM,gBAAA5b,EAAA,CAAA,GAAA6b,qBAAA7b,EAAA,CAAA,GAAAk9B,8BAAAl9B,EAAA,CAAA,GAAA89B,cAAA99B,EAAA,CAAA,GAAA8e,iBAAA9e,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAA+9B,UAAA/9B,EAAA,CAAA,GAAAg+B,SAAAh+B,EAAA,CAAA,GAAAmM,WAAAnM,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAi+B,SAAAj+B,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,GAAA2P,SAAA3P,EAAA,EAAA;AAlBP,QAAAyB,UAAAlB,OAAA/E,SAAA,KAAA+E,IAEA0L,WAAAxL,OAAAjF,SAAA,KAAAiF,IACUy9B,eAAAr9B,OAAArF,SAAA,IAAAqF,IAKD4b,cAAAxb,OAAAzF,SAAA,IAAAyF,IAEDyb,aAAA7M,OAAArU,SAAA,IAAAqU,IAED8M,mBAAAnJ,OAAAhY,SAAA,IAAAgY,IAGP5a,OAAA6a,OAAAjY,SAAA,SAAAiY,IAIFnE,MAAYmU,MAAAA,OAAgC,IAAI,GAEhDpjB,YAAkBa,aAAAA;AAAc,MAAAwS;AAAA1T,YAAAk+B,gBAEfxqB,KAAArY,cAAc6iC,YAAY,GAACl+B,QAAAk+B,cAAAl+B,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAA5C,QAAAxC,YAAiBkW;AAA2B,MAAAG;AAAA7T,YAAAyc,eAC5B5I,KAAAxY,cAAcohB,WAAW,GAACzc,QAAAyc,aAAAzc,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAA1C,QAAA8W,UAAgBjD;AAA0B,MAAAC;AAAA9T,YAAA0c,cAC3B5I,KAAAzY,cAAcqhB,UAAU,GAAC1c,QAAA0c,YAAA1c,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAAxC,QAAA0N,SAAeoG,IACaC,MAAAxP,QAAQ/I,SAARmhB,mBAAApY;AAA0C,MAAAyP;AAAAhU,YAAA+T,OAAxDC,MAAA3Y,cAAc0Y,GAA0C,GAAC/T,QAAA+T,KAAA/T,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAvE,QAAA/D,QAAc+X,KAGdmqB,kBAAwBv4B,CAAAA,CAAQk4B,aAChCM,WAAiBx4B,CAAAA,CAAQgW,eACzByiB,gBAAsBz4B,EAAQiW,oBAC9BtP,aAAmB3G,CAAAA,CAAQq4B,QAC3B3xB,aAAmB1G,CAAAA,CAAQo4B;AAAO,MAAA9pB;AAAAlU,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAIhCyU,MAAAA,MAAM5E,IAAGyP,SAAQ/e,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA,GAFnB0jB,MAAAA,oBACEL,cACAnP,GACF,GAEA2K,kBAAkBvP,KAAKwP,cAAc;AAGrC,QAAAwf,uBAA6BlqB;AAGvB,MAAAC;AAAArU,YAAA+9B,WAGJ1pB,MAAAoN,CAAAA,YAAA;AACEH,YAAKid,eAAAA,GACLjd,QAAKkd,gBAAAA,GAEDT,WAASA,WAGbzuB,IAAGyP,SAAe0f,MAAAA;AAAAA,EAAE,GACrBz+B,QAAA+9B,SAAA/9B,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AATH,QAAA0+B,mBAAyBrqB;AAWxB,MAAA0C;AAAA/W,IAAA,EAAA,MAAAg+B,UAAAh+B,UAAA0N,UAKGqJ,MAAAinB,UACEj9B,2BAAAA,IAAC,QAAA,EAAO,WAAA,IAAU,YAAA,IAAW,kBAAqB2M,QAAe,QAAA,UAAc,MAAA,WAC7E,yCAAA,QAAA,oBAAc,GAChB,GACD1N,QAAAg+B,QAAAh+B,QAAA0N,QAAA1N,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AANL,QAAA2+B,aAEI5nB,KAkBeC,MAAAvV,UAAA,KAAAjG;AAAuB,MAAAyb;AAAAjX,IAAA,EAAA,MAAA4b,iBAAA5b,UAAAxC,aAAAwC,EAAA,EAAA,MAAA8W,WAInCG,MAAA2E,iBACC7a,+BAAC,SAAA,EAAiB+V,SAChB,UAAA7C,gCAAC,MAAA,EAAWzW,MAAAA,WACTgY,UAAAA;AAAAA,IAAAA,MAAAA,eAAeoG,aAA8B,KAA7CA;AAAAA,IACAlJ,QAAAA,mBAAmBkJ,aAAkC,KAAhB7a,2BAAAA,IAAC,eAAA,CAAA;KACzC,EAAA,CACF,GACDf,QAAA4b,eAAA5b,QAAAxC,WAAAwC,QAAA8W,SAAA9W,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAAA,MAAAkX;AAAAlX,IAAA,EAAA,MAAAm+B,mBAAAn+B,EAAA,EAAA,MAAA6b,sBAAA7b,EAAA,EAAA,MAAAxC,aAAAwC,UAAA8W,WAEAI,MAAA,CAACinB,mBAADtiB,sBACC9a,2BAAAA,IAAC,UAAA,EAAkB+V,SACjB,UAAA7C,2BAAAA,KAAC,MAAA,EAAWzW,MAAAA,WACTgY,UAAAA;AAAAA,IAAAA,MAAAA,eAAeqG,kBAAwC,KAAvDA;AAAAA,IACAnJ,QAAAA,mBAAmBmJ,kBAA4C,KAArB9a,2BAAAA,IAAC,oBAAA,CAAA;KAC9C,EAAA,CACF,GACDf,QAAAm+B,iBAAAn+B,QAAA6b,oBAAA7b,QAAAxC,WAAAwC,QAAA8W,SAAA9W,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAAA,MAAAmX;AAAAnX,IAAA,EAAA,MAAAsM,cAAAtM,UAAAuM,cAAAvM,EAAA,EAAA,MAAAk9B,+BAAAl9B,UAAA0N,UAAA1N,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,EAAA,EAAA,MAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAAgX,OAAAhX,EAAA,EAAA,MAAAiX,OAAAjX,UAAAkX,OA3BHC,MAAAlD,2BAAAA,KAAC,cAAA,EACa3H,YACe4wB,2BAAAA,6BACf3wB,YACHmB,SAAAA,QACA,SAAArN,UAASD,QACX,OAAAC,UAASC,MACH,eAAA0W,KACA,eAAA3W,UAASD,QACX,aAAAC,UAASC,MAEnB2W,UAAAA;AAAAA,IAAAA;AAAAA,IASAC;AAAAA,EAAAA,GAQH,GAAelX,QAAAsM,YAAAtM,QAAAuM,YAAAvM,QAAAk9B,6BAAAl9B,QAAA0N,QAAA1N,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAAgX,KAAAhX,QAAAiX,KAAAjX,QAAAkX,KAAAlX,QAAAmX,OAAAA,MAAAnX,EAAA,EAAA;AA9BnB,QAAA4+B,mBAEIznB;AA2CH,MAAAC;AAAApX,YAAA8W,WAKGM,MAAAN,QAAO5b,IAAK2yB,MAMX,GAAC7tB,QAAA8W,SAAA9W,QAAAoX,OAAAA,MAAApX,EAAA,EAAA;AARN,QAAA6+B,wBAEIznB;AAQH,MAAAC;AAAArX,YAAA8W,WAGGO,MAAAP,QAAO5b,IAAK4jC,MAMX,GAAC9+B,QAAA8W,SAAA9W,QAAAqX,OAAAA,MAAArX,EAAA,EAAA;AARN,QAAA++B,qBAEI1nB,KASJ2nB,mBACS,OAAOlB,eAAgB,WAAvBA,cAAAlmC;AAER,MAAA0f;AAAAtX,IAAA,EAAA,MAAA89B,eAAA99B,UAAA6+B,yBAAA7+B,EAAA,EAAA,MAAA++B,sBAAA/+B,UAAAg/B,oBAAAh/B,EAAA,EAAA,MAAA8e,kBAAA9e,UAAAiM,YAAAjM,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAA0+B,oBAAA1+B,EAAA,EAAA,MAAA0N,UAAA1N,UAAAmM,YAGGmL,OAACrL,YAAD,CACCE,YADD2xB,eAGE/8B,2BAAAA,IAAC,WAAA,EACa,aAAA,QACH89B,gCACF1B,+BACD,MAAAre,iBAAA,aAAA,WAEN,UAAA/d,2BAAAA,IAAC,sBAAA,EACY,cAAA,SACH,WAAA,gBACEvD,UAAAA,WACJyhC,MAAAA,MAAAA,WACD,MAAA,SACIF,SAAAA,oBACDrxB,WACJsxB,kBACKN,SAAAA,kBACIJ,aAAAA,qBAAAA,CAAoB,EAAA,CAErC,GACDt+B,QAAA89B,aAAA99B,QAAA6+B,uBAAA7+B,QAAA++B,oBAAA/+B,QAAAg/B,kBAAAh/B,QAAA8e,gBAAA9e,QAAAiM,UAAAjM,QAAAxC,WAAAwC,QAAA0+B,kBAAA1+B,QAAA0N,QAAA1N,QAAAmM,UAAAnM,QAAAsX,OAAAA,MAAAtX,EAAA,EAAA;AAxBL,QAAAk/B,kBAEI5nB;AAoCH,MAAAC;AAAAvX,IAAA,EAAA,MAAA0N,UAAA1N,UAAAi+B,UAKG1mB,MAAA0mB,UACEl9B,2BAAAA,IAAC,QAAA,EAAO,WAAA,IAAU,aAAA,IAAY,kBAAqB2M,QAAe,QAAA,UAAc,MAAA,WAC9E,yCAAA,QAAA,oBAAc,GAChB,GACD1N,QAAA0N,QAAA1N,QAAAi+B,QAAAj+B,QAAAuX,OAAAA,MAAAvX,EAAA,EAAA;AANL,QAAAm/B,aAEI5nB,KAoBgBC,MAAA6mB,iBAAAF;AAAgC,MAAA1mB;AAAAzX,YAAAo+B,YAAAp+B,EAAA,EAAA,MAAAiM,YAAAjM,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAA8W,WAAA9W,EAAA,EAAA,MAAAmM,YAAAnM,EAAA,EAAA,MAAAyP,aAAAzP,UAAAK,UAAAD,UAAAJ,UAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAA/D,SAAA+D,EAAA,EAAA,MAAAwX,OAAAxX,UAAApH,QAAAoH,EAAA,EAAA,MAAA2P,UAP9C8H,qCAAC,OAAA,EACS,WAAA,SACK,eAAApX,UAASD,QACX,aAAAC,UAASC,MAAK,GACrBmP,WACOjS,sBACA4gC,WAAAA,UACC,YAAA5mB,KACFV,UAAAA,SACD,SAAAzW,UAASD,QACVnE,QAAAA,OACD,OAAAoE,UAASC,MACPqP,iBACC1D,UACAE,UACLmD,KACC1W,KAAAA,CAAI,GACVoH,QAAAo+B,UAAAp+B,QAAAiM,UAAAjM,QAAAxC,WAAAwC,QAAA8W,SAAA9W,QAAAmM,UAAAnM,QAAAyP,WAAAzP,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAA/D,OAAA+D,QAAAwX,KAAAxX,QAAApH,MAAAoH,QAAA2P,QAAA3P,QAAAyX,OAAAA,MAAAzX,EAAA,EAAA;AAAA,MAAA0X;AAAA1X,IAAA,EAAA,MAAAk/B,mBAAAl/B,UAAA4+B,oBAAA5+B,EAAA,EAAA,MAAAyX,OAlBJC,sCAAC,WAAA,EACCD,UAAAA;AAAAA,IAAAA;AAAAA,IAmBCmnB;AAAAA,IACAM;AAAAA,EAAAA,GACH,GAAYl/B,QAAAk/B,iBAAAl/B,QAAA4+B,kBAAA5+B,QAAAyX,KAAAzX,QAAA0X,OAAAA,MAAA1X,EAAA,EAAA;AAAA,MAAA2X;AAAA,SAAA3X,EAAA,EAAA,MAAA2+B,cAAA3+B,UAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAAm/B,cAAAn/B,UAAA0X,OAzBdC,MAAA1D,2BAAAA,KAAC,mBAAwB,WAAA,aAAkB,MAAA5T,UAASC,MACjDq+B,UAAAA;AAAAA,IAAAA;AAAAA,IAEDjnB;AAAAA,IAwBCynB;AAAAA,EAAAA,EAAAA,CACH,GAAkBn/B,QAAA2+B,YAAA3+B,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAAm/B,YAAAn/B,QAAA0X,KAAA1X,QAAA2X,OAAAA,MAAA3X,EAAA,EAAA,GA5BlB2X;AA4BkB,CAErB;AACDkmB,UAAUh+B,cAAc;AA5OY,SAAAuU,QAAAkN,OAAA;AAkDhCA,QAAKid,eAAAA,GACLjd,MAAKkd,gBAAAA;AAAkB;AAnDS,SAAA3Q,OAAAE,GAAA;AAkI5B,SAAIA,MAAM,IAAU,IAChBA,MAAM,KACNA,MAAM,IAAU,IAEbA,IAAI;AAAC;AAtIgB,SAAA+Q,OAAAhR,KAAA;AA8I5B,SADIC,QAAM,KACNA,QAAM,IAAU,IAChBA,QAAM,IAAU,IAEbA,MAAI;AAAC;AC1Sb,SAAAqR,gBAAAC,cAAA;AAAA,QAAAr/B,IAAAC,qBAAAA,EAAA,CAAA,GAGL,CAAAstB,OAAA+R,QAAA,IAA0BtsB,MAAAA,SAASqsB,YAAY,GAC/CE,gBAAsB9b,MAAAA,OAAmCjoB,MAAS;AAAC,MAAA+E;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEjCc,KAAAA,CAAAktB,WAAA+R,UAAA;AAChC,UAAAC,SAAeA,MAAA;AACbH,eAAS7R,SAAS;AAAA,IAAC;AASrB,QALI8R,cAAaxgB,YACf2gB,aAAaH,cAAaxgB,OAAQ,GAClCwgB,cAAaxgB,UAAWvjB,SAGtB,CAACgkC;AAAK,aAASC,OAAAA;AACnBF,kBAAaxgB,UAAW4gB,WAAWF,QAAQD,KAAK;AAAA,EAA3B,GACtBx/B,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAbD,QAAA4/B,gBAAsBr/B;AAahB,MAAAE,IAAAI;AAAAb,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEIgB,KAAAA,MACD,MAAA;AACD8+B,kBAAaxgB,WACf2gB,aAAaH,cAAaxgB,OAAQ;AAAA,EACnC,GAEFle,KAAA,CAAA,GAAEb,OAAAS,IAAAT,OAAAa,OAAAJ,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,IANLuT,MAAAA,UAAU9S,IAMPI,EAAE;AAAC,MAAAI;AAAA,SAAAjB,SAAAutB,SAECtsB,KAAA,CAACssB,OAAOqS,aAAa,GAAC5/B,OAAAutB,OAAAvtB,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA,GAAtBiB;AAAsB;AChCxB,MAAM4+B,8BAA8B,IAC9BC,+BAA+B,GAC/BC,+BAA+B,GAE/BC,2BAA2B,GAC3BC,0BAA0B,GAE1BhN,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,GCPMoC,aAAa3mB,iBAAAA,OAAO4mB,QAAAA,OAAOC,OAAO5X,IAAI,CAAC,EAAC/O,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,2BAOjCqxB,cAAc7wB,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAy1B,SAAAzlB,OAAA0lB,UAAAC,QAAAC,QAAAl9B,UAAAwwB,SAAAC,SAAAtS,SAAAwR,WAAA5a,QAAA+B,WAAArP,QAAA0N,QAAA7T;AAAA+F,WAAAnE,SAiBpC;AAAA,IAAA65B;AAAAA,IAAAzlB;AAAAA,IAAA0lB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAl9B;AAAAA,IAAAwwB;AAAAA,IAAAC;AAAAA,IAAAtS;AAAAA,IAAAwR;AAAAA,IAAA5a;AAAAA,IAAAtN;AAAAA,IAAA0N;AAAAA,IAAA7T;AAAAA,IAAA,GAAAwV;AAAAA,EAAAA,IAgBI5T,OAAKmE,OAAAnE,OAAAmE,OAAA01B,SAAA11B,OAAAiQ,OAAAjQ,OAAA21B,UAAA31B,OAAA41B,QAAA51B,OAAA61B,QAAA71B,OAAArH,UAAAqH,OAAAmpB,SAAAnpB,OAAAopB,SAAAppB,OAAA8W,SAAA9W,QAAAsoB,WAAAtoB,QAAA0N,QAAA1N,QAAAyP,WAAAzP,QAAAI,QAAAJ,QAAA8N,QAAA9N,QAAA/F,UAAAy7B,UAAA11B,EAAA,CAAA,GAAAiQ,QAAAjQ,EAAA,CAAA,GAAA21B,WAAA31B,EAAA,CAAA,GAAA41B,SAAA51B,EAAA,CAAA,GAAA61B,SAAA71B,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAmpB,UAAAnpB,EAAA,CAAA,GAAAopB,UAAAppB,EAAA,CAAA,GAAA8W,UAAA9W,EAAA,CAAA,GAAAsoB,YAAAtoB,EAAA,EAAA,GAAA0N,SAAA1N,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAA8N,SAAA9N,EAAA,EAAA,GAAA/F,QAAA+F,EAAA,EAAA;AAMO,QAAAO,KAAAm1B,UAAA,cAAAl6B;AAAiC,MAAAiF;AAAAT,IAAA,EAAA,MAAAmpB,WAAAnpB,EAAA,EAAA,MAAAopB,WAAAppB,EAAA,EAAA,MAAA/F,SAAA+F,UAAAO,MAHxCE,KAAA;AAAA,IAAA0oB;AAAAA,IAAAC;AAAAA,IAAAnxB,YAGOsI;AAAAA,IAAiC,GAC1CtG;AAAAA,EAAAA,GACJ+F,QAAAmpB,SAAAnpB,QAAAopB,SAAAppB,QAAA/F,OAAA+F,QAAAO,IAAAP,QAAAS,MAAAA,KAAAT,EAAA,EAAA;AANH,QAAAm2B,aACS11B,IAWCI,KAAA+0B,WAAW,OAAXA,SAAAp6B,QACDyF,KAAA40B,WAAW,OAAXA,SAAAr6B;AAAoC,MAAAqU;AAAA7P,IAAA,EAAA,MAAAa,MAAAb,UAAAiB,MAFpC4O,KAAA;AAAA,IAAAwkB,MACCxzB;AAAAA,IAAoCuxB,KACrCnxB;AAAAA,IAAoCqzB,OAClC94B;AAAAA,IAAS+4B,QACR/4B;AAAAA,EAAAA,GACTwE,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AANH,QAAAo2B,aACSvmB,IAYA2D,KAAA/D;AAAoC,MAAAgE;AAAAzT,YAAA01B,WAUhCjiB,KAAAiiB,UAAA,CAAW,UAAU,SAAS,IAA9Bl6B,QAA2CwE,QAAA01B,SAAA11B,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAA,MAAA0T;AAAA1T,YAAA01B,WAC3ChiB,KAAAgiB,UAAA,CAAW,WAAW,SAAS,IAA/Bl6B,QAA4CwE,QAAA01B,SAAA11B,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA01B,WAC/C7hB,KAAA6hB,UAAA,CAAW,UAAU,UAAU,IAA/Bl6B,QAA4CwE,QAAA01B,SAAA11B,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,IAAA,EAAA,MAAAiQ,SAAAjQ,UAAA21B,YAAA31B,EAAA,EAAA,MAAAo2B,cAIjDtiB,KAAA7D,SACClP,+BAAC,OAAA,EACM40B,KAAAA,UACES,OAAAA,YACAyJ,OAAAA,6BACCC,QAAAA,8BACAC,QAAAA,8BAA4B,GAEvC//B,QAAAiQ,OAAAjQ,QAAA21B,UAAA31B,QAAAo2B,YAAAp2B,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA,SAAA/T,UAAArH,YAAAqH,EAAA,EAAA,MAAA8W,WAAA9W,EAAA,EAAA,MAAAsoB,aAAAtoB,EAAA,EAAA,MAAA0N,UAAA1N,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAm2B,cAAAn2B,UAAAI,UAAAJ,EAAA,EAAA,MAAA8N,UAAA9N,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAAyT,MAAAzT,EAAA,EAAA,MAAA0T,MAAA1T,UAAA6T,MAAA7T,EAAA,EAAA,MAAA8T,MA1BHC,sCAAC,cACS,WAAA,oBACHP,IACW8U,6BACPxR,SACDpJ,QACH4B,KACGlP,QACA0N,QACDqoB,OAAAA,YACG,UAAAt+B,qBAAoBC,MAClB,YAAAD,qBAAoBQ,YACvB,SAAAob,IACA,SAAAC,IACH,MAAAG;;IAILC;AAAAA,EAAAA,EAAAA,CASH,GAAa9T,QAAArH,UAAAqH,QAAA8W,SAAA9W,QAAAsoB,WAAAtoB,QAAA0N,QAAA1N,QAAAsP,KAAAtP,QAAAm2B,YAAAn2B,QAAAI,QAAAJ,QAAA8N,QAAA9N,QAAAwT,IAAAxT,QAAAyT,IAAAzT,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAA8T,IAAA9T,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA,GA3Bb+T;AA2Ba,CAEhB;AACDmsB,YAAYrgC,cAAc;ACtGnB,MAAMsgC,2BACX9gC,0BACE,wCACA,IACF;ACmBK,SAAA+gC,0BAAAvkC,OAAA;AAAA,QAAAmE,IAAAC,uBAAA,CAAA,GAGL;AAAA,IAAAtH;AAAAA,IAAA6mC;AAAAA,EAAAA,IAA0B3jC,OAC1B,CAAAwkC,eAAAC,gBAAA,IAA0ClB,gBAAgB,EAAK,GAC/D,CAAAmB,eAAAC,gBAAA,IAA0CpB,gBAA+B,IAAI,GAE7EqB,YAAkB,OAAOjB,SAAU,WAAjBA,QAAoCA,OAAKvI,QAAL,GACtDyJ,aAAmB,OAAOlB,SAAU,WAAjBA,QAAoCA,OAAKmB,SAAL,GAQxCpgC,KAAA8/B,gBAAA,IAAAI;AAA6B,MAAAhgC;AAAAT,IAAA,CAAA,MAAA0gC,cAAA1gC,EAAA,CAAA,MAAAugC,iBAAAvgC,EAAA,CAAA,MAAAsgC,oBAAAtgC,EAAA,CAAA,MAAAwgC,oBAAAxgC,SAAAO,MALnCE,KAAA;AAAA,IAAA6/B;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC,WAKMlgC;AAAAA,IAA6BmgC;AAAAA,EAAAA,GAEzC1gC,OAAA0gC,YAAA1gC,OAAAugC,eAAAvgC,OAAAsgC,kBAAAtgC,OAAAwgC,kBAAAxgC,OAAAO,IAAAP,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AARH,QAAAvF,QACSgG;AASR,MAAAI;AAAA,SAAAb,EAAA,CAAA,MAAArH,YAAAqH,SAAAvF,SAGCoG,KAAAE,2BAAAA,IAAA,yBAAA,UAAA,EAA0CtG,OAAQ9B,SAAAA,CAAS,GAAoCqH,OAAArH,UAAAqH,OAAAvF,OAAAuF,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAA/Fa;AAA+F;AAInGu/B,0BAA0BvgC,cAAc;AChDjC,SAAA+gC,uBAAA;AAC6C,SAApCzgC,MAAAA,WAAWggC,wBAAwB;AAErC;ACwEd,MAAMU,gBAAgBnyB,iBAAAA,OAAOkgB,KAAK,EAAChgB,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,yBAStBiyB,UAAUzxB,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,GAAA,GAIhCw2B,yBAA+BhL,sBAC/B;AAAA,IAAA+K;AAAAA,EAAAA,IAAgBj1B,YAAAA;AAAa,MAAAm1B,kBAAAqK,yBAAAC,UAAAjK,WAAA/5B,SAAAwiC,OAAAvzB,UAAAg1B,YAAAxxB,WAAArP,QAAAG,IAAAE,IAAAI,IAAAI,IAAA4O,IAAA2D;AAAAxT,WAAAnE,SAC7B;AAAA,IAAA65B,SAAAn1B;AAAAA,IAAA0P,OAAAxP;AAAAA,IAAAqd,iBAAA4Y;AAAAA,IAAA/9B,UAAAo+B;AAAAA,IAAA/5B;AAAAA,IAAAiP;AAAAA,IAAAmrB,oBAAA2J;AAAAA,IAAAjqB,SAAAjW;AAAAA,IAAAynB,WAAArnB;AAAAA,IAAAsuB,QAAA0R;AAAAA,IAAAvzB,QAAAmC;AAAAA,IAAAzP;AAAAA,IAAA0N,QAAA0F;AAAAA,IAAAkZ,SAAAsU;AAAAA,IAAAxB;AAAAA,IAAA,GAAA/vB;AAAAA,EAAAA,IAiBI5T,OAAKmE,OAAAnE,OAAAmE,OAAA02B,kBAAA12B,OAAA+gC,yBAAA/gC,OAAAghC,UAAAhhC,OAAA+2B,WAAA/2B,OAAAhD,SAAAgD,OAAAw/B,OAAAx/B,OAAAiM,UAAAjM,OAAAihC,YAAAjhC,OAAAyP,WAAAzP,QAAAI,QAAAJ,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,OAAAkjB,mBAAA12B,EAAA,CAAA,GAAA+gC,0BAAA/gC,EAAA,CAAA,GAAAghC,WAAAhhC,EAAA,CAAA,GAAA+2B,YAAA/2B,EAAA,CAAA,GAAAhD,UAAAgD,EAAA,CAAA,GAAAw/B,QAAAx/B,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAihC,aAAAjhC,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA;AAhBE,QAAAm4B,WAAA53B,OAAA/E,SAAA,KAAA+E,IACF63B,YAAA33B,OAAAjF,SAAA,KAAAiF,IAMPqW,UAAAjW,OAAArF,SAAA,IAAAqF,IACWw3B,gBAAAp3B,OAAAzF,SAAA,WAAAyF,IAEXyM,SAAAmC,OAAArU,SAAA,IAAAqU,IAEA/B,SAAA0F,OAAAhY,SAAA,IAAAgY,IAKFsK,kBAAwB4Y,oBAAoBD,wBAAsBz9B,SAClEkoC,yBACEH,2BAA2B9N,4BAA4Bp3B,MAAKysB,aAAL,QAA2B,GACpFoE,UAAgBsU,YAAYxK,MAAK2K,QAAQzU,SAEzCgJ,UAD6B5S,wBAAAA,IACb,KAAAqV;AAAuC,MAAA1kB;AAAAzT,YAAAkhC,0BAC5BztB,KAAApY,cAAc6lC,sBAAsB,GAAClhC,QAAAkhC,wBAAAlhC,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AAAhE,QAAAo3B,qBAA2B3jB,IAC3BnE,MAAYmU,MAAAA,OAA8B,IAAI,GAC9C,CAAAyT,kBAAAkK,mBAAA,IAAgDpuB,MAAAA,SAA6B,IAAI,GACjF2iB,WAAiBlS,MAAAA,OAA8B,IAAI,GAEnD,CAAA4d,iBAAAC,kBAAA,IAA8CtuB,MAAAA,SAAS,CAAC;AAAC,MAAAU;AAAA1T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEuBiU,KAAAA,MAAMpE,IAAGyP,SAAQ/e,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA,GAAjG0jB,MAAAA,oBAAkEL,cAAc3P,EAAiB;AAEjG,QAAA6b,SAAeH,UAAAA,GACfI,gBACE,OAAOyR,cAAe,WAAW1R,OAAMpR,WAAY8iB,UAAU,KAA5B,OAAwC1R,OAAMv2B;AAAQ,MAAA6a;AAAA7T,IAAA,EAAA,MAAA01B,WAAA11B,EAAA,EAAA,MAAAo4B,aAAAp4B,EAAA,EAAA,MAAA8d,mBAAA9d,UAAAo3B,sBAExDvjB,KAAA;AAAA,IAAA6hB;AAAAA,IAAA0C;AAAAA,IAAAzC;AAAAA,IAAA7X;AAAAA,IAAAsZ;AAAAA,IAAApD,cATE;AAAA,EAAA,GAgBlCh0B,QAAA01B,SAAA11B,QAAAo4B,WAAAp4B,QAAA8d,iBAAA9d,QAAAo3B,oBAAAp3B,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AAPD,QAAA64B,aAAmBC,cAAcjlB,EAOhC;AAAC,MAAAC;AAAA9T,YAAAk3B,oBAMUpjB,KAAA;AAAA,IAAA6f,WAAYuD;AAAAA,EAAAA,GAAiBl3B,QAAAk3B,kBAAAl3B,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,IAAA,EAAA,MAAA64B,cAAA74B,UAAAq4B,iBAAAr4B,EAAA,EAAA,MAAA8T,MAJqCC,MAAA;AAAA,IAAA8kB;AAAAA,IAAAvQ,WAEjE+P;AAAAA,IAAaU,sBACFC,WAAAA;AAAAA,IAAU7a,UACtBrK;AAAAA,EAAAA,GACX9T,QAAA64B,YAAA74B,QAAAq4B,eAAAr4B,QAAA8T,IAAA9T,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AALD,QAAA;AAAA,IAAAuhC;AAAAA,IAAAjZ;AAAAA,IAAAD;AAAAA,IAAA4Q;AAAAA,IAAAC;AAAAA,EAAAA,IAAkEC,WAAAA,YAAYplB,GAK7E,GAED6hB,SAAevN,eAAcpY,OAAS8Y,GACtC8M,SAAexN,eAAcpY,OAASgZ,GAEtCE,UAAgBd,eAAe,mBAAmB,GAAUc,SAC5DC,UAAgBf,eAAe,mBAAmB,GAAUe,SAE5DoY,YAAkB1uB,MAAAA,MAAAA,GAClB,CAAA2uB,QAAAC,SAAA,IAA4BtC,gBAAgB,EAAK,GACjDuC,oBAA0Bf,qBAAAA;AAAsB,MAAA5sB;AAAAhU,YAAA2hC,qBACH3tB,MAAA2tB,qBAAA,CAAA,GAAuB3hC,QAAA2hC,mBAAA3hC,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAApE,QAAA;AAAA,IAAAsgC;AAAAA,IAAAE;AAAAA,EAAAA,IAA6CxsB,KAC7C4tB,cAAoBH,UAAUE,mBAAiBpB,kBAAoBiB,WAEnEK,gBAAsBF,sBAAsB,MAC5CG,gBAAsB,OAAOtC,SAAU,WAAjBA,QAAoCA,OAAKvI,QAAL,GAC1D8K,iBAAuB,OAAOvC,SAAU,WAAjBA,QAAoCA,OAAKmB,SAAL,GAE3DF,YAAkBoB,gBAAgBF,kBAAiBlB,YAAjCqB,eAClBpB,aAAmBmB,gBAAgBF,kBAAiBjB,aAAjCqB;AAA6D,MAAA7tB;AAAAlU,IAAA,EAAA,MAAA0gC,cAAA1gC,EAAA,EAAA,MAAA6hC,iBAAA7hC,EAAA,EAAA,MAAAygC,aAAAzgC,UAAAsgC,oBAAAtgC,EAAA,EAAA,MAAA0hC,aAAA1hC,EAAA,EAAA,MAAAwgC,oBAAAxgC,EAAA,EAAA,MAAAwhC,aAG9EttB,MAAAA,CAAA+iB,MAAA+K,cAAA;AACE,QAAIH;AAEF,UAAI5K,MAAI;AACN,cAAAgL,mBAAyBD,YAAA,IAAAvB;AAEzBH,2BAAmBrJ,MAAMgL,gBAAgB,GACzCzB,mBAAmBgB,WAAWS,gBAAgB;AAAA,MAAC,OAAA;AAG/C,cAAAC,uBACExB,aAFkC,MAElCA,aAAA;AAEFJ,2BAAmBrJ,MAAMiL,oBAAoB,GAC7C1B,mBAAmB,MAAMwB,YAAA,IAAAtB,UAA0B;AAAA,MAAC;AAAA;AAMtDgB,gBAAUzK,MAHc+K,YAAA,IAAgB/K,OAAAwJ,YAAAC,UAGT;AAAA,EAChC,GACF1gC,QAAA0gC,YAAA1gC,QAAA6hC,eAAA7hC,QAAAygC,WAAAzgC,QAAAsgC,kBAAAtgC,QAAA0hC,WAAA1hC,QAAAwgC,kBAAAxgC,QAAAwhC,WAAAxhC,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAvBH,QAAAmiC,qBAA2BjuB;AAiC1B,MAAAG;AAAArU,YAAA+2B,WAAAl7B,SAAAmE,UAAAmiC,sBAGC9tB,MAAA+tB,CAAAA,MAAA;AACED,uBAAmB,EAAK,GACxBpL,WAASl7B,OAAewmC,SAAGD,CAAC;AAAA,EAAC,GAC9BpiC,EAAA,EAAA,IAAA+2B,WAAAl7B,OAAAmE,QAAAmiC,oBAAAniC,QAAAqU,OAAAA,MAAArU,EAAA,EAAA;AAJH,QAAAsiC,aAAmBjuB;AAMlB,MAAA0C;AAAA/W,YAAA+2B,WAAAl7B,SAAAmE,UAAAmiC,sBAECprB,MAAAwrB,CAAAA,QAAA;AACEJ,uBAAmB,IAAO,EAAI,GAC9BpL,WAASl7B,MAAe2mC,UAAGJ,GAAC;AAAA,EAAC,GAC9BpiC,EAAA,EAAA,IAAA+2B,WAAAl7B,OAAAmE,QAAAmiC,oBAAAniC,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAJH,QAAAyiC,cAAoB1rB;AAMnB,MAAAC;AAAAhX,YAAA+2B,WAAAl7B,SAAAmE,UAAAmiC,sBAECnrB,MAAA0rB,CAAAA,QAAA;AACEP,uBAAmB,IAAO,EAAI,GAC9BpL,WAASl7B,MAAqB8mC,gBAAGP,GAAC;AAAA,EAAC,GACpCpiC,EAAA,EAAA,IAAA+2B,WAAAl7B,OAAAmE,QAAAmiC,oBAAAniC,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAJH,QAAA4iC,oBAA0B5rB;AAMzB,MAAAC;AAAAjX,YAAA+2B,WAAAl7B,SAAAmE,UAAAmiC,sBAEClrB,MAAA4rB,CAAAA,QAAA;AACEV,uBAAmB,EAAI,GACvBpL,WAASl7B,OAAgByyB,UAAG8T,GAAC;AAAA,EAAC,GAC/BpiC,EAAA,EAAA,IAAA+2B,WAAAl7B,OAAAmE,QAAAmiC,oBAAAniC,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAJH,QAAA2uB,cAAoB1X;AAMnB,MAAAC;AAAAlX,YAAA+2B,WAAAl7B,SAAAmE,UAAAmiC,sBAECjrB,MAAA4rB,CAAAA,QAAA;AACEX,uBAAmB,EAAI,GACvBpL,WAASl7B,OAAqBknC,eAAGX,GAAC;AAAA,EAAC,GACpCpiC,EAAA,EAAA,IAAA+2B,WAAAl7B,OAAAmE,QAAAmiC,oBAAAniC,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAJH,QAAAgjC,mBAAyB9rB;AAMxB,MAAAC;AAAAnX,YAAA+2B,WAAAl7B,SAAAmE,UAAAmiC,sBAEChrB,MAAA8rB,CAAAA,QAAA;AACEd,uBAAmB,EAAK,GACxBpL,WAASl7B,OAAqBqnC,eAAGd,GAAC;AAAA,EAAC,GACpCpiC,EAAA,EAAA,IAAA+2B,WAAAl7B,OAAAmE,QAAAmiC,oBAAAniC,QAAAmX,OAAAA,MAAAnX,EAAA,EAAA;AAJH,QAAAmjC,mBAAyBhsB;AAMxB,MAAAC;AAAApX,IAAA,EAAA,MAAAmiC,sBAAAniC,EAAA,EAAA,MAAA6hC,iBAAA7hC,EAAA,EAAA,MAAAk3B,oBAAAl3B,UAAA4hC,eAGoBxqB,MAAA;AAAA,IAAA+qB;AAAAA,IAAAjL;AAAAA,IAAA0K;AAAAA,IAAAC;AAAAA,EAAAA,GAAkE7hC,QAAAmiC,oBAAAniC,QAAA6hC,eAAA7hC,QAAAk3B,kBAAAl3B,QAAA4hC,aAAA5hC,QAAAoX,OAAAA,MAAApX,EAAA,EAAA,GAAvFojC,qBAAqBhsB,GAAkE;AAAC,MAAAC,KAAAC;AAAAtX,IAAA,EAAA,MAAAiM,YAAAjM,UAAAmiC,sBAAAniC,EAAA,EAAA,MAAA4hC,eAG9EvqB,MAAAA,MAAA;AACJpL,gBAAA21B,eAAyBO,mBAAmB,EAAK;AAAA,EAAC,GACrD7qB,OAACrL,UAAUk2B,oBAAoBP,WAAW,GAAC5hC,QAAAiM,UAAAjM,QAAAmiC,oBAAAniC,QAAA4hC,aAAA5hC,QAAAqX,KAAArX,QAAAsX,QAAAD,MAAArX,EAAA,EAAA,GAAAsX,MAAAtX,EAAA,EAAA,IAF9CuT,MAAAA,UAAU8D,KAEPC,GAA2C;AAAC,MAAAC,KAAAC;AAAAxX,IAAA,EAAA,MAAAhD,WAAAgD,UAAAmiC,sBAAAniC,EAAA,EAAA,MAAA4hC,eAGrCrqB,MAAAA,MAAA;AACJ,KAACva,WAAD4kC,eAAyBO,mBAAmB,EAAK;AAAA,EAAC,GACrD3qB,OAACxa,SAASmlC,oBAAoBP,WAAW,GAAC5hC,QAAAhD,SAAAgD,QAAAmiC,oBAAAniC,QAAA4hC,aAAA5hC,QAAAuX,KAAAvX,QAAAwX,QAAAD,MAAAvX,EAAA,EAAA,GAAAwX,MAAAxX,EAAA,EAAA,IAF7CuT,MAAAA,UAAUgE,KAEPC,GAA0C;AAAC,MAAAC,KAAAC;AAAA1X,IAAA,EAAA,MAAAmiC,sBAAAniC,UAAA4hC,eAEpCnqB,MAAAA,MAAA;AAER,QAAI,CAACmqB;AAAW;AAEhB,UAAAyB,sBAAA,SAAA/hB,OAAA;AACMA,YAAK3mB,QAAS,YAChBwnC,mBAAmB,IAAO,EAAI;AAAA,IAC/B;AAGHjoC,WAAAA,OAAMwkB,iBAAkB,WAAW2kB,mBAAmB,GAE/C,MAAA;AACLnpC,aAAMykB,oBAAqB,WAAW0kB,mBAAmB;AAAA,IAAC;AAAA,EAC3D,GACA3rB,MAAA,CAACyqB,oBAAoBP,WAAW,GAAC5hC,QAAAmiC,oBAAAniC,QAAA4hC,aAAA5hC,QAAAyX,KAAAzX,QAAA0X,QAAAD,MAAAzX,EAAA,EAAA,GAAA0X,MAAA1X,EAAA,EAAA,IAfpCuT,MAAAA,UAAUkE,KAePC,GAAiC;AAAC,MAAAC;AAAA3X,YAAA8d,mBAAA9d,EAAA,EAAA,MAAAwvB,eAAA8T,eAGrB3rB,MAAAA,MAAA;AAId,UAAA4rB,kBAAwB,CAAA,GAClBzlB,kBAAA,CAAmBA,gBAAewlB,WAAY,IAA9C,CAAA,GACJ9T,eAAa8T,eAAiB5jC,SAAQuvB,KAAKqU,WAAY;AAIzDhC,uBAAmBnjC,KAAI0J,IAAI,GAAI07B,eAAe,IAAItD,0BAA0B,CAAC;AAAA,EAAC,GAC/EjgC,QAAA8d,iBAAA9d,EAAA,EAAA,IAAAwvB,eAAA8T,aAAAtjC,QAAA2X,OAAAA,MAAA3X,EAAA,EAAA;AAAA,MAAA4X;AAAA5X,IAAA,EAAA,MAAA8d,mBAAA9d,UAAAwvB,iBAAE5X,MAAA,CAACkG,iBAAiB0R,aAAa,GAACxvB,QAAA8d,iBAAA9d,QAAAwvB,eAAAxvB,QAAA4X,OAAAA,MAAA5X,EAAA,EAAA,GAXnCwjC,MAAAA,gBAAgB7rB,KAWbC,GAAgC;AAAC,MAAAC;AAAA7X,YAAAk5B,UAGlCrhB,MAAAyhB,CAAAA,YAAA;AACE3D,aAAQ5W,UAAWua,SACnBJ,OAAAA;AAAAA,EAAQ,GACTl5B,QAAAk5B,QAAAl5B,QAAA6X,OAAAA,MAAA7X,EAAA,EAAA;AAJH,QAAAu5B,WAAiB1hB;AAMhB,MAAAC;AAAA9X,YAAAi5B,QAGCnhB,MAAA1e,CAAAA,SAAA;AACEkW,QAAGyP,UAAW3lB,MACd6/B,KAAIO,YAAapgC,IAAI;AAAA,EAAC,GACvB4G,QAAAi5B,MAAAj5B,QAAA8X,OAAAA,MAAA9X,EAAA,EAAA;AAJH,QAAAw5B,cAAoB1hB;AAMnB,MAAAC;AAAAvX,OAAA;AAGC,QAAI,CAACu2B,WAAS;AAAEhf,YAAO;AAAP,YAAAvX;AAAAA,IAAW;AAAA,QAAAg3B;AAAAx3B,MAAA,EAAA,MAAA+2B,aAAA/2B,EAAA,EAAA,MAAAsiC,cAAAtiC,EAAA,EAAA,MAAAyiC,eAAAziC,UAAA4iC,qBAAA5iC,EAAA,EAAA,MAAA2uB,eAAA3uB,EAAA,EAAA,MAAAgjC,oBAAAhjC,EAAA,EAAA,MAAAmjC,oBAEpB3L,OAAAzhB,MAAAA,aAAaghB,WAAW;AAAA,MAAAsL,QACrBC;AAAAA,MAAUhU,SACTK;AAAAA,MAAWoU,cACNC;AAAAA,MAAgBE,cAChBC;AAAAA,MAAgBX,SACrBC;AAAAA,MAAWE,eACLC;AAAAA,MAAiBtzB,KAC3B8xB;AAAAA,IAAAA,CACN,GAACphC,QAAA+2B,WAAA/2B,QAAAsiC,YAAAtiC,QAAAyiC,aAAAziC,QAAA4iC,mBAAA5iC,QAAA2uB,aAAA3uB,QAAAgjC,kBAAAhjC,QAAAmjC,kBAAAnjC,QAAAw3B,QAAAA,OAAAx3B,EAAA,EAAA,GARF+X,MAAOyf;AAAAA,EAQL;AAXJ,QAAA3hB,QAAckC;AAoBZ,MAAAyf;AAAAx3B,YAAA+2B,aAIkBS,MAAAT,YAAYzE,cAAcyE,SAAgB,IAA1C,MAA2C/2B,QAAA+2B,WAAA/2B,QAAAw3B,OAAAA,MAAAx3B,EAAA,EAAA;AAAA,MAAA03B,KAAAC;AAI/D,MAJ+D33B,UAAAk3B,oBAAEQ,MAAAA,MAAMR,kBAAkBS,MAAA,CACvFT,gBAAgB,GACjBl3B,QAAAk3B,kBAAAl3B,QAAA03B,KAAA13B,SAAA23B,QAAAD,MAAA13B,EAAA,EAAA,GAAA23B,MAAA33B,EAAA,GAAA,IAFD0jB,MAAAA,oBAAoB8T,KAA6CE,KAAwBC,GAExF,GAEG,CAAC9hB,OAAK;AAAA,QAAA+hB;AAAA,WAAA53B,EAAA,GAAA,MAAAR,OAAAC,IAAA,2BAAA,KAASm4B,OAAA72B,+BAAAoT,WAAAA,UAAA,CAAA,CAAA,GAAKnU,SAAA43B,QAAAA,OAAA53B,EAAA,GAAA,GAAL43B;AAAAA,EAAK;AAExB,MAAI3rB;AAAQ,WAAS4J;AASL,QAAA+hB,MAAAyJ,kBAAkB,IAAlB,GAAyBA,eAAe,OAAxC7lC;AAAwD,MAAAq8B;AAAA73B,IAAA,GAAA,MAAAuhC,kBAAAvhC,WAAA43B,OAF7DC,MAAA;AAAA,IAAA,GACF0J;AAAAA,IAAc1a,UACP+Q;AAAAA,EAAAA,GACX53B,SAAAuhC,gBAAAvhC,SAAA43B,KAAA53B,SAAA63B,OAAAA,MAAA73B,EAAA,GAAA;AAAA,MAAA83B;AAAA93B,IAAA,GAAA,MAAA01B,WAAA11B,EAAA,GAAA,MAAAo4B,aAAAp4B,EAAA,GAAA,MAAA41B,UAAA51B,EAAA,GAAA,MAAA61B,UAAA71B,EAAA,GAAA,MAAAhD,WAAAgD,EAAA,GAAA,MAAAmpB,WAAAnpB,EAAA,GAAA,MAAAopB,WAAAppB,WAAA8W,WAAA9W,EAAA,GAAA,MAAAsoB,aAAAtoB,EAAA,GAAA,MAAA0N,UAAA1N,EAAA,GAAA,MAAAyP,aAAAzP,EAAA,GAAA,MAAAI,UAAAJ,EAAA,GAAA,MAAAu5B,YAAAv5B,EAAA,GAAA,MAAAw5B,eAAAx5B,EAAA,GAAA,MAAA8N,UAGDgqB,qCAAC,aAAA,EAAW,GACNroB,WACKimB,SACF0C,OAAAA,WACGmB,UAAAA,UACF3D,QACAC,QACC1M,SACAC,SACAtS,SACEwR,WACH5a,QACH8rB,KAAAA,aACGp5B,QACA0N,QAEP9Q,UAAAA,QAAAA,CACH,GAAcgD,SAAA01B,SAAA11B,SAAAo4B,WAAAp4B,SAAA41B,QAAA51B,SAAA61B,QAAA71B,SAAAhD,SAAAgD,SAAAmpB,SAAAnpB,SAAAopB,SAAAppB,SAAA8W,SAAA9W,SAAAsoB,WAAAtoB,SAAA0N,QAAA1N,SAAAyP,WAAAzP,SAAAI,QAAAJ,SAAAu5B,UAAAv5B,SAAAw5B,aAAAx5B,SAAA8N,QAAA9N,SAAA83B,OAAAA,MAAA93B,EAAA,GAAA;AAAA,MAAA+3B;AAAA/3B,IAAA,GAAA,MAAAyP,aAAAzP,EAAA,GAAA,MAAAw5B,eAAAx5B,EAAA,GAAA,MAAA63B,OAAA73B,EAAA,GAAA,MAAA83B,OAAA93B,WAAA0sB,WA3BhBqL,MAAAh3B,2BAAAA,IAAC,eAAA,EACS,WAAA,WAAS,GACb0O,WACC+pB,KAAAA,aACE,OAAA3B,KAIEnL,SAEToL,UAAAA,IAAAA,CAkBF,GAAgB93B,SAAAyP,WAAAzP,SAAAw5B,aAAAx5B,SAAA63B,KAAA73B,SAAA83B,KAAA93B,SAAA0sB,SAAA1sB,SAAA+3B,OAAAA,MAAA/3B,EAAA,GAAA;AA7BlB,QAAAmhC,UACEpJ;AA6BD,MAAAC;AAAAh4B,IAAA,GAAA,MAAAihC,cAAAjhC,WAAA4hC,eAAA5hC,EAAA,GAAA,MAAAmhC,WAGCnJ,MAAA4J,gBACCX,aACClgC,2BAAAA,IAAC,UAAwB,iBAAA,OAAOkgC,cAAe,WAAtBA,aAAAzlC,QACtB2lC,UAAAA,QAAAA,CACH,IAHDA,UAMCnhC,SAAAihC,YAAAjhC,SAAA4hC,aAAA5hC,SAAAmhC,SAAAnhC,SAAAg4B,OAAAA,MAAAh4B,EAAA,GAAA;AARJ,QAAArH,WACEq/B;AAOE,MAAAC;AAAAj4B,IAAA,GAAA,MAAA01B,WAAA11B,WAAArH,YAKCs/B,MAAAvC,UAAU30B,2BAAAA,IAAC24B,QAAAA,iBAAA,EAAiB/gC,SAAAA,CAAS,IAArCA,UAAkEqH,SAAA01B,SAAA11B,SAAArH,UAAAqH,SAAAi4B,OAAAA,MAAAj4B,EAAA,GAAA;AAAA,MAAAk4B;AAAA,SAAAl4B,EAAA,GAAA,MAAA6V,SAAA7V,WAAAi4B,OAFrEC,6DAEGD,UAAAA;AAAAA,IAAAA;AAAAA,IAGApiB;AAAAA,EAAAA,EAAAA,CAAK,GACL7V,SAAA6V,OAAA7V,SAAAi4B,KAAAj4B,SAAAk4B,OAAAA,MAAAl4B,EAAA,GAAA,GANHk4B;AAMG,CAEN;AACD4I,QAAQjhC,cAAc;AAEtB,SAAAi5B,cAAAv4B,IAAA;AAAA,QAAAP,IAAAC,uBAAA,EAAA,GAAuB;AAAA,IAAAy1B;AAAAA,IAAA0C;AAAAA,IAAAzC;AAAAA,IAAA7X;AAAAA,IAAAsZ;AAAAA,IAAApD;AAAAA,EAAAA,IAAAzzB;AActB,MAAAurB;AAAA,MAAA9rB,SAAA01B,WAAA11B,EAAA,CAAA,MAAAo4B,aAAAp4B,EAAA,CAAA,MAAA21B,YAAA31B,EAAA,CAAA,MAAA8d,mBAAA9d,SAAAo3B,sBAAAp3B,EAAA,CAAA,MAAAg0B,cAAA;AAEGlI,UAA0B,CAAA;AAKZ,UAAArrB,KAAAqd,mBAAAtiB;AAA4B,QAAAqF;AAAAb,MAAA,CAAA,MAAAo3B,sBAAAp3B,SAAAg0B,gBAAAh0B,EAAA,CAAA,MAAAS,MADxCI,KAAAi5B,WAAAA,KAAK;AAAA,MAAAhG,UACOrzB;AAAAA,MAA4B22B;AAAAA,MAAAtgB,SAE7BmpB;AAAAA,MAAuBjM;AAAAA,IAAAA,CAEjC,GAACh0B,OAAAo3B,oBAAAp3B,OAAAg0B,cAAAh0B,OAAAS,IAAAT,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GANJ8rB,IAAGjL,KACDhgB,EAMF;AAAC,QAAAI;AAAAjB,MAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGQwB,KAAAsE,kBAAO;AAAA,MAAAw0B,UAAWiG;AAAAA,IAAAA,CAAyB,GAAChgC,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GAArD8rB,IAAGjL,KAAM5f,EAA4C;AAKvC,UAAA4O,KAAAiO,mBAAAtiB;AAA4B,QAAAgY;AAO1C,QAP0CxT,EAAA,EAAA,MAAAg0B,gBAAAh0B,UAAA6P,MADxC2D,KAAAsV,iBAAM;AAAA,MAAAgL,UACMjkB;AAAAA,MAA4BmkB;AAAAA,MAAAld,SAE7BmpB;AAAAA,IAAAA,CACV,GAACjgC,QAAAg0B,cAAAh0B,QAAA6P,IAAA7P,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GALJ8rB,IAAGjL,KACDrN,EAKF,GAGI4kB,WAAS;AAAA,UAAA3kB;AAAAzT,gBAAA21B,YACFliB,KAAAxD,WAAAA,MAAM;AAAA,QAAAjX,SAAU28B;AAAAA,QAAQ7e,SAAWmpB;AAAAA,MAAAA,CAAwB,GAACjgC,QAAA21B,UAAA31B,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GAArE8rB,IAAGjL,KAAMpN,EAA4D;AAAA,IAAC;AAKpEiiB,eACF5J,IAAGjL,KAAMqH,MAAM,GAChBloB,OAAA01B,SAAA11B,OAAAo4B,WAAAp4B,OAAA21B,UAAA31B,OAAA8d,iBAAA9d,OAAAo3B,oBAAAp3B,OAAAg0B,cAAAh0B,OAAA8rB;AAAAA,EAAA;AAAAA,UAAA9rB,EAAA,CAAA;AAAA,SAED8rB;AAAU;AAQd,SAAAsX,qBAAA7iC,IAAA;AAAA,QAAAP,IAAAC,uBAAA,EAAA,GAA8B;AAAA,IAAAkiC;AAAAA,IAAAjL;AAAAA,IAAA0K;AAAAA,IAAAC;AAAAA,EAAAA,IAAAthC;AAU7B,MAAAE;AAAAT,IAAA,CAAA,MAAAmiC,sBAAAniC,SAAAk3B,oBAIoCz2B,KAAAA,CAAAwd,QAAAwlB,aAAA;AACjC,IAAKvM,qBAGHA,qBAAqBjZ,UAAWA,kBAAkB5kB,QAAQ69B,iBAAgBr9B,SAAUokB,MAAM,MAG1FkkB,mBAAmB,EAAK,GAExBsB,SAAAA;AAAAA,EACD,GACFzjC,OAAAmiC,oBAAAniC,OAAAk3B,kBAAAl3B,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAXD,QAAA0jC,cAAoBplB,eAAAA,eAAe7d,EAWlC;AAAC,MAAAI;AAAAb,IAAA,CAAA,MAAA6hC,iBAAA7hC,SAAA0jC,eAAA1jC,EAAA,CAAA,MAAA4hC,eAKQ/gC,KAAAA,MAAA;AACR,QAAI,CAAC+gC,eAADC;AAA6B;AAEjC,UAAA8B,kBAAwBriB,CAAAA,UAAA;AACtBoiB,kBAAYpiB,MAAKrD,QAAS,MAAM/jB,OAAMykB,oBAAqB,aAAaglB,eAAe,CAAC;AAAA,IAAC;AAG3FzpC,WAAAA,OAAMwkB,iBAAkB,aAAailB,eAAe,GAE7C,MAAMzpC,OAAMykB,oBAAqB,aAAaglB,eAAe;AAAA,EAAC,GACtE3jC,OAAA6hC,eAAA7hC,OAAA0jC,aAAA1jC,OAAA4hC,aAAA5hC,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAA,MAAAiB;AAAAjB,IAAA,CAAA,MAAA6hC,iBAAA7hC,SAAA4hC,eAAE3gC,KAAA,CAAC4gC,eAAeD,WAAW,GAAC5hC,OAAA6hC,eAAA7hC,OAAA4hC,aAAA5hC,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA,GAV/BuT,MAAAA,UAAU1S,IAUPI,EAA4B;AAAC;ACvdlC,MAAM2iC,gBAAgBl1B,iBAAAA,OAAOgM,IAAG9L,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,6DAS1Bg1B,MAAMn1B,iBAAAA,OAAOuZ,GAAG,EAACrZ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,oCAWVi1B,UAAUz0B,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAzC,WAAA+G,KAAA/J,MAAAsc,SAAApJ,QAAA+B,WAAAlP;AAAAP,WAAAnE,SAIhC;AAAA,IAAA2B,UAAAA;AAAAA,IAAA+G;AAAAA,IAAA/J;AAAAA,IAAAsc;AAAAA,IAAApJ;AAAAA,IAAAzR,OAAAsE;AAAAA,IAAA,GAAAkP;AAAAA,EAAAA,IAA4F5T,OAAKmE,OAAAnE,OAAAmE,OAAAxC,WAAAwC,OAAAuE,KAAAvE,OAAAxF,MAAAwF,OAAA8W,SAAA9W,OAAA0N,QAAA1N,OAAAyP,WAAAzP,OAAAO,OAAA/C,YAAAwC,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAAxF,OAAAwF,EAAA,CAAA,GAAA8W,UAAA9W,EAAA,CAAA,GAAA0N,SAAA1N,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AACnE,QAAAS,KAAA8D,QAAQ/I,SADc+E,OAAA/E,SAAA,MAAA+E,KACtBgE;AAA0C,MAAA1D;AAAAb,WAAAS,MAAxDI,KAAAxF,cAAcoF,EAA0C,GAACT,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAzE,QAAA4c,UAAgB/b;AAEhB,MAAI,CAACrG,QAAQA,KAAIwB,WAAY,GAAC;AAAA,QAAAiF;AAAA,WAAAjB,EAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACrBwB,MAAAF,+BAAAoT,WAAAA,UAAA,CAAA,CAAA,GAAKnU,QAAAiB,OAAAA,MAAAjB,EAAA,EAAA,GAALiB;AAAAA,EAAK;AACb,MAAAA;AAAA,MAAAjB,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAAxF,QAAAwF,EAAA,EAAA,MAAA8W,WAAA9W,UAAA0N,QAAA;AAAA,QAAAmC;AAAA7P,MAAA,EAAA,MAAAxC,aAAAwC,UAAA8W,WAAA9W,EAAA,EAAA,MAAA0N,UAKemC,MAAAA,CAAAlV,MAAA+P,MACR3J,2BAAAA,IAAC,KAAA,EAAcvD,UAAAA,WAA2BsZ,SAAiBpJ,QACxD/S,kBAD2B+P,CAE9B,GACD1K,QAAAxC,WAAAwC,QAAA8W,SAAA9W,QAAA0N,QAAA1N,QAAA6P,OAAAA,MAAA7P,EAAA,EAAA,GAJAiB,KAAAzG,KAAIU,IAAK2U,GAIT,GAAC7P,QAAAxC,WAAAwC,QAAAxF,MAAAwF,QAAA8W,SAAA9W,QAAA0N,QAAA1N,QAAAiB;AAAAA,EAAA;AAAAA,SAAAjB,EAAA,EAAA;AAAA,MAAA6P;AAAA7P,IAAA,EAAA,MAAA4c,WAAA5c,UAAAiB,MALJ4O,oCAAC,QAAA,EAAU,IAAA,QAAY+M,KAAAA,SACpB3b,UAAAA,GAAAA,CAKH,GAASjB,QAAA4c,SAAA5c,QAAAiB,IAAAjB,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAAwT;AAAA,SAAAxT,EAAA,EAAA,MAAAsP,OAAAtP,UAAAyP,aAAAzP,EAAA,EAAA,MAAA6P,MAPX2D,oCAAC,iBAAsB,WAAA,cAAc/D,WAAgBH,KACnDO,UAAAA,IAOF,GAAgB7P,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAA6P,IAAA7P,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GARhBwT;AAQgB,CAEnB;AACDswB,QAAQjkC,cAAc;ACnDf,MAAMkkC,cAAc1kC,0BACzB,2BACA,IACF;ACZA,SAAS2kC,aAAahrC,SAAsB;AAC1C,SACGC,oBAAoBD,OAAO,KAAKA,QAAQirC,aAAa,eAAe,MAAM,UAC1E/qC,oBAAoBF,OAAO,KAAK,CAACA,QAAQiT;AAE9C;AAKO,SAASi4B,sBAAsB/lB,UAAwC;AAC5E,SAAOA,SAASxY,OAAOq+B,YAAY;AACrC;AAKO,SAASG,YAAYzV,aAA0B30B,IAA2B;AAC/E,QAAMgxB,OAAiB,CAAA;AAEvB,MAAIqX,IAAIroC;AAER,SAAOqoC,MAAM1T,eAAa;AACxB,UAAM0V,gBAAgBhC,EAAEgC;AAExB,QAAI,CAACA,cAAe,QAAOrZ;AAG3B,UAAMvc,QADW/S,MAAMof,KAAKupB,cAAcC,UAAU,EAC7BtjB,QAAQqhB,CAAC;AAIhC,QAFArX,KAAKuZ,QAAQ91B,KAAK,GAEd41B,kBAAkB1V;AACpB,aAAO3D;AAGTqX,QAAIgC;AAAAA,EACN;AAEA,SAAOrZ;AACT;AAEA,MAAMwZ,aAAuB,CAAA;AAKtB,SAASC,cAAc9V,aAAiCvQ,UAA+B;AAC5F,MAAI,CAACuQ,YAAa;AAElB,QAAMxzB,0BAAUklB,QAAAA;AAEhB,aAAWrmB,MAAMokB;AACfjjB,QAAIwlB,IAAI3mB,IAAIoqC,YAAYzV,aAAa30B,EAAE,CAAC;AAG1C,QAAM0qC,QAAQA,CAACC,GAAgBC,MAAmB;AAChD,UAAMC,KAAK1pC,IAAIqlB,IAAImkB,CAAC,KAAKH,YACnBM,KAAK3pC,IAAIqlB,IAAIokB,CAAC,KAAKJ,YAEnBj6B,MAAMnM,KAAK2J,IAAI88B,GAAG5oC,QAAQ6oC,GAAG7oC,MAAM;AAGzC,aAAS0O,IAAI,GAAGA,IAAIJ,KAAKI,KAAK,GAAG;AAC/B,YAAMo6B,SAASF,GAAGl6B,CAAC,KAAK,IAClBq6B,SAASF,GAAGn6B,CAAC,KAAK;AAExB,UAAIo6B,WAAWC;AACb,eAAOD,SAASC;AAAAA,IAEpB;AAEA,WAAO;AAAA,EACT;AAEA5mB,WAAS6mB,KAAKP,KAAK;AACrB;AC5DO,SAAAQ,kBAAAppC,OAAA;AAAA,QAAAmE,IAAAC,uBAAA,EAAA,GAML;AAAA,IAAAmhB;AAAAA,IAAA8jB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAgEvpC;AAAK,MAAA0E;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAC3Bc,KAAA,CAAA,GAAEP,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAA5C,QAAAqlC,cAAoB5hB,MAAAA,OAAsBljB,EAAE,GAC5C,CAAA+kC,aAAAC,eAAA,IAAuCvyB,eAAS,EAAE,GAClDwyB,iBAAuB/hB,MAAAA,OAAO6hB,WAAW,GACzC,CAAA7W,eAAAgX,gBAAA,IAA0CzyB,MAAAA,SAA6B,IAAI;AAAC,MAAAvS;AAAAT,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEzCgB,KAAAilC,CAAAA,oBAAA;AACjCH,oBAAgBG,eAAe,GAC/BF,eAAczmB,UAAW2mB,iBACzBD,iBAAiBJ,YAAWtmB,QAAS2mB,eAAe,KAAnC,IAA4C;AAAA,EAAC,GAC/D1lC,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAJD,QAAA2lC,iBAAuBllC;AAIjB,MAAAI;AAAAb,WAAAolC,kBAGJvkC,KAAAA,CAAA7H,SAAAqjB,aAAA;AACE,QAAI,CAACrjB;AAAO,aAASob;AAOrB,QALIixB,YAAWtmB,QAAQgC,QAAS/nB,OAAO,MAAM,OAC3CqsC,YAAWtmB,QAAQ8B,KAAM7nB,OAAO,GAChCwrC,cAAcY,eAAcrmB,SAAUsmB,YAAWtmB,OAAQ,IAGvD1C,UAAQ;AACV,YAAAupB,gBAAsBP,YAAWtmB,QAAQgC,QAAS/nB,OAAO;AAEzD2sC,qBAAeC,aAAa;AAAA,IAAC;AAC9B,WAEM,MAAA;AACL,YAAA9kB,MAAYukB,YAAWtmB,QAAQgC,QAAS/nB,OAAO;AAE3C8nB,YAAM,MACRukB,YAAWtmB,QAAQiC,OAAQF,KAAK,CAAC;AAAA,IAClC;AAAA,EACF,GACF9gB,OAAAolC,gBAAAplC,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAtBH,QAAA6lC,QAAchlC;AAwBb,MAAAI;AAAAjB,IAAA,CAAA,MAAAohB,aAAAphB,SAAAklC,iBAGCjkC,KAAAqgB,CAAAA,UAAA;AAEE,QAAIA,MAAK3mB,QAAS,OAAK;AACjBuqC,uBACFA,cAAazG,MAAAA;AACd;AAAA,IAAA;AAMH,QAAInd,MAAK3mB,QAAS,QAAM;AACtB2mB,YAAKid,eAAAA,GACLjd,MAAKkd,gBAAAA;AAGL,YAAAzkC,KAD0BmqC,sBAAsBmB,YAAWtmB,OAAQ,EACvC,CAAA;AAE5B,UAAI,CAAChlB;AAAE;AAEP,YAAA+rC,eAAqBT,YAAWtmB,QAAQgC,QAAShnB,EAAE;AAEnD4rC,qBAAeG,YAAY;AAAC;AAAA,IAAA;AAM9B,QAAIxkB,MAAK3mB,QAAS,OAAK;AACrB2mB,YAAKid,eAAAA,GACLjd,MAAKkd,gBAAAA;AAEL,YAAAuH,sBAA0B7B,sBAAsBmB,YAAWtmB,OAAQ,GACnEinB,OAAWC,oBAAkBA,oBAAiBjqC,SAAU,CAAC;AAEzD,UAAI,CAACjC;AAAE;AAEP,YAAAmsC,iBAAqBb,YAAWtmB,QAAQgC,QAAShnB,IAAE;AAEnD4rC,qBAAeG,cAAY;AAAC;AAAA,IAAA;AAK9B,QAAIxkB,MAAK3mB,QAAS,WAAS;AACzB2mB,YAAKid,eAAAA,GACLjd,MAAKkd,gBAAAA;AAEL,YAAA2H,sBAA0BjC,sBAAsBmB,YAAWtmB,OAAQ,GACnEqnB,eAAqBH,oBAAiBjqC;AAEtC,UAAIoqC,iBAAiB;AAAC;AAEtB,YAAAC,iBAAuBhB,YAAWtmB,QAASymB,eAAczmB,OAAQ;AAEjE,UAAAunB,eAAmBL,oBAAiBllB,QAASslB,cAAc;AAE3DC,sBAAgBA,eAAe,IAAIF,gBAAgBA;AAEnD,YAAAG,OAAWN,oBAAkBK,YAAY,GACzCE,iBAAqBnB,YAAWtmB,QAAQgC,QAAShnB,IAAE;AAEnD4rC,qBAAeG,cAAY;AAAC;AAAA,IAAA;AAK9B,QAAIxkB,MAAK3mB,QAAS,aAAW;AAC3B2mB,YAAKid,eAAAA,GACLjd,MAAKkd,gBAAAA;AAEL,YAAAiI,sBAA0BvC,sBAAsBmB,YAAWtmB,OAAQ,GACnE2nB,iBAAqBT,oBAAiBjqC;AAEtC,UAAIoqC,mBAAiB;AAAC;AAEtB,YAAAO,mBAAuBtB,YAAWtmB,QAASymB,eAAczmB,OAAQ;AAEjE,UAAA6nB,iBAAmBX,oBAAiBllB,QAASslB,gBAAc;AAE3DC,wBAAgBA,iBAAe,KAAKF;AAEpC,YAAAS,OAAWZ,oBAAkBK,cAAY,GACzCQ,iBAAqBzB,YAAWtmB,QAAQgC,QAAShnB,IAAE;AAEnD4rC,qBAAeG,cAAY;AAAC;AAAA,IAAA;AAK1B1kB,iBACFA,UAAUE,KAAK;AAAA,EAChB,GACFthB,OAAAohB,WAAAphB,OAAAklC,eAAAllC,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AA9FH,QAAAuhB,gBAAsBtgB;AAgGrB,MAAA4O;AAAA7P,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGCoQ,KAAA4R,CAAAA,YAAA;AACE,UAAAslB,YAAgBzlB,QAAK0lB,eACrBC,iBAAqB5B,YAAWtmB,QAAQgC,QAAS/nB,SAAO;AAExD2sC,mBAAeG,cAAY;AAAA,EAAC,GAC7B9lC,OAAA6P,MAAAA,KAAA7P,EAAA,CAAA;AANH,QAAAknC,uBAA6Br3B;AAQ5B,MAAA2D;AAAAxT,WAAAolC,kBAEwC5xB,KAAAA,MAAA;AAMvCmyB,mBAAe,EAAE,GACjBP,eAAcrmB,SAAe0f,MAAAA;AAAAA,EAAE,GAChCz+B,OAAAolC,gBAAAplC,OAAAwT,MAAAA,KAAAxT,EAAA,CAAA;AARD,QAAAmnC,uBAA6B3zB;AAQO,MAAAC,IAAAC;AAAA1T,IAAA,EAAA,MAAAslC,eAAAtlC,UAAAolC,kBAAAplC,EAAA,EAAA,MAAAmlC,eAG1B1xB,KAAAA,MAAA;AACR,QAAI,CAAC2xB,eAAcrmB;AAAQ;AAE3B,UAAAqoB,QAAc/zB,sBAAsB,MAAA;AAClC,UAAIiyB,gBAAgB,IAAE;AACpB,YAAIH,gBAAgB,SAAO;AAEzB,gBAAAkC,OAD0BnD,sBAAsBmB,YAAWtmB,OAAQ,EACvC,CAAA;AAE5B,cAAIhlB,MAAE;AACJ,kBAAAutC,iBAAqBjC,YAAWtmB,QAAQgC,QAAShnB,IAAE;AAEnD4rC,2BAAeG,cAAY;AAAA,UAAC;AAAA,QAC7B;AAGH,YAAIX,gBAAgB,QAAM;AACxB,gBAAAoC,sBAA0BrD,sBAAsBmB,YAAWtmB,OAAQ,GACnEyoB,OAAWvB,oBAAkBA,oBAAiBjqC,SAAU,CAAC;AAEzD,cAAIjC,MAAE;AACJ,kBAAA0tC,iBAAqBpC,YAAWtmB,QAAQgC,QAAShnB,IAAE;AAEnD4rC,2BAAeG,cAAY;AAAA,UAAC;AAAA,QAC7B;AACF;AAAA,MAAA;AAOH9sC,OAFgBqsC,YAAWtmB,QAASumB,WAAW,KAA/B,OAET7G,MAAAA;AAAAA,IAAS,CACjB;AAAC,WAEK,MAAMnrB,qBAAqB8zB,KAAK;AAAA,EAAC,GACvC1zB,KAAA,CAAC4xB,aAAaF,gBAAgBO,gBAAgBR,WAAW,GAACnlC,QAAAslC,aAAAtlC,QAAAolC,gBAAAplC,QAAAmlC,aAAAnlC,QAAAyT,IAAAzT,QAAA0T,OAAAD,KAAAzT,EAAA,EAAA,GAAA0T,KAAA1T,EAAA,EAAA,IApC7DuT,MAAAA,UAAUE,IAoCPC,EAA0D;AAAC,MAAAG;AAAA,SAAA7T,EAAA,EAAA,MAAAyuB,iBAAAzuB,EAAA,EAAA,MAAAslC,eAAAtlC,EAAA,EAAA,MAAAmnC,wBAAAnnC,EAAA,EAAA,MAAAuhB,iBAAAvhB,UAAA6lC,SAEvDhyB,KAAA;AAAA,IAAA4a;AAAAA,IAAA6W;AAAAA,IAAA4B;AAAAA,IAAAC;AAAAA,IAAA5lB;AAAAA,IAAAskB;AAAAA,EAAAA,GAON7lC,QAAAyuB,eAAAzuB,QAAAslC,aAAAtlC,QAAAmnC,sBAAAnnC,QAAAuhB,eAAAvhB,QAAA6lC,OAAA7lC,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA,GAPM6T;AAON;AAhNI,SAAAO,UAAA;AAAA;ACiBP,MAAMszB,aAAah5B,iBAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,gCAUjB84B,OAAOt4B,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAA2nC,cAAAjvC,UAAA4L,KAAAsjC,gBAAAC,UAAAC,aAAAC,cAAA5mB,WAAA8jB,eAAA+C,iBAAAx4B,WAAAlP,IAAAE;AAAA,MAAAT,SAAAnE,OAAA;AAI7B,UAAA;AAAA,MAAAlD,UAAAkI;AAAAA,MAAAqnC;AAAAA,MAAAC;AAAAA,MAAAN,gBAAA5mC;AAAAA,MAAA6mC,UAAAj4B;AAAAA,MAAAk4B,aAAAv0B;AAAAA,MAAAw0B,cAAAv0B;AAAAA,MAAA2N,WAAA1N;AAAAA,MAAAwxB,eAAArxB;AAAAA,MAAAiD,SAAAhD;AAAAA,MAAAm0B,iBAAAl0B;AAAAA,MAAAoxB,aAAAnxB;AAAAA,MAAAzP,KAAA2P;AAAAA,MAAAjY,OAAAoY;AAAAA,MAAA,GAAA0C;AAAAA,IAAAA,IAkBIlb;AAlBJlD,eAAAkI,KAAAgnC,iBAAA5mC,KAAA6mC,WAAAj4B,KAAAk4B,cAAAv0B,KAAAw0B,eAAAv0B,KAAA2N,YAAA1N,KAAAwxB,gBAAArxB,KAAAtT,KAAAuT,KAAAm0B,kBAAAl0B,MAAA6zB,eAAA5zB,MAAAzP,MAAA2P,MAAAzT,KAAA4T,KAAA5E,YAAAsH,KAkBS/W,OAAAnE,OAAAmE,OAAA4nC,cAAA5nC,OAAArH,UAAAqH,OAAAuE,KAAAvE,OAAA6nC,gBAAA7nC,OAAA8nC,UAAA9nC,OAAA+nC,aAAA/nC,OAAAgoC,cAAAhoC,OAAAohB,WAAAphB,OAAAklC,eAAAllC,QAAAioC,iBAAAjoC,QAAAyP,WAAAzP,QAAAO,IAAAP,QAAAS;AAAAA,EAAA;AAAAmnC,mBAAA5nC,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAA6nC,iBAAA7nC,EAAA,CAAA,GAAA8nC,WAAA9nC,EAAA,CAAA,GAAA+nC,cAAA/nC,EAAA,CAAA,GAAAgoC,eAAAhoC,EAAA,CAAA,GAAAohB,YAAAphB,EAAA,CAAA,GAAAklC,gBAAAllC,EAAA,CAAA,GAAAioC,kBAAAjoC,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA;AANP,QAAA8W,UAAAvW,OAAA/E,SAAA,IAAA+E,IAOFqc,UAAgBrY,QAAQ/I,SAHfiF,OAAAjF,SAAA,IAAAiF,KAGO8D,KAChB4gC,cACEyC,iBAAkB/rC,MAAKqsC,cAAL,WAAiCrsC,MAAKssC,aAAL,UAAlC,OAEnB74B,MAAYmU,MAAAA,OAA8B,IAAI;AAAC,MAAA5iB;AAAAb,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEiCoB,KAAAA,MAAMyO,IAAGyP,SAAQ/e,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAAjG0jB,MAAAA,oBAAkEL,cAAcxiB,EAAiB;AAEjG,QAAA;AAAA,IAAAusB;AAAAA,EAAAA,IAAqBY,SAAAA;AAAU,MAAA/sB;AAAAjB,IAAA,EAAA,MAAAohB,aAAAphB,UAAAklC,iBAAAllC,EAAA,EAAA,MAAAmlC,eASTlkC,KAAA;AAAA,IAAAmgB;AAAAA,IAAA8jB;AAAAA,IAAAC;AAAAA,IAAAC,gBAAwD91B;AAAAA,EAAAA,GAAItP,QAAAohB,WAAAphB,QAAAklC,eAAAllC,QAAAmlC,aAAAnlC,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAPlF,QAAA;AAAA,IAAAyuB;AAAAA,IAAA6W;AAAAA,IAAA4B;AAAAA,IAAAC;AAAAA,IAAA5lB;AAAAA,IAAAskB;AAAAA,EAAAA,IAOIZ,kBAAkBhkC,EAA4D,GAElFmnC,uBAA6B3kB,MAAAA,OAA4B,IAAI;AAAC,MAAA5T;AAAA7P,YAAAioC,mBAE5Dp4B,KAAA9V,CAAAA,OAAA;AAEMquC,yBAAoBrpB,YAKtBqpB,qBAAoBrpB,WACpBqpB,qBAAoBrpB,UAAW,OAGjCzP,IAAGyP,UAAWhlB,IAGVuV,IAAGyP,WAAHkpB,oBACFG,qBAAoBrpB,UAAWkpB,gBAAgB34B,IAAGyP,OAAQ;AAAA,EAC3D,GACF/e,QAAAioC,iBAAAjoC,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAlBH,QAAAqoC,kBAAwBx4B;AAoBvB,MAAA2D,IAAAC;AAAAzT,IAAA,EAAA,MAAAslC,eAAAtlC,UAAAgoC,gBAGSx0B,KAAAA,MAAA;AACJw0B,oBAAcA,aAAa1C,WAAW;AAAA,EAAC,GAC1C7xB,KAAA,CAAC6xB,aAAa0C,YAAY,GAAChoC,QAAAslC,aAAAtlC,QAAAgoC,cAAAhoC,QAAAwT,IAAAxT,QAAAyT,OAAAD,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,IAF9BuT,MAAAA,UAAUC,IAEPC,EAA2B;AAAC,MAAAC;AAAA1T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGoBiU,KAAAA,MAAM,CAACpE,IAAGyP,OAAQ,GAAC/e,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA,GAAtE4d,qBAAqBwP,cAAAya,gBAA8Bn0B,EAAmB;AAAC,MAAAG;AAAA7T,IAAA,EAAA,MAAAotB,cAAAptB,UAAA8nC,YAKnEj0B,KAAAyN,CAAAA,UAAA;AACO8L,kBAED9L,MAAK3mB,QAAS,aAChB2mB,MAAKkd,gBAAAA,GACDsJ,YAAUA;EACf,GACF9nC,QAAAotB,YAAAptB,QAAA8nC,UAAA9nC,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA,GATLmhB,iBACEtN,EAWF;AAAC,MAAAC;AAAA9T,IAAA,EAAA,MAAAyuB,iBAAAzuB,EAAA,EAAA,MAAAknC,wBAAAlnC,EAAA,EAAA,MAAAmnC,wBAAAnnC,EAAA,EAAA,MAAA6lC,SAAA7lC,EAAA,EAAA,MAAA6nC,kBAAA7nC,EAAA,EAAA,MAAA8nC,YAAA9nC,EAAA,EAAA,MAAA+nC,eAAA/nC,UAAAioC,mBAIIn0B,KAAA;AAAA,IAAApT,SACU;AAAA,IAAC+tB;AAAAA,IAAAoX;AAAAA,IAAAgC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAO,kBAMQpB;AAAAA,IAAoBqB,kBACpBpB;AAAAA,IAAoBc;AAAAA,EAAAA,GAEvCjoC,QAAAyuB,eAAAzuB,QAAAknC,sBAAAlnC,QAAAmnC,sBAAAnnC,QAAA6lC,OAAA7lC,QAAA6nC,gBAAA7nC,QAAA8nC,UAAA9nC,QAAA+nC,aAAA/nC,QAAAioC,iBAAAjoC,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAZL,QAAAvF,QAEKqZ;AAqBJ,MAAAC;AAAA/T,IAAA,EAAA,MAAArH,YAAAqH,UAAA4c,WAaK7I,MAAAhT,2BAAAA,IAAC,OAAA,EAAW6b,KAAAA,SAAUjkB,SAAAA,CAAS,GAAQqH,QAAArH,UAAAqH,QAAA4c,SAAA5c,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAgU;AAAAhU,IAAA,EAAA,MAAAuhB,iBAAAvhB,EAAA,EAAA,MAAAqoC,mBAAAroC,EAAA,EAAA,MAAA8W,WAAA9W,EAAA,EAAA,MAAAyP,aAAAzP,UAAA+T,OATzCC,qCAAC,YAAA,EACS,WAAA,QAAM,GACVvE,WACO8R,WAAAA,eACFzK,SACJuxB,sBACA,MAAA,QACK,UAAA,IAEVt0B,UAAAA,IAAAA,CACF,GAAa/T,QAAAuhB,eAAAvhB,QAAAqoC,iBAAAroC,QAAA8W,SAAA9W,QAAAyP,WAAAzP,QAAA+T,KAAA/T,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAA,MAAAkU;AAAA,SAAAlU,EAAA,EAAA,MAAAgU,OAAAhU,UAAAvF,SAXfyZ,MAAAnT,2BAAAA,IAAA,YAAA,UAAA,EAA6BtG,OAC3BuZ,UAAAA,IAAAA,CAWF,GAAuBhU,QAAAgU,KAAAhU,QAAAvF,OAAAuF,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA,GAZvBkU;AAYuB,CAE1B;AACDyzB,KAAK9nC,cAAc;AC7KnB,MAAM2oC,oBAAoB95B,iBAAAA,OAAO+5B,GAAE75B,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA;AAMnC25B,kBAAkB3oC,cAAc;AAUzB,MAAM6oC,cAAcF;ACNpB,SAASG,sBAA8C;AAC5D,SAAOp9B,iBAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAqBT;AAEO,SAASq9B,qBACd/sC,OACwB;AACxB,QAAM;AAAA,IAAC8P;AAAAA,EAAAA,IAAS9P,OACV;AAAA,IAACqJ;AAAAA,IAAOjL;AAAAA,EAAAA,IAASiC,MAAAA,YAAYL,MAAMD,KAAK,GACxC0E,OAAO4E,MAAMmY,WAAW1R,KAAK;AAEnC,SAAOJ,iBAAAA;AAAAA,MACH8N,gBAAgBnU,OAAO5E,KAAKwL,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAShCuN,gBAAgBnU,OAAO5E,KAAK2L,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnCoN,gBAAgBnU,OAAO5E,KAAKkb,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKpCnC,gBAAgBnU,OAAO5E,KAAK+b,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjChD,gBAAgBnU,OAAO5E,KAAKmM,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpC4M,gBAAgBnU,OAAO5E,KAAKkb,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAU1CnC,gBAAgBnU,OAAO5E,KAAK2L,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnCoN,gBAAgBnU,OAAO5E,KAAKkb,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpCnC,gBAAgBnU,OAAO5E,KAAK+b,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjChD,gBAAgBnU,OAAO5E,KAAKmM,OAAO,CAAC;AAAA;AAAA;AAAA,gBAGpC4M,gBAAgBnU,OAAO5E,KAAKkb,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO9CvhB,OAAOnC,MAAMsJ,IAAI;AAAA;AAEvB;ACzGO,MAAMynC,aAAan6B,iCAAAA,OAAOsJ,GAAG,EAACpJ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,EACnCpB,uBACAk7B,qBACAC,oBAAoB;AAEtBC,WAAWhpC,cAAc;ACTlB,SAAAipC,UAAA;AACL,QAAAruC,QAAc0F,MAAAA,WAAW4jC,WAAW;AAEpC,MAAI,CAACtpC;AACH,UAAM,IAAIsB,MAAM,kCAAkC;AAMpD,MAAI,CAACwvB,SAAS9wB,KAAK,KAAKA,MAAKiG,YAAa;AACxC,UAAM,IAAI3E,MAAM,gDAAgD;AACjE,SAEMtB;AAAK;AC2Bd,SAAAsuC,mBAAAltC,OAAA;AAAA,QAAAmE,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAA2b,eAAAjjB,UAAA4L,KAAAykC,WAAAxG,SAAAhK,SAAA/oB,WAAAlP,IAAAE,IAAAI,IAAAI,IAAA4O,IAAA2D,IAAA5I;AAAA5K,WAAAnE,SAIE;AAAA,IAAAwW,IAAA9R;AAAAA,IAAA5H;AAAAA,IAAA6E,UAAAiD;AAAAA,IAAA0Z,MAAAyB;AAAAA,IAAAqtB,MAAAD;AAAAA,IAAAxG;AAAAA,IAAA1rB,SAAAjW;AAAAA,IAAA23B;AAAAA,IAAA9qB,QAAAzM;AAAAA,IAAAsD;AAAAA,IAAAtI,OAAA4T;AAAAA,IAAAjF;AAAAA,IAAAtK,MAAAkT;AAAAA,IAAA,GAAA/D;AAAAA,EAAAA,IAeI5T,OAAKmE,OAAAnE,OAAAmE,OAAA4b,eAAA5b,OAAArH,UAAAqH,OAAAuE,KAAAvE,OAAAgpC,WAAAhpC,OAAAwiC,SAAAxiC,OAAAw4B,SAAAx4B,OAAAyP,WAAAzP,OAAAO,IAAAP,OAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAA4K,SAAAgR,gBAAA5b,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAAgpC,YAAAhpC,EAAA,CAAA,GAAAwiC,UAAAxiC,EAAA,CAAA,GAAAw4B,UAAAx4B,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAA4K,OAAA5K,EAAA,EAAA;AAdP,QAAAqS,KAAA9R,OAAA/E,SAAA,WAAA+E,IAEA/C,YAAAiD,OAAAjF,SAAA,IAAAiF,IAIAqW,UAAAjW,OAAArF,SAAA,IAAAqF,IAEA6M,SAAAzM,OAAAzF,SAAA,IAAAyF,IAEO0b,mBAAA9M,OAAArU,SAAA,IAAAqU,IAEPvP,OAAAkT,OAAAhY,SAAA,YAAAgY,IAGFoJ,UAAgBrY,QAAQ/I,SAARmhB,mBAAApY,KAChB0kC,OAAaH,WACb;AAAA,IAAA1oC;AAAAA,EAAAA,IAAiBc,gBACjB;AAAA,IAAAutB;AAAAA,IAAAoX;AAAAA,IAAAgC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAO,kBAAAY;AAAAA,IAAAjB;AAAAA,EAAAA,IAQIgB,MACJX,mBAAyBY,qBAAqBD,KAAIX,kBAClD,CAAA5Z,aAAAya,cAAA,IAAsCn2B,MAAAA,SAAoD,IAAI,GAC9F,CAAAikB,MAAAmS,OAAA,IAAwBp2B,eAAS,EAAK,GACtC,CAAAmyB,aAAAkE,cAAA,IAAsCr2B,MAAAA,SAAkC,IAAI,GAC5Es2B,SAAe1jC,CAAAA,CAAQ6oB,iBAAkBA,kBAAkBC,aAC3D,CAAA6a,YAAAC,aAAA,IAAoCx2B,MAAAA,SAAS,EAAK;AAAC,MAAAS;AAAAzT,YAAAsoC,oBAGjD70B,KAAA6N,CAAAA,UAAA;AACEkoB,kBAAc,EAAK,GACnBlB,iBAAiBhnB,KAAK,GACtB8nB,QAAQ,EAAI;AAAA,EAAC,GACdppC,QAAAsoC,kBAAAtoC,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA;AALH,QAAAgjC,mBAAyBvvB;AAOxB,MAAAC;AAAA1T,YAAA0uB,eAGChb,KAAA+N,CAAAA,YAAA;AACMH,YAAK3mB,QAAS,gBAChB2mB,QAAKkd,gBAAAA,GAEL4K,QAAQ,EAAK,GAEb/1B,sBAAsB,MAAA;AACpBqb,mBAAW+P,MAAAA;AAAAA,IAAS,CACrB;AAAA,EACF,GACFz+B,QAAA0uB,aAAA1uB,QAAA0T,MAAAA,KAAA1T,EAAA,EAAA;AAXH,QAAAypC,oBAA0B/1B;AAazB,MAAAG;AAAA7T,YAAAwiC,WAGC3uB,KAAA61B,CAAAA,YAAA;AACElH,cAAUlhB,OAAK,GAEf+nB,eAAe,OAAO,GACtBD,QAAQ,EAAI;AAAA,EAAC,GACdppC,QAAAwiC,SAAAxiC,QAAA6T,MAAAA,KAAA7T,EAAA,EAAA;AANH,QAAAyiC,cAAoB5uB;AAQnB,MAAAC;AAAA9T,YAAA+nC,eAEwCj0B,KAAAA,MAAA;AACvCs1B,YAAQ,EAAK,GACbrB,cAAAA;AAAAA,EAAe,GAChB/nC,QAAA+nC,aAAA/nC,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AAHD,QAAA2pC,uBAA6B71B;AAGZ,MAAAC;AAAA/T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEwBsU,MAAAA,MAAMy1B,cAAc,EAAI,GAACxpC,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAlE,QAAA4pC,uBAA6B71B;AAA0C,MAAAC,KAAAE;AAAAlU,IAAA,EAAA,MAAA6lC,SAAA7lC,UAAA0uB,eAG7D1a,MAAAA,MAAM6xB,MAAMnX,WAAW,GAAGxa,MAAA,CAAC2xB,OAAOnX,WAAW,GAAC1uB,QAAA6lC,OAAA7lC,QAAA0uB,aAAA1uB,QAAAgU,KAAAhU,QAAAkU,QAAAF,MAAAhU,EAAA,EAAA,GAAAkU,MAAAlU,EAAA,EAAA,IAAxDuT,MAAAA,UAAUS,KAA0BE,GAAoB;AAAC,MAAAG,KAAA0C;AAAA/W,YAAAspC,UAG/Cj1B,MAAAA,MAAA;AAEHi1B,cAAQF,QAAQ,EAAK;AAAA,EAAC,GAC1BryB,MAAA,CAACuyB,MAAM,GAACtpC,QAAAspC,QAAAtpC,QAAAqU,KAAArU,QAAA+W,QAAA1C,MAAArU,EAAA,EAAA,GAAA+W,MAAA/W,EAAA,EAAA,IAHXuT,gBAAUc,KAGP0C,GAAQ;AAAC,MAAAC,KAAAC;AAAAjX,YAAAi3B,QAGFjgB,MAAAA,MAAA;AAEHigB,YAAMuS,cAAc,EAAK;AAAA,EAAC,GAC9BvyB,MAAA,CAACggB,IAAI,GAACj3B,QAAAi3B,MAAAj3B,QAAAgX,KAAAhX,QAAAiX,QAAAD,MAAAhX,EAAA,EAAA,GAAAiX,MAAAjX,EAAA,EAAA,IAHTuT,gBAAUyD,KAGPC,GAAM;AAAC,MAAAC,KAAAC;AAAAnX,YAAAmlC,eAGAjuB,MAAAA,MAAA;AACR,QAAI,CAACiuB;AAAW;AAGhB,UAAAiC,QAAc/zB,sBAAsB,MAAMg2B,eAAe,IAAI,CAAC;AAAC,WAExD,MAAM/1B,qBAAqB8zB,KAAK;AAAA,EAAC,GACvCjwB,MAAA,CAACguB,WAAW,GAACnlC,QAAAmlC,aAAAnlC,QAAAkX,KAAAlX,QAAAmX,QAAAD,MAAAlX,EAAA,EAAA,GAAAmX,MAAAnX,EAAA,EAAA,IAPhBuT,gBAAU2D,KAOPC,GAAa;AAAC,MAAAC;AAAApX,IAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA2pC,wBAAA3pC,EAAA,EAAA,MAAAypC,qBAAAzpC,EAAA,EAAA,MAAAgpC,aAAAhpC,EAAA,EAAA,MAAA6nC,kBAAA7nC,EAAA,EAAA,MAAA8nC,YAAA9nC,EAAA,EAAA,MAAAioC,mBAAAjoC,UAAAmlC,eAGf/tB,MAAArW,2BAAAA,IAAC,QAAI,GACCioC,WACYnB,gBACNC,UACG6B,aAAAA,sBACFF,8BACGG,cAAAA,sBACG3B,iBACJ9C,uBAGf,GAAOnlC,QAAArH,UAAAqH,QAAA2pC,sBAAA3pC,QAAAypC,mBAAAzpC,QAAAgpC,WAAAhpC,QAAA6nC,gBAAA7nC,QAAA8nC,UAAA9nC,QAAAioC,iBAAAjoC,QAAAmlC,aAAAnlC,QAAAoX,OAAAA,MAAApX,EAAA,EAAA;AAZT,QAAA6pC,YACEzyB;AAYD,MAAAC;AAAArX,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEiC4X,MAAAyyB,CAAAA,YAAA;AAChC,UAAA7rB,SAAeqD,QAAK0lB;AAEpB,QAAItnC,SAAQ+uB,kBAAmBxQ,UAI3BqD,QAAK3mB,QAAS,cAAY;AAC5B0uC,qBAAe,OAAO,GACtBD,QAAQ,EAAI,GACZI,cAAc,EAAI;AAAC;AAAA,IAAA;AAAA,EAGpB,GACFxpC,QAAAqX,OAAAA,MAAArX,EAAA,EAAA;AAdD,QAAAuhB,gBAAsBlK,KAuBFC,MAAAjF,OAAO,WAAPk3B,aAAA/tC,QACA+b,MAAAlF,OAAO,WAAPk3B,aAAA/tC,QACCgc,OAAC+xB,cAADD,SAAA,KAAA9tC;AAAsC,MAAAic;AAAAzX,YAAA0N,UAC5C+J,MAAApc,cAAcqS,MAAM,GAAC1N,QAAA0N,QAAA1N,QAAAyX,OAAAA,MAAAzX,EAAA,EAAA;AAQxB,QAAA0X,MAAArF,OAAO,WAAP,WAAA7W;AAAsC,MAAAmc;AAAA3X,IAAA,EAAA,MAAA4b,iBAAA5b,UAAAxC,aAGzCma,MAAAiE,iBACC3H,2BAAAA,KAAC,MAAA,EAAWzW,MAAAA,WACTgY,UAAAA;AAAAA,IAAAA,MAAAA,eAAeoG,aAA8B,KAA7CA;AAAAA,IACAlJ,QAAAA,mBAAmBkJ,aAAkC,KAAhB7a,2BAAAA,IAAC,eAAA,CAAA,CAAa;AAAA,EAAA,EAAA,CACtD,GACDf,QAAA4b,eAAA5b,QAAAxC,WAAAwC,QAAA2X,OAAAA,MAAA3X,EAAA,EAAA;AAAA,MAAA4X;AAAA5X,IAAA,EAAA,MAAAxC,aAAAwC,UAAA4K,QAEDgN,MAAA7W,2BAAAA,IAAC,OAAU,MAAA,GACT,yCAAC,MAAA,EAAWvD,iBAAuB,cAAA,YAAkB,QAAA,UAClDoN,gBACH,EAAA,CACF,GAAM5K,QAAAxC,WAAAwC,QAAA4K,MAAA5K,QAAA4X,OAAAA,MAAA5X,EAAA,EAAA;AAAA,MAAA6X;AAAA7X,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGJoY,MAAA9W,2BAAAA,IAACgpC,MAAAA,kBAAA,CAAA,CAAgB,GAAG/pC,QAAA6X,OAAAA,MAAA7X,EAAA,EAAA;AAAA,MAAA8X;AAAA9X,YAAAxC,aADtBsa,MAAA/W,+BAAC,MAAA,EAAWvD,MAAAA,WACVqa,UAAAA,KACF,GAAO7X,QAAAxC,WAAAwC,QAAA8X,OAAAA,MAAA9X,EAAA,EAAA;AAAA,MAAA+X;AAAA/X,IAAA,EAAA,MAAA8W,WAAA9W,EAAA,EAAA,MAAA4c,WAAA5c,EAAA,EAAA,MAAA2X,OAAA3X,EAAA,EAAA,MAAA4X,OAAA5X,UAAA8X,OAhBTC,MAAA9D,gCAAC,MAAA,EAAU2I,cAAkB9F,SAC1Ba,UAAAA;AAAAA,IAAAA;AAAAA,IAODC;AAAAA,IAMAE;AAAAA,EAAAA,EAAAA,CAGF,GAAO9X,QAAA8W,SAAA9W,QAAA4c,SAAA5c,QAAA2X,KAAA3X,QAAA4X,KAAA5X,QAAA8X,KAAA9X,QAAA+X,OAAAA,MAAA/X,EAAA,EAAA;AAAA,MAAAw3B;AAAAx3B,YAAAqS,MAAArS,EAAA,EAAA,MAAAyiC,eAAAziC,EAAA,EAAA,MAAAgjC,oBAAAhjC,UAAAyP,aAAAzP,EAAA,EAAA,MAAAI,UAAAJ,EAAA,EAAA,MAAAsX,OAAAtX,EAAA,EAAA,MAAAuX,OAAAvX,UAAAwX,OAAAxX,EAAA,EAAA,MAAAyX,OAAAzX,EAAA,EAAA,MAAA0X,OAAA1X,UAAA+X,OAAA/X,EAAA,EAAA,MAAAM,QAnCTk3B,qCAAC,YAAA,EACUnlB,WAAAA,IACD,WAAA,aACKA,aAAAA,IAAE,GACX5C,WACU,gBAAA6H,KACA,gBAAAC,KACC,iBAAAC,KACN,SAAAC,KACFnX,OAAAA,MACEF,SAAAA,QACAqiC,sBACElhB,WAAAA,eACGyhB,cAAAA,kBACTmG,qBACK,UAAA,IACJ,MAAAzxB,KAENK,UAAAA,IAAAA,CAkBF,GAAa/X,QAAAqS,IAAArS,QAAAyiC,aAAAziC,QAAAgjC,kBAAAhjC,QAAAyP,WAAAzP,QAAAI,QAAAJ,QAAAsX,KAAAtX,QAAAuX,KAAAvX,QAAAwX,KAAAxX,QAAAyX,KAAAzX,QAAA0X,KAAA1X,QAAA+X,KAAA/X,QAAAM,MAAAN,QAAAw3B,OAAAA,MAAAx3B,EAAA,EAAA;AAAA,MAAA03B;AAAA,SAAA13B,EAAA,EAAA,MAAA6pC,aAAA7pC,EAAA,EAAA,MAAAi3B,QAAAj3B,EAAA,EAAA,MAAAw4B,WAAAx4B,UAAAw3B,OArCfE,MAAA32B,2BAAAA,IAAC,WAAO,GAAKy3B,SAAkBqR,SAAAA,WAAmB,WAAA,sBAA2B5S,MAC3EO,UAAAA,IAAAA,CAqCF,GAAUx3B,QAAA6pC,WAAA7pC,QAAAi3B,MAAAj3B,QAAAw4B,SAAAx4B,QAAAw3B,KAAAx3B,QAAA03B,OAAAA,MAAA13B,EAAA,EAAA,GAtCV03B;AAsCU;AAIdqR,mBAAmBlpC,cAAc;AAK1B,MAAMmqC,YAAYjB,oBCxLnBkB,oBAAoB56B,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAA2b,eAAAC,oBAAAljB,UAAAsT,UAAA1H,KAAA2lC,SAAA1H,SAAAr3B,eAAAC,aAAAF,cAAAD,YAAA2L,UAAAC,UAAA2E,SAAA/L,WAAA06B,cAAA5pC,IAAAE,IAAAI,IAAAI,IAAA4O,IAAA2D,IAAA5I;AAAA5K,WAAAnE,SAOnC;AAAA,IAAAwW,IAAA9R;AAAAA,IAAA5H;AAAAA,IAAAsT;AAAAA,IAAAzO,UAAAiD;AAAAA,IAAAypC;AAAAA,IAAA/vB,MAAAyB;AAAAA,IAAAW,WAAAV;AAAAA,IAAA2mB;AAAAA,IAAA1rB,SAAAjW;AAAAA,IAAA+V;AAAAA,IAAAC;AAAAA,IAAA5L;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAoQ;AAAAA,IAAA9N,QAAAzM;AAAAA,IAAAob,UAAA8tB;AAAAA,IAAA5lC;AAAAA,IAAAtI,OAAA4T;AAAAA,IAAAjF;AAAAA,IAAAtK,MAAAkT;AAAAA,IAAA,GAAA/D;AAAAA,EAAAA,IAwBI5T,OAAKmE,OAAAnE,OAAAmE,OAAA4b,eAAA5b,OAAA6b,oBAAA7b,OAAArH,UAAAqH,OAAAiM,UAAAjM,OAAAuE,KAAAvE,OAAAkqC,SAAAlqC,OAAAwiC,SAAAxiC,OAAAmL,eAAAnL,OAAAoL,aAAApL,QAAAkL,cAAAlL,QAAAiL,YAAAjL,QAAA4W,UAAA5W,QAAA6W,UAAA7W,QAAAwb,SAAAxb,QAAAyP,WAAAzP,QAAAmqC,cAAAnqC,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAA6P,IAAA7P,QAAAwT,IAAAxT,QAAA4K,SAAAgR,gBAAA5b,EAAA,CAAA,GAAA6b,qBAAA7b,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAiM,WAAAjM,EAAA,CAAA,GAAAuE,MAAAvE,EAAA,CAAA,GAAAkqC,UAAAlqC,EAAA,CAAA,GAAAwiC,UAAAxiC,EAAA,CAAA,GAAAmL,gBAAAnL,EAAA,CAAA,GAAAoL,cAAApL,EAAA,CAAA,GAAAkL,eAAAlL,EAAA,EAAA,GAAAiL,aAAAjL,EAAA,EAAA,GAAA4W,WAAA5W,EAAA,EAAA,GAAA6W,WAAA7W,EAAA,EAAA,GAAAwb,UAAAxb,EAAA,EAAA,GAAAyP,YAAAzP,EAAA,EAAA,GAAAmqC,eAAAnqC,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAiB,KAAAjB,EAAA,EAAA,GAAA6P,KAAA7P,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAA4K,OAAA5K,EAAA,EAAA;AAvBP,QAAAqS,KAAA9R,OAAA/E,SAAA,WAAA+E,IAGA/C,YAAAiD,OAAAjF,SAAA,IAAAiF,IAKAqW,UAAAjW,OAAArF,SAAA,IAAAqF,IAQA6M,SAAAzM,OAAAzF,SAAA,IAAAyF,IAGO0b,mBAAA9M,OAAArU,SAAA,IAAAqU,IAEPvP,OAAAkT,OAAAhY,SAAA,YAAAgY,IAGFoJ,UAAgBrY,QAAQ/I,SAARmhB,mBAAApY,KAChB;AAAA,IAAAnE;AAAAA,EAAAA,IAAiBc,aAAAA,GACjB+nC,OAAaH,WACb;AAAA,IAAAra;AAAAA,IAAAoX;AAAAA,IAAAkC;AAAAA,IAAAO,kBAAAY;AAAAA,IAAAX,kBAAA6B;AAAAA,EAAAA,IAMInB,MACJX,mBAAyBY,qBAAqBD,KAAIX,kBAClDC,mBAAyB6B,qBAAqBnB,KAAIV,kBAClD,CAAA7Z,aAAAya,cAAA,IAAsCn2B,eAAgC,IAAI,GAC1Es2B,SAAe1jC,CAAAA,CAAQ6oB,iBAAkBA,kBAAkBC,aAC3Dpf,MAAYmU,MAAAA,OAA8B,IAAI;AAAC,MAAAhQ;AAAAzT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEiCgU,KAAAA,MAAMnE,IAAGyP,SAAQ/e,QAAAyT,MAAAA,KAAAzT,EAAA,EAAA,GAAjG0jB,MAAAA,oBAAkEL,cAAc5P,EAAiB;AAAC,MAAAC,IAAAG;AAAA7T,IAAA,EAAA,MAAA6lC,SAAA7lC,UAAA0uB,eAAA1uB,EAAA,EAAA,MAAAmqC,gBAExFz2B,KAAAA,MAAMmyB,MAAMnX,aAAayb,YAAY,GAAGt2B,MAACgyB,OAAOnX,aAAayb,YAAY,GAACnqC,QAAA6lC,OAAA7lC,QAAA0uB,aAAA1uB,QAAAmqC,cAAAnqC,QAAA0T,IAAA1T,QAAA6T,OAAAH,KAAA1T,EAAA,EAAA,GAAA6T,KAAA7T,EAAA,EAAA,IAApFuT,gBAAUG,IAAwCG,EAAkC;AAAC,MAAAC;AAAA9T,IAAA,EAAA,MAAAiM,YAAAjM,UAAAwiC,WAAAxiC,EAAA,EAAA,MAAA+nC,eAGnFj0B,KAAAwN,CAAAA,UAAA;AACMrV,iBACAu2B,WAASA,QAAQlhB,KAAK,GACtBymB,eAAaA;EAAa,GAC/B/nC,QAAAiM,UAAAjM,QAAAwiC,SAAAxiC,QAAA+nC,aAAA/nC,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA;AALH,QAAAyiC,cAAoB3uB;AAOnB,MAAAC;AAAA/T,IAAA,EAAA,MAAA8W,WAAA9W,EAAA,EAAA,MAAAmL,iBAAAnL,EAAA,EAAA,MAAAoL,eAAApL,UAAAkL,gBAAAlL,EAAA,EAAA,MAAAiL,cAAAjL,EAAA,EAAA,MAAA4W,YAAA5W,EAAA,EAAA,MAAA6W,YAGQ9C,MAAA;AAAA,IAAA+C;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAA5L;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,GAQNpL,QAAA8W,SAAA9W,QAAAmL,eAAAnL,QAAAoL,aAAApL,QAAAkL,cAAAlL,QAAAiL,YAAAjL,QAAA4W,UAAA5W,QAAA6W,UAAA7W,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AATH,QAAAqqC,eACSt2B;AAUR,MAAAC;AAAAhU,YAAAxC,aAEuBwW,MAAA3Y,cAAcmC,SAAQ,EAACtC,IAAKkZ,KAAY,GAACpU,QAAAxC,WAAAwC,QAAAgU,OAAAA,MAAAhU,EAAA,EAAA;AAAjE,QAAAsqC,kBAAwBt2B;AAAyC,MAAAE;AAAAlU,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEtCyU,MAAAna,CAAAA,OAAA;AACzBuV,QAAGyP,UAAWhlB,IACdovC,eAAepvC,EAAE;AAAA,EAAC,GACnBiG,QAAAkU,OAAAA,MAAAlU,EAAA,EAAA;AAHD,QAAAuqC,SAAer2B,KAUGG,MAAAhC,OAAO,YAAPmJ,UAAA,KAAAhgB,QACCub,MAAAuyB,SAAA,KAAA9tC,QACAwb,MAAA/K,WAAA,KAAAzQ;AAAyB,MAAAyb;AAAAjX,YAAA0N,UAE/BuJ,MAAA5b,cAAcqS,MAAM,GAAC1N,QAAA0N,QAAA1N,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAAA,MAAAkX;AAAAlX,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACpByX,MAAA7b,cAAc,CAAC,GAAC2E,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AACnB,QAAAmX,MAAAlL,WAAA,YAAA3L,MAQD8W,MAAA/E,OAAO,WAAP,WAAA7W;AAAsC,MAAA6b;AAAArX,IAAA,EAAA,MAAA4b,iBAAA5b,EAAA,EAAA,MAAA6b,sBAAA7b,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAAkqC,WAAAlqC,EAAA,EAAA,MAAAsqC,mBAAAtqC,EAAA,EAAA,MAAAqqC,gBAAArqC,EAAA,EAAA,MAAA4c,WAAA5c,UAAA4K,QAE3CyM,OAACuE,iBAAAhR,QAAAiR,uBACA5H,2BAAAA,KAAC,QAAQ,IAAA,QAAY2I,KAAAA,SAAe,OAAA,UAAQ,GAAKytB,cAC9CzuB,UAAAA;AAAAA,IAAAA,iBACC3H,2BAAAA,KAAC,MAAA,EAAWzW,iBACTgY,UAAAA;AAAAA,MAAAA,MAAAA,eAAeoG,aAA8B,KAA7CA;AAAAA,MACAlJ,QAAAA,mBAAmBkJ,aAAkC,KAAhB7a,2BAAAA,IAAC,eAAA,CAAA,CAAa;AAAA,IAAA,GACtD;AAAA,IAGD6J,QACC7J,2BAAAA,IAAC,KAAA,EAAU,MAAA,GACT,UAAAA,2BAAAA,IAAC,MAAA,EAAWvD,MAAAA,WAAuB,cAAA,YAAkB,QAAA,UAClDoN,gBACH,GACF;AAAA,IAGDs/B,WACCnpC,2BAAAA,IAAC,SAAA,EACWupC,UAAAA,iBACJJ,MAAAA,SACC,OAAA;AAAA,MAAA5rC,WAAY;AAAA,MAAEC,cAAgB;AAAA,IAAA;IAIxCsd,sBACC5H,2BAAAA,KAAC,MAAA,EAAWzW,iBACTgY,UAAAA;AAAAA,MAAAA,MAAAA,eAAeqG,kBAAwC,KAAvDA;AAAAA,MACAnJ,QAAAA,mBAAmBmJ,kBAA4C,KAArB9a,2BAAAA,IAAC,oBAAA,CAAA,CAAkB;AAAA,IAAA,EAAA,CAChE;AAAA,EAAA,EAAA,CAEJ,GACDf,QAAA4b,eAAA5b,QAAA6b,oBAAA7b,QAAAxC,WAAAwC,QAAAkqC,SAAAlqC,QAAAsqC,iBAAAtqC,QAAAqqC,cAAArqC,QAAA4c,SAAA5c,QAAA4K,MAAA5K,QAAAqX,OAAAA,MAAArX,EAAA,EAAA;AAAA,MAAAsX;AAAAtX,IAAA,EAAA,MAAArH,YAAAqH,UAAAqqC,gBACA/yB,MAAA3e,YACCoI,2BAAAA,IAAC,KAAA,EAAO,IAAA,QAAM,GAAKspC,cAChB1xC,SAAAA,CACH,GACDqH,QAAArH,UAAAqH,QAAAqqC,cAAArqC,QAAAsX,OAAAA,MAAAtX,EAAA,EAAA;AAAA,MAAAuX;AAAA,SAAAvX,EAAA,EAAA,MAAAqS,MAAArS,EAAA,EAAA,MAAAiM,YAAAjM,EAAA,EAAA,MAAAyiC,eAAAziC,EAAA,EAAA,MAAAsoC,oBAAAtoC,EAAA,EAAA,MAAAuoC,oBAAAvoC,EAAA,EAAA,MAAAyP,aAAAzP,EAAA,EAAA,MAAAI,UAAAJ,UAAAqU,OAAArU,EAAA,EAAA,MAAA+W,OAAA/W,EAAA,EAAA,MAAAgX,OAAAhX,EAAA,EAAA,MAAAiX,OAAAjX,EAAA,EAAA,MAAAmX,OAAAnX,EAAA,EAAA,MAAAoX,OAAApX,EAAA,EAAA,MAAAqX,OAAArX,EAAA,EAAA,MAAAsX,OAzDHC,MAAAtD,gCAAC,YAAA,EACS,WAAA,YACH,MAAA,YAAU,GACXxE,WACU,gBAAA4E,KACC,iBAAA0C,KACA,iBAAAC,KACF3E,aAAAA,IACJ,SAAA4E,KACC,UAAAC,KACH,OAAAC,KACE/W,SAAAA,QACC6L,UACDw2B,SAAAA,aACK6F,gCACAC,cAAAA,kBACTgC,aACK,UAAA,IACJ,MAAAnzB,KAELC,UAAAA;AAAAA,IAAAA;AAAAA,IAiCAC;AAAAA,EAAAA,EAAAA,CAKH,GAAatX,QAAAqS,IAAArS,QAAAiM,UAAAjM,QAAAyiC,aAAAziC,QAAAsoC,kBAAAtoC,QAAAuoC,kBAAAvoC,QAAAyP,WAAAzP,QAAAI,QAAAJ,QAAAqU,KAAArU,QAAA+W,KAAA/W,QAAAgX,KAAAhX,QAAAiX,KAAAjX,QAAAmX,KAAAnX,QAAAoX,KAAApX,QAAAqX,KAAArX,QAAAsX,KAAAtX,QAAAuX,OAAAA,MAAAvX,EAAA,EAAA,GA1DbuX;AA0Da,CAEhB;AACD0yB,kBAAkBpqC,cAAc;AAKzB,MAAM2qC,WAAWP;AApJa,SAAA71B,MAAArJ,GAAA;AAAA,SA0EwBA,IAAI;AAAC;AChGlE,MAAM0/B,eAAe/7B,iBAAAA,OAAOoO,MAAM,EAAClO,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,oBAOtB67B,MAAMr7B,MAAAA,WAAW,SAAAxT,OAAAwnB,cAAA;AAAA,QAAArjB,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAA0qC,SAAAxwB,MAAA4K,IAAA6lB,OAAApI,SAAAlU,SAAA7e,WAAA4M,UAAA9b,IAAAE;AAAAT,WAAAnE,SAQ5B;AAAA,IAAAse;AAAAA,IAAA4K;AAAAA,IAAA4lB;AAAAA,IAAAntC,UAAA+C;AAAAA,IAAAqqC;AAAAA,IAAApI;AAAAA,IAAAlU;AAAAA,IAAAxX,SAAArW;AAAAA,IAAA4b;AAAAA,IAAA,GAAA5M;AAAAA,EAAAA,IAWI5T,OAAKmE,OAAAnE,OAAAmE,OAAA2qC,SAAA3qC,OAAAma,MAAAna,OAAA+kB,IAAA/kB,OAAA4qC,OAAA5qC,OAAAwiC,SAAAxiC,OAAAsuB,SAAAtuB,OAAAyP,WAAAzP,OAAAqc,UAAArc,OAAAO,IAAAP,QAAAS,OAAAkqC,UAAA3qC,EAAA,CAAA,GAAAma,OAAAna,EAAA,CAAA,GAAA+kB,KAAA/kB,EAAA,CAAA,GAAA4qC,QAAA5qC,EAAA,CAAA,GAAAwiC,UAAAxiC,EAAA,CAAA,GAAAsuB,UAAAtuB,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA,GAAAqc,WAAArc,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,EAAA;AAPP,QAAAxC,YAAA+C,OAAA/E,SAAA,IAAA+E,IAIAuW,UAAArW,OAAAjF,SAAA,IAAAiF,IAIF6O,MAAYmU,MAAAA,OAAiC,IAAI,GACjDonB,aAAmBpnB,MAAAA,OAAO,EAAK;AAAC,MAAA5iB;AAAAb,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI9BoB,KAAAA,MAAMyO,IAAGyP,SAAQ/e,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAFnB0jB,MAAAA,oBACEL,cACAxiB,EACF;AAAC,MAAAI;AAAAjB,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAE8BwB,KAAAA,MAAA;AAC7B4pC,eAAU9rB,UAAW;AAAA,EAAH,GACnB/e,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAFD,QAAAsiC,aAAmBrhC;AAEb,MAAA4O;AAAA7P,YAAAsuB,WAGJze,KAAAyR,CAAAA,UAAA;AACEupB,eAAU9rB,UAAW,IACjBuP,WAASA,QAAQhN,KAAK;AAAA,EAAC,GAC5BthB,QAAAsuB,SAAAtuB,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAJH,QAAA2uB,cAAoB9e;AAMnB,MAAA2D,IAAAC;AAAAzT,YAAA2qC,WAESn3B,KAAAA,MAAA;AACJm3B,eAAA,CAAYE,WAAU9rB,YACpBzP,IAAGyP,WAAUzP,IAAGyP,QAAQ0f,MAAAA,GAC5BoM,WAAU9rB,UAAW;AAAA,EACtB,GACAtL,KAAA,CAACk3B,OAAO,GAAC3qC,QAAA2qC,SAAA3qC,QAAAwT,IAAAxT,QAAAyT,OAAAD,KAAAxT,EAAA,EAAA,GAAAyT,KAAAzT,EAAA,EAAA,IALZuT,gBAAUC,IAKPC,EAAS;AAMO,QAAAC,KAAA2I,WAAA,SAAA,SAYLxI,KAAAwI,WAAA,IAAA;AAAiB,MAAAvI;AAAA,SAAA9T,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAA2uB,eAAA3uB,UAAAma,QAAAna,EAAA,EAAA,MAAA+kB,MAAA/kB,EAAA,EAAA,MAAA4qC,SAAA5qC,EAAA,EAAA,MAAAwiC,WAAAxiC,EAAA,EAAA,MAAA8W,WAAA9W,UAAAyP,aAAAzP,EAAA,EAAA,MAAAqc,YAAArc,EAAA,EAAA,MAAA0T,MAAA1T,UAAA6T,MAf7BC,oCAAC,cAAA,EACS,WAAA,OAAK,GACTrE,WACW,iBAAAiE,IACLlW,UAAAA,WACJ2c,MACF4K,IACC,MAAA,SACIyd,SACDF,QAAAA,YACC3T,SAAAA,aACA7X,SACJxH,KACA,MAAA,OACK+M,UACA,UAAAxI,IACJ+2B,MAAAA,OACD,MAAA,SAAA,CAAQ,GACb5qC,QAAAxC,WAAAwC,QAAA2uB,aAAA3uB,QAAAma,MAAAna,QAAA+kB,IAAA/kB,QAAA4qC,OAAA5qC,QAAAwiC,SAAAxiC,QAAA8W,SAAA9W,QAAAyP,WAAAzP,QAAAqc,UAAArc,QAAA0T,IAAA1T,QAAA6T,IAAA7T,QAAA8T,MAAAA,KAAA9T,EAAA,EAAA,GAlBF8T;AAkBE,CAEL;AACD42B,IAAI7qC,cAAc;ACvFlB,MAAMirC,eAAep8B,iBAAAA,OAAOmZ,MAAM,EAACjZ,WAAA;AAAA,EAAA/O,aAAA;AAAA,EAAAgP,aAAA;AAAA,CAAA,8FAYtBk8B,UAAU17B,MAAAA,WAAW,SAAAxT,OAAAyT,KAAA;AAAA,QAAAtP,IAAAC,qBAAAA,EAAA,EAAA;AAAA,MAAAuP,cAAAC;AAAAzP,WAAAnE,SAIhC;AAAA,IAAAlD,UAAA6W;AAAAA,IAAA,GAAAC;AAAAA,EAAAA,IAA+C5T,OAAKmE,OAAAnE,OAAAmE,OAAAwP,cAAAxP,OAAAyP,cAAAD,eAAAxP,EAAA,CAAA,GAAAyP,YAAAzP,EAAA,CAAA;AACpD,QAAA,CAAAsmC,cAAA0E,eAAA,IAAwCh4B,MAAAA,SAAS,EAAE;AAAC,MAAAzS;AAAA,MAAAP,EAAA,CAAA,MAAAwP,gBAAAxP,SAAAsmC,cAAA;AAEpD,UAAA3tC,WAAsC2c,MAAAA,SAAQC,QAAS/F,YAAY,EAAC7J,OAAQ6P,oBAAc;AAAC,QAAA/U;AAAAT,aAAAsmC,gBAEjE7lC,MAAAA,CAAAoV,OAAAC,eACxBC,MAAAA,aAAaF,OAAO;AAAA,MAAA80B,SACTrE,iBAAiBxwB;AAAAA,MAAUnb,KAC/Bmb;AAAAA,MAAUwY,SACNA,MAAM0c,gBAAgBl1B,UAAU;AAAA,IAAA,CAC1C,GAAC9V,OAAAsmC,cAAAtmC,OAAAS,OAAAA,MAAAT,EAAA,CAAA,GALSO,KAAA5H,SAAQuC,IAAKuF,GAM1B,GAACT,OAAAwP,cAAAxP,OAAAsmC,cAAAtmC,OAAAO;AAAAA,EAAA;AAAAA,SAAAP,EAAA,CAAA;AAND,QAAAirC,OAAa1qC,IAQb2qC,UAAgBD,KAAIjvC;AAAO,MAAAyE;AAAAT,WAAAkrC,WAGzBzqC,KAAA6gB,CAAAA,UAAA;AACMA,UAAK3mB,QAAS,eAChBqwC,gBAAgBG,CAAAA,eAAgBA,YAAYD,UAAU,KAAKA,OAAO,GAGhE5pB,MAAK3mB,QAAS,gBAChBqwC,gBAAgBI,CAAAA,iBAAgBD,cAAY,KAAKD,OAAO;AAAA,EACzD,GACFlrC,OAAAkrC,SAAAlrC,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AATH,QAAAuhB,gBAAsB9gB;AAWrB,MAAAI;AAAA,SAAAb,EAAA,EAAA,MAAAuhB,iBAAAvhB,EAAA,EAAA,MAAAsP,OAAAtP,EAAA,EAAA,MAAAyP,aAAAzP,UAAAirC,QAGCpqC,KAAAE,2BAAAA,IAAC,cAAA,EACS,WAAA,WAAS,GACb0O,WACO8R,WAAAA,eACNjS,KACA,MAAA,WAEJ27B,UAAAA,MACH,GAAejrC,QAAAuhB,eAAAvhB,QAAAsP,KAAAtP,QAAAyP,WAAAzP,QAAAirC,MAAAjrC,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GARfa;AAQe,CAElB;AACDkqC,QAAQlrC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|