@sanity/ui 3.0.12 → 3.0.14
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 +805 -609
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +807 -611
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +184 -144
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +185 -145
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/core/components/autocomplete/autocomplete.tsx +10 -14
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +3 -2
- package/src/core/components/dialog/dialog.tsx +10 -14
- package/src/core/components/hotkeys/hotkeys.tsx +2 -2
- package/src/core/components/menu/menuGroup.tsx +4 -2
- package/src/core/components/menu/menuItem.tsx +4 -4
- package/src/core/components/skeleton/skeleton.tsx +4 -4
- package/src/core/components/skeleton/textSkeleton.tsx +5 -6
- package/src/core/components/tree/tree.tsx +1 -0
- package/src/core/hooks/index.ts +1 -1
- package/src/core/hooks/useArrayProp.ts +3 -17
- package/src/core/hooks/useClickOutside.ts +1 -0
- package/src/core/primitives/avatar/avatar.tsx +15 -16
- package/src/core/primitives/avatar/avatarCounter.tsx +14 -17
- package/src/core/primitives/avatar/avatarStack.tsx +2 -3
- package/src/core/primitives/badge/badge.tsx +3 -3
- package/src/core/primitives/box/box.tsx +26 -26
- package/src/core/primitives/button/button.tsx +11 -12
- package/src/core/primitives/card/card.tsx +8 -8
- package/src/core/primitives/code/code.tsx +8 -2
- package/src/core/primitives/container/container.tsx +2 -2
- package/src/core/primitives/flex/flex.tsx +6 -6
- package/src/core/primitives/grid/grid.tsx +9 -9
- package/src/core/primitives/heading/heading.tsx +3 -3
- package/src/core/primitives/inline/inline.tsx +2 -2
- package/src/core/primitives/kbd/kbd.tsx +2 -2
- package/src/core/primitives/label/label.tsx +3 -3
- package/src/core/primitives/popover/popover.tsx +7 -6
- package/src/core/primitives/select/select.tsx +6 -5
- package/src/core/primitives/stack/stack.tsx +2 -2
- package/src/core/primitives/text/text.tsx +3 -3
- package/src/core/primitives/textArea/textArea.tsx +6 -5
- package/src/core/primitives/textInput/textInput.tsx +6 -5
- package/src/core/primitives/tooltip/tooltip.tsx +4 -2
- package/src/core/utils/layer/layerProvider.tsx +3 -2
- package/src/core/utils/virtualList/virtualList.tsx +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_visual-editing.mjs","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/hooks/useArrayProp.ts","../../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/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/theme/themeContext.ts","../../src/core/theme/themeProvider.tsx","../../src/core/theme/useRootTheme.ts","../../src/core/theme/themeColorProvider.tsx","../../src/core/theme/useTheme.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/styles/border/borderStyle.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/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/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 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\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","import {useState} from 'react'\n\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {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 * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {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","/**\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 {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 {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 {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\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, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // 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 if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image 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 forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_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 = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_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 = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\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 column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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 {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledText\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\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 {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {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 {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n 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 space: spaceProp = 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 = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={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 {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // 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={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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 {useArrayProp} from '../../hooks'\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 data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\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 {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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 {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\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 {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst StyledKBD = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <StyledKBD data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </StyledKBD>\n )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, 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 {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {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 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 'framer-motion'\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 'framer-motion'\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 {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, 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 = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(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 {useArrayProp, useCustomValidity} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\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 {useArrayProp} from '../../hooks'\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 space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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 {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {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 'framer-motion'\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 'framer-motion'\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 {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _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 = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = 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 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 {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst StyledHotkeys = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <StyledHotkeys data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </StyledHotkeys>\n )\n})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 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 'space'?: number | number[]\n 'aria-labelledby'?: string\n 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\nconst StyledMenu = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value = 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 space={space}>{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 {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.JSX.Element {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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 if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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 = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {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","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","Symbol","for","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","context","createContext","displayName","ThemeContext","ThemeProvider","parentTheme","useContext","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","index","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","borderStyle","$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","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","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","accent","childrenProp","restProps","textOverflow","weight","muted","t4","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","svg","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","t5","t6","t7","handleImageError","t8","initialsSize","t9","t10","t11","t12","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","T0","child","childIndex","cloneElement","String","StyledBox","Box","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","_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","spaceProp","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","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","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","options","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","autoPlacement","allowedPlacements","concat","flip","mainAxis","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","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","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.mjs","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 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\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 column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={_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 space?: 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 space: spaceProp = 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 space = _getArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={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 * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {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 {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={_getArrayProp(autoRows)}\n $autoCols={_getArrayProp(autoCols)}\n $autoFlow={_getArrayProp(autoFlow)}\n $columns={_getArrayProp(columns)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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 /** The spacing between children. */\n space?: number | number[]\n}\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={_getArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {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 // eslint-disable-next-line react-hooks/set-state-in-effect\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 'framer-motion'\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 'framer-motion'\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 padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\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 space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={_getArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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 space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {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 'framer-motion'\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 'framer-motion'\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 padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst StyledHotkeys = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = _getArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <StyledHotkeys data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </StyledHotkeys>\n )\n})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 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 'space'?: number | number[]\n 'aria-labelledby'?: string\n 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\nconst StyledMenu = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value = 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 space={space}>{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 space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.JSX.Element {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\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 space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.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={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {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","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","t12","_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","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","_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","spaceProp","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","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","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","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","options","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","autoPlacement","allowedPlacements","concat","flip","mainAxis","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","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","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","CustomButton","Tab","focused","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":";;;;;;;;;;;;AAiNO,MAAMA,mBAAmBC,oBAMnBC,WAAWC,YAMXC,WAAWC,YAMXC,WAAWC,YAMXC,aAAaC,cAMbC,WAAWC,YAMXC,WAAWC,YAMXC,OAAOC,QAMPC,SAASC,UAMTC,cAAcC,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,OACAC,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,YAAYN,KAAK;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,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,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,cAA2BN,YAAY;AACvDK,WAAAA,QAAQE,cAAclF,MACfgF;AAAAA,EACT;AAEAP,SAAAA,YAAYG,MAAM,IAAIH,YAAYG,MAAM,KAAKK,cAAiBN,YAAY,GAEnEF,YAAYG,MAAM;AAC3B;AC7BO,MAAMO,eAAeT,0BAC1B,4BACA,IACF;ACiBO,SAAAU,cAAAlE,OAAA;AAAA,QAAAmE,IAAAC,EAAA,EAAA,GACLC,cAAoBC,WAAAL,YAAuB,GAC3C;AAAA,IAAAnH;AAAAA,EAAAA,IAAmBkD,OACnBuE,SAAevE,MAAKuE,WAAYF,aAAWE,UAAY,UACvDC,YAAkBxE,MAAKD,UAAWsE,aAAWtE,SAAA,OAC7C0E,OAAazE,MAAKyE,SAAUJ,aAAWI,QAAU;AAAU,MAAAC;AAAAC,OAAA;AAAA,QAAA,CAGpDH,WAAS;AAAEE,WAAA;AAAW,YAAAC;AAAAA,IAAA;AAAA,QAAAC;AAAAT,MAAA,CAAA,MAAAK,aAAAL,SAAAI,UAAAJ,EAAA,CAAA,MAAAM,QAEpBG,MAAA;AAAA,MAAAC,SAAA;AAAA,MAAA9E,OAEEyE;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;AAAA,QAAA,CAGtBP,WAAS;AAAEI,WAAA;AAAW,YAAAG;AAAAA,IAAA;AAAA,QAAAC;AAAAb,MAAA,CAAA,MAAAK,aAAAL,SAAAI,UAAAJ,EAAA,CAAA,MAAAM,QAEpBO,MAAAC,eAAeT,WAAWD,QAAQE,IAAI,GAACN,OAAAK,WAAAL,OAAAI,QAAAJ,OAAAM,MAAAN,OAAAa,OAAAA,MAAAb,EAAA,CAAA,GAA9CS,KAAOI;AAAAA,EAAuC;AAHhD,QAAAjF,QAA4B6E;AAIC,MAAA,CAExB7E,OAAK;AAAA,QAAAiF;AAAA,WAAAb,EAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KACDoB,MAAA,oBAAA,SAAK,UAAA,8CAAA,CAA2C,GAAMb,OAAAa,OAAAA,MAAAb,EAAA,CAAA,GAAtDa;AAAAA,EAAsD;AAAA,MAAAA;AAAAb,IAAA,CAAA,MAAArH,YAAAqH,UAAApE,SAK3DiF,KAAA,oBAACE,iBAAA,EAA2BnF,OAAQjD,SAAAA,CAAS,GAAsBqH,OAAArH,UAAAqH,QAAApE,OAAAoE,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAgB;AAAA,SAAAhB,EAAA,EAAA,MAAAa,MAAAb,UAAAW,gBADrEK,KAAA,oBAAA,aAAA,UAAA,EAA8BL,OAAAA,cAC5BE,UAAAA,GAAAA,CACF,GAAwBb,QAAAa,IAAAb,QAAAW,cAAAX,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA,GAFxBgB;AAEwB;AAI5BjB,cAAcF,cAAc;ACrDrB,SAAAoB,eAAA;AACL,QAAAxG,QAAc0F,WAAAL,YAAuB;AAAC,MAAA,CAEjCrF;AAAK,UAAA,IAAAsB,MACQ,uCAAuC;AAAA,SAGlDtB;AAAK;ACEP,SAAAyG,mBAAArF,OAAA;AAAA,QAAAmE,IAAAC,EAAA,CAAA,GACL;AAAA,IAAAtH;AAAAA,IAAAyH;AAAAA,IAAAE;AAAAA,EAAAA,IAAiCzE,OACjCsF,OAAaF,gBAGYV,KAAAH,UAAUe,KAAIf;AAAO,MAAAK;AAAA,SAAAT,EAAA,CAAA,MAAArH,YAAAqH,SAAAmB,KAAAvF,SAAAoE,EAAA,CAAA,MAAAO,MAAAP,SAAAM,QAA5CG,KAAA,oBAAC,iBAAsB,QAAAF,IAA8B,OAAAY,KAAIvF,OAAc0E,MACpE3H,UACH,GAAgBqH,OAAArH,UAAAqH,EAAA,CAAA,IAAAmB,KAAAvF,OAAAoE,OAAAO,IAAAP,OAAAM,MAAAN,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAFhBS;AAEgB;AAIpBS,mBAAmBrB,cAAc;ACtB1B,SAAAuB,WAAA;AAAA,SACEC,WAAAA;AAAgB;AAMlB,SAAAC,cAAA;AAAA,QAAAtB,IAAAC,EAAA,CAAA,GACcM,KAAAc,WAAAA;AAAyB,MAAAZ;AAAA,SAAAT,SAAAO,MAArCE,KAAAvE,YAAYqE,EAAyB,GAACP,OAAAO,IAAAP,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAtCS;AAAsC;ACRxC,SAASc,wBAEd;AACA,SAAO,CAACC,QAAQC,WAAWC,aAAaC,cAAcC,UAAU;AAClE;AAEA,SAASJ,OAAO3F,OAAgD;AAC9D,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK,GACvCiG,cAAc,GAAG/J,KAAK0J,QAAQM,SAAS,CAAC;AAE9C,SAAOhH,YAAYC,OAAOc,MAAMkG,SAAUtH,WACxCA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAAC+G,QAAQK;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACL,QAAQ;AAAA,IAAA;AAAA,EAAC,CAC3D;AACF;AAEA,SAASC,UAAU5F,OAAgD;AACjE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK,GACvCiG,cAAc,GAAG/J,KAAK0J,QAAQM,SAAS,CAAC;AAE9C,SAAOhH,YAAYC,OAAOc,MAAMmG,YAAavH,WAC3CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACgH,WAAWI;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACJ,WAAW;AAAA,IAAA;AAAA,EAAC,CACjE;AACF;AAEA,SAASC,YAAY7F,OAAgD;AACnE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK,GACvCiG,cAAc,GAAG/J,KAAK0J,QAAQM,SAAS,CAAC;AAE9C,SAAOhH,YAAYC,OAAOc,MAAMoG,cAAexH,WAC7CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACiH,aAAaG;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACH,aAAa;AAAA,IAAA;AAAA,EAAC,CACrE;AACF;AAEA,SAASC,aAAa9F,OAAgD;AACpE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK,GACvCiG,cAAc,GAAG/J,KAAK0J,QAAQM,SAAS,CAAC;AAE9C,SAAOhH,YAAYC,OAAOc,MAAMqG,eAAgBzH,WAC9CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACkH,cAAcE;AAAAA,IAAAA;AAAAA,EAAW,IAAK;AAAA,IAAC,MAAM;AAAA,MAACF,cAAc;AAAA,IAAA;AAAA,EAAC,CACvE;AACF;AAEA,SAASC,WAAW/F,OAAgD;AAClE,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK,GACvCiG,cAAc,GAAG/J,KAAK0J,QAAQM,SAAS,CAAC;AAE9C,SAAOhH,YAAYC,OAAOc,MAAMsG,aAAc1H,WAC5CA,QAAQ;AAAA,IAAC,MAAM;AAAA,MAACmH,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,EACtDtF,SAAS;AAAA,EACTwE,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,0BAA0BlH,OAA6C;AAC9E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMmH,UAAW/F,CAAAA,aAAa;AAAA,IACtD,mBAAmB;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EAAO,EAC3B;AACJ;AAEA,SAAS2F,yBAAyB/G,OAA6C;AAC7E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMoH,SAAUC,CAAAA,YAAY;AAAA,IACpDC,WAAWb,WAAWY,MAAM;AAAA,EAAA,EAC5B;AACJ;AAEA,SAASL,yBAAyBhH,OAA6C;AAC7E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMuH,SAAUlG,CAAAA,YAAY;AAAA,IACpDA,QAAQqF,WAAWrF,MAAM;AAAA,EAAA,EACzB;AACJ;AAEA,SAAS4F,2BAA2BjH,OAA6C;AAC/E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMwH,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,wBACd7H,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAKC,MAAM8H,QAEJ7I,YAAYC,OAAOc,MAAM8H,OAAQC,CAAAA,UAAU;AAAA,IAACA,MAAM,GAAGA,IAAI;AAAA,EAAA,EAAI,IAF3CjM;AAG3B;ACpBA,MAAMyK,eAAwB;AAAA,EAC5B,oBAAoB;AAAA,IAClBnF,SAAS;AAAA,EAAA;AAEb;AAEO,SAAS4G,sBAEd;AACA,SAAO,CACLzB,cACA0B,0BACAC,wBACAC,yBACAC,4BACAC,4BAA4B;AAEhC;AAEO,SAASJ,yBACdjI,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMgD,QAASsF,CAAAA,WAChC;AAAA,IAACC,YAAYD;AAAAA,EAAAA,EACrB;AACH;AAEA,SAASJ,uBAAuBlI,OAA8C;AAC5E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMwI,MAAOC,CAAAA,SAAS;AAAA,IAC9CA,KAAKA,MAAM1J,IAAIqB,MAAMqI,GAAG,CAAC,IAAI9I;AAAAA,EAAAA,EAC7B;AACJ;AAEO,SAASwI,wBAAwBnI,OAA2D;AACjG,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM0I,OAAQC,CAAAA,UAC/B;AAAA,IAACC,UAAUD;AAAAA,EAAAA,EACnB;AACH;AAEO,SAASP,2BACdpI,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM6I,UAAWC,CAAAA,aAClC;AAAA,IAACC,gBAAgBD;AAAAA,EAAAA,EACzB;AACH;AAEO,SAAST,6BACdrI,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMgJ,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,IAACpI;AAAAA,IAAMyE,QAAAA;AAAAA,IAAQ4D;AAAAA,EAAAA,IAAaD,MAC5BE,uBAAuBD,UAAUE,SAASF,UAAUtD,OACpDyD,sBAAsB,IAAIH,UAAUE,QACpCE,UAAUzI,OAAOA,KAAK0I,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,2BAA2BjK,OAAkD;AACpF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM2K,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,gCAAgClK,OAAkD;AACzF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM8K,WAAYC,CAAAA,cAAc;AAAA,IACxDC,cAAc,GAAGD,QAAQ;AAAA,EAAA,EACzB;AACJ;AAEA,SAASZ,8BAA8BnK,OAAkD;AACvF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMiL,SAAUC,CAAAA,YAAY;AAAA,IAACC,YAAY,GAAGD,MAAM;AAAA,EAAA,EAAI;AAClF;AAEA,SAASd,8BAA8BpK,OAAkD;AACvF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMoL,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,mCAAmCrK,OAAkD;AAC5F,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMuL,cAAeC,CAAAA,iBAAiB;AAAA,IAC9DC,iBAAiB,GAAGD,WAAW;AAAA,EAAA,EAC/B;AACJ;AAEA,SAASlB,iCAAiCtK,OAAkD;AAC1F,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM0L,YAAaC,CAAAA,eAAe;AAAA,IAC1DC,eAAe,GAAGD,SAAS;AAAA,EAAA,EAC3B;AACJ;AC3EA,MAAME,WAAW;AAAA,EACf,oBAAoB;AAAA,IAClBzK,SAAS;AAAA,EAAA;AAAA,EAEX,mCAAmC;AAAA,IACjCoF,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,4BAA4BpM,OAA8C;AACjF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM4M,WAAYC,CAAAA,cAAc;AAAA,IACxDC,cAAcD;AAAAA,EAAAA,EACd;AACJ;AAEA,SAASR,4BAA4BrM,OAA8C;AACjF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAM+M,WAAYC,CAAAA,cAAc;AAAA,IACxDC,cAAcD,YAAYd,eAAec,QAAQ;AAAA,EAAA,EACjD;AACJ;AAEA,SAASV,4BAA4BtM,OAA8C;AACjF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMkN,WAAYC,CAAAA,cAAc;AAAA,IACxDC,iBAAiBD,YAAYrB,iBAAiBqB,QAAQ;AAAA,EAAA,EACtD;AACJ;AAEA,SAASZ,2BAA2BvM,OAA8C;AAChF,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMqN,UAAWC,CAAAA,aAAa;AAAA,IACtDC,qBAAqBD,WAAW,UAAUA,OAAO;AAAA,EAAA,EACjD;AACJ;AAEA,SAASd,wBAAwBxM,OAA8C;AAC7E,QAAM;AAAA,IAACd;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAEvC,SAAOd,YAAYC,OAAOc,MAAMwN,OAAQC,CAAAA,UAAU;AAAA,IAChDC,kBAAkBD,QAAQ,UAAUA,IAAI;AAAA,EAAA,EACxC;AACJ;AAEA,SAAShB,uBAAuBzM,OAA8C;AAC5E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMwI,MAAOC,CAAAA,SAAS;AAAA,IAC9CkF,SAASlF,MAAM1J,IAAIqB,MAAMqI,GAAG,CAAC,IAAI9I;AAAAA,EAAAA,EACjC;AACJ;AAEA,SAAS+M,wBAAwB1M,OAA8C;AAC7E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAM4N,OAAQC,CAAAA,UAAU;AAAA,IAChDC,WAAWD,OAAO9O,IAAIqB,MAAMyN,IAAI,CAAC,IAAIlO;AAAAA,EAAAA,EACrC;AACJ;AAEA,SAASgN,wBAAwB3M,OAA8C;AAC7E,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAM+N,OAAQC,CAAAA,UAAU;AAAA,IAChDC,QAAQD,OAAOjP,IAAIqB,MAAM4N,IAAI,CAAC,IAAIrO;AAAAA,EAAAA,EAClC;AACJ;AC9FO,SAASuO,4BACdlO,OACa;AACb,QAAM;AAAA,IAACmO;AAAAA,IAAWC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAUC;AAAAA,EAAAA,IAAUvO,OACvD;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK,GAC9CyO,MAAMlM,KAAK0J,IAAIsC,SAASnO,QAAQoO,OAAOpO,QAAQgO,UAAUhO,MAAM,GAC/DsO,WAAqB,CAAA,GACrBC,SAAmB,IACnBC,YAAsB,CAAA;AAE5B,WAASC,IAAI,GAAGA,IAAIJ,KAAKI,KAAK;AAC5BD,cAAUC,CAAC,IAAIT,UAAUS,CAAC,MAAMjP,SAAYgP,UAAUC,IAAI,CAAC,IAAIT,UAAUS,CAAC,GAC1EH,SAASG,CAAC,IAAIN,SAASM,CAAC,MAAMjP,SAAY8O,SAASG,IAAI,CAAC,IAAIN,SAASM,CAAC,GACtEF,OAAOE,CAAC,IAAIL,OAAOK,CAAC,MAAMjP,SAAY+O,OAAOE,IAAI,CAAC,IAAIL,OAAOK,CAAC;AAGhE,SAAO3P,YAAYC,OAAOuP,UAAU,CAACI,GAAGD,MAAM;AAC5C,UAAMhN,QAAOjB,KAAKmO,KAAKjO,MAAM8N,UAAUC,CAAC,CAAC,KAAKjO,KAAKmO,KAAKjO,MAAM,CAAC,GACzDkO,SAASnN,MAAKK,aAAaL,MAAKC,iBAAiBD,MAAKE,iBACtDkN,IAAI5O,MAAMqO,SAASG,CAAC,CAAC,GACrBK,IAAI7O,MAAMsO,OAAOE,CAAC,CAAC,GAEnBM,SAAS;AAAA,MACbC,YAAYpQ,IAAIiQ,IAAIpN,MAAKC,cAAc;AAAA,MACvCuN,cAAcrQ,IAAIiQ,CAAC;AAAA,MACnBK,eAAetQ,IAAIiQ,IAAIpN,MAAKE,eAAe;AAAA,MAC3CwN,aAAavQ,IAAIiQ,CAAC;AAAA,IAAA;AAGpB,WAAIX,eAAYa,OAAOE,eAAerQ,IAAIiQ,IAAID,SAASE,CAAC,IACpDb,cAAWc,OAAOI,cAAcvQ,IAAIiQ,IAAID,SAASE,CAAC,IAE/CC;AAAAA,EACT,CAAC;AACH;AAsBO,SAASK,qCACdvP,OAKa;AACb,SAAOkO,4BAA4B;AAAA,IAAC,GAAGlO;AAAAA,IAAOqO,YAAY;AAAA,EAAA,CAAK;AACjE;AChDA,MAAMmB,aAAaC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAQZ,SAASC,qBAA6C;AAC3D,SAAOF;AACT;AAEO,SAASG,mBACd3P,OACwB;AACxB,QAAM;AAAA,IAAC4P;AAAAA,IAASC;AAAAA,IAAOnP;AAAAA,EAAAA,IAAWV,OAC5B;AAAA,IAACoJ;AAAAA,IAAOzI;AAAAA,EAAAA,IAAQN,YAAYL,MAAMD,KAAK;AAE7C,SAAO0P;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,mBAQU9O,KAAKmO,KAAKlO,MAAM;AAAA,mBACfF,WAAWC,KAAKmO,KAAKhO,QAAQJ,OAAO,KAAMC,KAAKmO,KAAKhO,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,qBA2BlE4O,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,uBAAuBtQ,OAA2D;AAChG,QAAM;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAE7C,SAAOd,YAAYC,OAAOc,MAAMmO,WAAYzM,CAAAA,cAAc;AACxD,UAAME,QAAOjB,KAAKmO,KAAKjO,MAAMa,SAAS,KAAKf,KAAKmO,KAAKjO,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,SAAS4O,6BACdvQ,OACwB;AACxB,QAAM;AAAA,IAACwQ;AAAAA,IAAYC;AAAAA,IAAYb;AAAAA,IAASC;AAAAA,IAAOa;AAAAA,EAAAA,IAA6B1Q,OACtE;AAAA,IAACoJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAASzP,YAAYL,MAAMD,KAAK;AAE9C,SAAO0P;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,8BAeqBe,aAAa,IAAI7Q,MAAS;AAAA,iCACvB6Q,aAAa,IAAI7Q,MAAS;AAAA,+BAC5B8Q,aAAa,IAAI9Q,MAAS;AAAA,kCACvB8Q,aAAa,IAAI9Q,MAAS;AAAA;AAAA,qBAEvCiQ,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,4BAClB/Q,SACA0J,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,4BAClB/Q,SACA0J,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,sBACd5Q,OACe;AACf,QAAM;AAAA,IAACD;AAAAA,EAAAA,IAASC;AAEhB,SAAO,CACLF,oBAAoBC,OAAO,CAAC,QAAQ,GAAGC,MAAM6Q,OAAO,GACpD/Q,oBAAoBC,OAAO,CAAC,cAAc,aAAa,GAAGC,MAAM8Q,QAAQ,GACxEhR,oBAAoBC,OAAO,CAAC,aAAa,cAAc,GAAGC,MAAM+Q,QAAQ,GACxEjR,oBAAoBC,OAAO,CAAC,WAAW,GAAGC,MAAMgR,UAAU,GAC1DlR,oBAAoBC,OAAO,CAAC,aAAa,GAAGC,MAAMiR,YAAY,GAC9DnR,oBAAoBC,OAAO,CAAC,cAAc,GAAGC,MAAMkR,aAAa,GAChEpR,oBAAoBC,OAAO,CAAC,YAAY,GAAGC,MAAMmR,WAAW,CAAC,EAC7DtH,OAAOC,OAAO;AAClB;ACdO,SAASsH,uBACdpR,OACe;AACf,QAAM;AAAA,IAACD;AAAAA,EAAAA,IAASC;AAEhB,SAAO,CACLF,oBAAoBC,OAAO,CAAC,SAAS,GAAGC,MAAMsO,QAAQ,GACtDxO,oBAAoBC,OAAO,CAAC,eAAe,cAAc,GAAGC,MAAMqR,SAAS,GAC3EvR,oBAAoBC,OAAO,CAAC,cAAc,eAAe,GAAGC,MAAMsR,SAAS,GAC3ExR,oBAAoBC,OAAO,CAAC,YAAY,GAAGC,MAAMuR,WAAW,GAC5DzR,oBAAoBC,OAAO,CAAC,cAAc,GAAGC,MAAMwR,aAAa,GAChE1R,oBAAoBC,OAAO,CAAC,eAAe,GAAGC,MAAMyR,cAAc,GAClE3R,oBAAoBC,OAAO,CAAC,aAAa,GAAGC,MAAM0R,YAAY,CAAC,EAC/D7H,OAAOC,OAAO;AAClB;ACdO,SAAS6H,sBAAsB3R,OAA6D;AACjG,QAAM;AAAA,IAACd;AAAAA,IAAO0S;AAAAA,EAAAA,IAAUvR,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAM6R,SAAUjT,CAAAA,UAAU;AAClD,QAAIkT,eAA2B;AAE/B,WAAI,OAAOlT,SAAU,aACnBkT,eAAe/S,IAAI6S,OAAOhT,KAAK,CAAC,IAG9BA,UAAU,WACZkT,eAAe,WAGV;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EACV,CAAC;AACH;ACfA,SAASC,YAAYC,QAAwB5I,OAAe;AAC1D,SAAO,GAAG4I,OAAO3S,IAAIN,GAAG,EAAEgL,KAAK,GAAG,CAAC,IAAIX,KAAK;AAC9C;AAEA,SAAS6I,YAAYD,QAA4BE,eAAuB,GAAc;AACpF,MAAI,CAACF,OAAQ,QAAOjW;AAEpB,QAAMoW,UAAU,SAASpT,IAAImT,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,sBAAsBxS,OAA6D;AACjG,QAAM;AAAA,IAAC/D;AAAAA,IAAMiD;AAAAA,IAAO8S;AAAAA,EAAAA,IAAU3R,YAAYL,MAAMD,KAAK;AAErD,SAAOd,YAAYC,OAAOc,MAAMyS,SAAUC,CAAAA,UACxCT,YAAYD,OAAOU,KAAK,GAAGzW,KAAK+V,OAAOG,OAAO,CAChD;AACF;ACzBO,MAAMQ,uBAAuBC,OAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA;ACExC,SAASC,eACdhT,OACwB;AACxB,QAAM;AAAA,IAACiT;AAAAA,IAASC;AAAAA,EAAAA,IAAUlT,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,YAAYL,MAAMD,KAAK;AAEtC,SAAO0P;AAAAA;AAAAA;AAAAA,MAGHwD,WACFxD;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECyD,UACFzD;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgB9O,KAAKwS,KAAKvS,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBrC;AChBA,MAAMwS,cAAcR,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAK3BjQ,qBAAqBC,0BAA0BiQ,cAAc,GAOnDM,QAAQC,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAqP,QAAAnL,OAAAoL,cAAAC,WAAAjP,IAAAE,IAAAgP,cAAAC;AAAA1P,WAAAnE,SAI9B;AAAA,IAAAyT;AAAAA,IAAAnL;AAAAA,IAAAxL,UAAA4W;AAAAA,IAAAI,OAAApP;AAAAA,IAAA9C,MAAAgD;AAAAA,IAAAgP;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IASI3T,OAAKmE,OAAAnE,OAAAmE,OAAAsP,QAAAtP,OAAAmE,OAAAnE,OAAAuP,cAAAvP,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAyP,cAAAzP,OAAA0P,WAAAJ,SAAAtP,EAAA,CAAA,GAAAmE,QAAAnE,EAAA,CAAA,GAAAuP,eAAAvP,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAyP,eAAAzP,EAAA,CAAA,GAAA0P,SAAA1P,EAAA,CAAA;AALP,QAAA2P,QAAApP,OAAa/E,cAAb+E,IACA9C,QAAAgD,OAAQjF,aAARiF;AAMF,MAAA9H,WAAe4W;AAAY,MAEvBE,iBAAiB,YAAU;AAAA,QAAA5O;AAAAb,aAAArH,YAClBkI,0BAAC,sBAAA,YAA+B,GAAuBb,OAAArH,UAAAqH,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GAAlErH,WAAWA;AAAAA,EAAH,OAAA;AAAA,QAAAkI;AAAAb,cAAArH,YAEGkI,MAAA,oBAAA,QAAA,EAAOlI,UAAS,GAAOqH,QAAArH,UAAAqH,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GAAlCrH,WAAWA;AAAAA,EAAH;AAAA,MAAAkI;AAAAb,YAAAmE,SAQEtD,KAAAxF,cAAc8I,KAAK,GAACnE,QAAAmE,OAAAnE,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAgB;AAAAhB,YAAAvC,SAErBuD,KAAA3F,cAAcoC,KAAI,GAACuC,QAAAvC,OAAAuC,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAAA,MAAA4P;AAAA,SAAA5P,EAAA,EAAA,MAAAsP,UAAAtP,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA2P,SAAA3P,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAgB,MAAAhB,UAAA0P,UAN5BE,yBAAC,aAAA,EACS,WAAA,SAAO,GACXJ,WACKF,SAAAA,QACD,QAAAzO,IACA8O,eACD,OAAA3O,IACE0O,SAAAA,QACJL,KAEJ1W,SAAAA,CACH,GAAcqH,QAAAsP,QAAAtP,QAAArH,UAAAqH,QAAA2P,OAAA3P,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA0P,QAAA1P,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA,GAXd4P;AAWc,CAEjB;AACDT,MAAMtP,cAAc;ACxEb,MAAMgQ,cAAc;AAAA,EACzB1O,MAAM2O;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,QACjB/S,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAGF,sCAAsC;AAAA,MACpCwT,WAAW;AAAA,MACXtY,SAAS;AAAA,IAAA;AAAA,IAGX,mCAAmC;AAAA,MACjCA,SAAS;AAAA,MACTsY,WAAW;AAAA,IAAA;AAAA,IAGb,sCAAsC;AAAA,MACpCtY,SAAS;AAAA,MACTsY,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ;AAEO,SAASX,gBAAgBjU,OAAqD;AACnF,QAAM;AAAA,IAAC6U;AAAAA,EAAAA,IAAU7U,OACX;AAAA,IAAC8U;AAAAA,EAAAA,IAAUzU,YAAYL,MAAMD,KAAK;AAExC,SAAO;AAAA,IACL,qBAAqB,qBAAqB8U,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,MAC3BvY,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,QACTmR,WAAWlJ,eAAe;AAAA,UAACE,WAAWuL,OAAOvL;AAAAA,QAAAA,CAAU;AAAA,MAAA;AAAA,MAGzD,+BAA+B;AAAA,QAC7BgJ,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;AAEO,SAASwC,0BACd/U,OACa;AACb,QAAM;AAAA,IAAC8U;AAAAA,IAAQ5V;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAAAA,UAAS;AAC/C,UAAMoT,aAAaF,OAAOjU,MAAMe,KAAI,KAAKkT,OAAOjU,MAAM,CAAC;AAEvD,WAAO;AAAA,MACL,OAAS9B,IAAIiW,WAAWpT,IAAI;AAAA,MAC5B,QAAU7C,IAAIiW,WAAWpT,IAAI;AAAA,MAC7B,cAAgB7C,IAAIiW,WAAWpT,OAAO,CAAC;AAAA,MAEvC,SAAS;AAAA,QACPqE,OAAOlH,IAAIiW,WAAWpT,IAAI;AAAA,QAC1BP,QAAQtC,IAAIiW,WAAWpT,IAAI;AAAA,QAC3BkQ,cAAc/S,IAAIiW,WAAWpT,OAAO,CAAC;AAAA,MAAA;AAAA,IACvC;AAAA,EAEJ,CAAC;AACH;AAEO,SAAS+S,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,MACjBrT,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAEA,SAASiT,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;ACrIA,MAAMC,eAAezC,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC7BgC,2BACAf,YAAY1O,IAAI,GAGZgQ,UAAQ1C,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACiB,YAAYE,KAAK,GAEpCqB,WAAW3C,uBAAO4C,QAAO1C,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACiB,YAAYI,QAAQ,GAE9CqB,SAAS7C,uBAAO4C,QAAO1C,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACiB,YAAYM,MAAM,GAE1CoB,WAAW9C,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACiB,YAAYQ,QAAQ,GAE1CmB,gBAAgB/C,uBAAOU,KAAK,EAACR,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAC;AAAA,EAClC3J,OAAO;AACT,CAAC,GAEKwM,cAAchD,uBAAOiD,IAAG/C,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACiB,YAAYU,KAAK,GAOnCoB,SAASvC,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAA2R,4BAAAC,kBAAAC,mBAAAC,QAAA1B,UAAA2B,kBAAAxC,WAAAyC,KAAA1R,IAAAE,IAAAI,IAAAqR;AAAAlS,WAAAnE,SAI/B;AAAA,IAAA+V;AAAAA,IAAAO,IAAAJ;AAAAA,IAAA9M,OAAA1E;AAAAA,IAAA0R;AAAAA,IAAAC;AAAAA,IAAA7B;AAAAA,IAAA2B;AAAAA,IAAAI,eAAAN;AAAAA,IAAAD;AAAAA,IAAAQ,QAAA5R;AAAAA,IAAAhD,MAAAoD;AAAAA,IAAA,GAAA2O;AAAAA,EAAAA,IAaI3T,OAAKmE,OAAAnE,OAAAmE,OAAA4R,4BAAA5R,OAAA6R,kBAAA7R,OAAA8R,mBAAA9R,OAAA+R,QAAA/R,OAAAqQ,UAAArQ,OAAAgS,kBAAAhS,OAAAwP,WAAAxP,OAAAiS,KAAAjS,OAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAkS,UAAAN,6BAAA5R,EAAA,CAAA,GAAA6R,mBAAA7R,EAAA,CAAA,GAAA8R,oBAAA9R,EAAA,CAAA,GAAA+R,SAAA/R,EAAA,CAAA,GAAAqQ,WAAArQ,EAAA,CAAA,GAAAgS,mBAAAhS,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAiS,MAAAjS,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAkS,QAAAlS,EAAA,EAAA;AAVP,QAAAiF,QAAA1E,OAAc/E,SAAN,SAAR+E,IAOA8R,SAAA5R,OAAiBjF,SAAR,WAATiF,IACM6R,WAAAzR,OAAYrF,aAAZqF,IAGR;AAAA,IAAA8P;AAAAA,EAAAA,IAAiBrP,eACjB6Q,KAAWI,QAAAC,mBAA2BT,MAAM,IAAIA,SAAS,OACzDtU,QAAapC,cAAciX,QAAQ,GAKnCG,YADmB9B,OAAMjU,MAAOe,MAAI,CAAA,CAAA,KAAQkT,OAAMjU,MAAA,CAAA,GACvBe,MAC3BiV,UAAgBD,WAAQ,GAExBE,YAAkBC,MAAAA,GAClB,CAAAR,eAAAS,gBAAA,IAA0CC,SACxCjB,oBAAoBC,qBAAqB,QAC3C,GAEA,CAAAiB,aAAAC,cAAA,IAAsCF,WAAuB,GAE7DG,UAAgB,gBAAgBN,SAAS;AAAE,MAAA3R,IAAA4O;AAAA5P,IAAA,EAAA,MAAAoS,iBAAApS,UAAA8R,qBAEjC9Q,KAAAA,MAAA;AAAA,QACJoR,kBAAkBN;AAAiB;AAGvC,UAAAoB,MAAYC,sBAAA,MAA4BN,iBAAiBf,iBAAiB,CAAC;AAAC,WAAA,MAE/DsB,qBAAqBF,GAAG;AAAA,EAAC,GACrCtD,KAAA,CAACwC,eAAeN,iBAAiB,GAAC9R,QAAAoS,eAAApS,QAAA8R,mBAAA9R,QAAAgB,IAAAhB,QAAA4P,OAAA5O,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,IAPrCqT,UAAUrS,IAOP4O,EAAkC;AAAC,MAAA0D,IAAAC;AAAAvT,YAAAiS,OAE5BqB,KAAAA,MAAA;AAEJrB,WAAKe,iBAAoB;AAAA,EAAC,GAC7BO,MAACtB,GAAG,GAACjS,QAAAiS,KAAAjS,QAAAsT,IAAAtT,QAAAuT,OAAAD,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,IAHRqT,UAAUC,IAGPC,EAAK;AAAC,MAAAC;AAAAxT,YAAAgS,oBAE4BwB,KAAAA,MAAA;AACnCR,qBAAmB,GAEfhB,oBACFA,iBAAgB,IAAAjW,MAAW,kCAAkC,CAAC;AAAA,EAAC,GAElEiE,QAAAgS,kBAAAhS,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAND,QAAAyT,mBAAyBD,IAStBE,KAAAxC,cAEUyC,YAAOxB,MAAO,WAAWA,KAAE3W,QAC5BoY,KAAA;AAAQ,MAAAC;AAAA7T,YAAAiF,SAUhB4O,0BAAC1C,SAAA,EACC,UAAA,oBAAA,OAAA,EAAW,OAAA,MAAY,QAAA,KAAY,SAAA,YAAgB,MAAA,QACjD,UAAA,oBAAA,QAAA,EACI,GAAA,gGACIlM,MAAAA,MAAAA,CAAK,EAAA,CAEf,GACF,GAAQjF,QAAAiF,OAAAjF,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,IAAA,EAAA,MAAA4R,8BAAA5R,EAAA,EAAA,MAAA0S,WAAA1S,EAAA,EAAA,MAAAyS,YAAAzS,UAAAyT,oBAAAzT,EAAA,EAAA,MAAA+S,eAAA/S,EAAA,EAAA,MAAAiT,WAAAjT,EAAA,EAAA,MAAAiS,OAEP6B,MAAA,CAACf,eAAed,OACf,qBAAC,aAAA,EAAqB,SAAA,OAAOQ,QAAQ,IAAIA,QAAQ,IAAS,MAAA,QACxD,UAAA;AAAA,IAAA,oBAAA,QAAA,EACE,8BAAA,WAAA,EAAaQ,IAAAA,SAA6B,qBAAA,qBAA0B,OAAA,KAAW,QAAA,KAC7E,8BAAA,SAAA,EAAahB,MAAAA,KAAW,OAAA,KAAW,QAAA,KAAawB,SAAAA,iBAAAA,CAAgB,EAAA,CAClE,EAAA,CACF;AAAA,IAEA,gCAAYf,IAAAA,SAAaA,IAAAA,SAAYA,YAAe,cAAQO,OAAO,IAAA,CAAG;AAAA,KAEpErB,8BACA,oBAAC,UAAA,EACKc,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACS,cAAA,qBAAA;IAIjB,oBAAC,QAAA,EACKA,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACAA,IAAAA,SACS,cAAA,qBAAA,CAAoB;AAAA,EAAA,EAAA,CAErC,GACD1S,QAAA4R,4BAAA5R,QAAA0S,SAAA1S,QAAAyS,UAAAzS,QAAAyT,kBAAAzT,QAAA+S,aAAA/S,QAAAiT,SAAAjT,QAAAiS,KAAAjS,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAEA,QAAA+T,OAAChB,gBAAgBd,QAAQ5B,YAAQ,oBAAA,UAAA,EAE9B,UAAA,oBAAC,YACC,UAAA,oBAAC,eAAA,EACa,aAAA,QACN,MAAA5S,MAAIvC,IAAA8Y,OAMT,GACM,QAAA,UAEN3D,UAAAA,SAAAA,CACH,EAAA,CACF,EAAA,CAAW;AAEd,MAAA4D;AAAA,SAAAjU,UAAA0T,MAAA1T,EAAA,EAAA,MAAAoS,iBAAApS,EAAA,EAAA,MAAAmS,MAAAnS,EAAA,EAAA,MAAAiF,SAAAjF,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,UAAAvC,SAAAuC,EAAA,EAAA,MAAAqS,UAAArS,EAAA,EAAA,MAAA6T,OAAA7T,EAAA,EAAA,MAAA8T,OAAA9T,EAAA,EAAA,MAAA+T,OAAA/T,UAAA2T,MAAA3T,EAAA,EAAA,MAAAkS,SAtEH+B,MAAA,qBAAC,IAAA,EACK9B,IACK,WAAAwB,IACD,WAAAC,IAAQ,GACZpE,WACIvK,QAAAA,OACDxH,OAAAA,OACKyU,cAAAA,OACSE,uBAAAA,eACRC,eAAAA,QACRhD,KACE6C,OAEP2B,UAAAA;AAAAA,IAAAA;AAAAA,IASCC;AAAAA,IA8BAC;AAAAA,EAAAA,EAAAA,CAmBH,GAAe/T,QAAA0T,IAAA1T,QAAAoS,eAAApS,QAAAmS,IAAAnS,QAAAiF,OAAAjF,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAvC,OAAAuC,QAAAqS,QAAArS,QAAA6T,KAAA7T,QAAA8T,KAAA9T,QAAA+T,KAAA/T,QAAA2T,IAAA3T,QAAAkS,OAAAlS,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA,GAvEfiU;AAuEe,CAElB;AACDtC,OAAO9R,cAAc;AAtIY,SAAAmU,QAAAlJ,GAAA;AAAA,SAsHbA,MAAC,IAAM,IACPA,MAAC,IAAM,IACPA,MAAC,IAAM,IAAA;AAAA;ACxK3B,SAASoJ,kCAAkCrY,OAA2C;AACpF,QAAM;AAAA,IAAC8U;AAAAA,IAAQ5V;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAAAA,UAAS;AAC/C,UAAMoT,aAAaF,OAAOjU,MAAMe,KAAI;AAEpC,WAAKoT,aAEE;AAAA,MACLlD,cAAc/S,IAAIiW,WAAWpT,OAAO,CAAC;AAAA,MACrC8F,UAAU3I,IAAIiW,WAAWpT,IAAI;AAAA,MAC7BP,QAAQtC,IAAIiW,WAAWpT,IAAI;AAAA,IAAA,IALL7F;AAAAA,EAO1B,CAAC;AACH;AAEA,SAASuc,wBAAwBtY,OAAmB;AAClD,QAAM;AAAA,IAACI;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAEvC,SAAO0P;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,iBAWQ1Q,IAAIqB,MAAM,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM9B;AAEA,MAAMmY,sBAAsB3F,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EACpCsF,mCACAC,uBAAuB,GAgBZE,gBAAgBjF,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA,GAItC;AAAA,IAAAqU;AAAAA,IAAA7W,MAAA8C;AAAAA,EAAAA,IAAoC1E,OAAhByW,WAAA/R,OAAY/E,aAAZ+E;AAAY,MAAAmT,IAAAa,IAAA9T,IAAAI,IAAAG,IAAA4O,IAAA0D;AAAA,MAAAtT,EAAA,CAAA,MAAAqP,OAAArP,SAAAsS,UAAA;AAChC,UAAA7U,QAAapC,cAAciX,QAAQ;AAGhCiC,SAAAH,qBAA2B3W,KAAAA,OAAcmS,KAAA,iBAAqBP,KAAAA,KAC5DqE,KAAAvE,OACI1O,KAAA,QACGI,KAAApD,MAAIvC,IAAA8Y,OAMT,GAAChU,OAAAqP,KAAArP,OAAAsS,UAAAtS,OAAA0T,IAAA1T,OAAAuU,IAAAvU,OAAAS,IAAAT,OAAAa,IAAAb,OAAAgB,IAAAhB,OAAA4P,IAAA5P,OAAAsT;AAAAA,EAAA;AAAAI,SAAA1T,EAAA,CAAA,GAAAuU,KAAAvU,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAgB,KAAAhB,EAAA,CAAA,GAAA4P,KAAA5P,EAAA,CAAA,GAAAsT,KAAAtT,EAAA,CAAA;AAAA,MAAAuT;AAAAvT,IAAA,CAAA,MAAA0T,MAAA1T,EAAA,EAAA,MAAAsU,SAAAtU,EAAA,EAAA,MAAAS,MAAAT,UAAAa,MARJ0S,yBAAC,IAAA,EACI,IAAA9S,IACG,MAAAI,IAOC,QAAA,UAENyT,UAAAA,MAAAA,CACH,GAAQtU,OAAA0T,IAAA1T,QAAAsU,OAAAtU,QAAAS,IAAAT,QAAAa,IAAAb,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAA,SAAAxT,EAAA,EAAA,MAAAuU,MAAAvU,EAAA,EAAA,MAAAgB,MAAAhB,EAAA,EAAA,MAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MAAAtT,UAAAuT,MAbVC,KAAA,oBAAC,IAAA,EAA2B/V,WAAc,WAAAmS,IAAqBP,KAAAA,IAC7DkE,cAaF,GAAsBvT,QAAAuU,IAAAvU,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GAdtBwT;AAcsB,CAEzB;AACDa,cAAcxU,cAAc;AAzBY,SAAAmU,QAAAlJ,GAAA;AAAA,SAY1BA,MAAC,IAAM,IACPA,MAAC,IAAM,IACPA,MAAC,IAAM,IAAA;AAAA;ACtErB,MAAM0J,cAAclJ;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAYpB,SAASmJ,mBAAmB;AAC1B,SAAOD;AACT;AAEA,SAASE,+BAA+B7Y,OAA2C;AACjF,QAAM;AAAA,IAAC8U;AAAAA,IAAQ5V;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAE/C,SAAOd,YAAYC,OAAOc,MAAMS,OAAQmB,CAAAA,UAAS;AAC/C,UAAMoT,aAAaF,OAAOjU,MAAMe,KAAI;AAEpC,WAAKoT,aAEE;AAAA,MACL,iBAAiB;AAAA,QACf8D,YAAY/Z,IAAIiW,WAAW+D,QAAQ;AAAA,MAAA;AAAA,IACrC,IALsBhd;AAAAA,EAO1B,CAAC;AACH;AAEA,MAAMid,oBAAoBpG,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAClC8F,gCACAD,gBAAgB,GAiBLK,cAAc1F,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAsP,cAAAC,WAAAjP,IAAAE;AAAAT,WAAAnE,SAIpC;AAAA,IAAAlD,UAAA4W;AAAAA,IAAAwF,WAAAxU;AAAAA,IAAA9C,MAAAgD;AAAAA,IAAA,GAAA+O;AAAAA,EAAAA,IAKI3T,OAAKmE,OAAAnE,OAAAmE,OAAAuP,cAAAvP,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,OAAA8O,eAAAvP,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA;AAHI,QAAAgV,gBAAAzU,OAAiB/E,aAAjB+E,IACL+R,WAAA7R,OAAYjF,aAAZiF;AAAY,MAAAiT,IAAA7S,IAAAG,IAAA4O,IAAA0D,IAAAC,IAAAC,IAAAG;AAAA,MAAA3T,EAAA,CAAA,MAAAuP,gBAAAvP,EAAA,CAAA,MAAAgV,iBAAAhV,EAAA,CAAA,MAAAqP,OAAArP,EAAA,CAAA,MAAAwP,aAAAxP,SAAAsS,UAAA;AAGpB,UAAA3Z,WAAsCsc,SAAAC,QAAiB3F,YAAY,EAAC7J,OAAAyP,cAAsB,GAC1FJ,YAAkB5W,KAAA0J,IAASmN,gBAAgB;AAAC,QAAApB;AAAA5T,cAAAsS,YAC/BsB,MAAAvY,cAAciX,QAAQ,GAACtS,QAAAsS,UAAAtS,QAAA4T,OAAAA,MAAA5T,EAAA,EAAA;AAApC,UAAAvC,QAAamW,KAEbvJ,MAAY1R,SAAQqD,QACpBoZ,eAAqBL,YAAS,GAC9BM,aAAmBhL,MAAM+K,cACzBE,kBAAwBD,aAAU,IAAO1c,SAAQ4c,MAAOF,YAAYhL,GAAG,IAAI1R;AAGxE+a,SAAAmB,mBAA0BhU,KAAA,eAAkB2O,KAAAA,WAAgBH,KAAAA,KAAY5R,KAAAA,OAAIuC,EAAA,EAAA,MAAAqK,OAAArK,UAAAvC,SAC1E8V,KAAAlJ,QAAG,KACF,6BACE,UAAA,oBAAC,iBAAqBA,OAAAA,KAAW5M,MAAAA,OAAI,GACvC,GACDuC,QAAAqK,KAAArK,QAAAvC,OAAAuC,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GAAAA,EAAA,EAAA,MAAAqV,cAAArV,UAAAqK,OAAArK,EAAA,EAAA,MAAAvC,SAEA+V,KAAAnJ,QAAG,KAAUgL,kBACZ,oBAAA,OAAA,EACE,8BAAC,eAAA,EAAqBA,OAAAA,YAAkB5X,MAAAA,OAAI,EAAA,CAC9C,GACDuC,QAAAqV,YAAArV,QAAAqK,KAAArK,QAAAvC,OAAAuC,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,QAAA6T;AAAA7T,cAAAvC,SAEoBoW,MAAAA,CAAA2B,OAAAC,eACnB,6BAA+BC,UAAAA,aAAaF,OAAK;AAAA,MAAA/X,MAAAA;AAAAA,IAAAA,CAAQ,EAAA,GAA/CkY,OAAOF,UAAU,CAAgC,GAC5DzV,QAAAvC,OAAAuC,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA,GAFA2T,KAAA2B,gBAAepa,IAAK2Y,GAEpB,GAAC7T,OAAAuP,cAAAvP,OAAAgV,eAAAhV,OAAAqP,KAAArP,OAAAwP,WAAAxP,OAAAsS,UAAAtS,QAAA0T,IAAA1T,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T;AAAAA,EAAA;AAAAD,SAAA1T,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,GAAAsT,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAA2T,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA,SAAA5T,EAAA,EAAA,MAAA0T,MAAA1T,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAgB,MAAAhB,EAAA,EAAA,MAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MAAAtT,EAAA,EAAA,MAAAuT,MAAAvT,EAAA,EAAA,MAAAwT,MAAAxT,UAAA2T,MAfJC,KAAA,qBAAC,IAAA,EAA0B,WAAA/S,IAAa,GAAK2O,IAAgBH,SAAY5R,OAAAA,IACtE8V,UAAAA;AAAAA,IAAAA;AAAAA,IAMAC;AAAAA,IAMAG;AAAAA,EAAAA,EAAAA,CAGH,GAAoB3T,QAAA0T,IAAA1T,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA,GAhBpB4T;AAgBoB,CAEvB;AACDkB,YAAYjV,cAAc;AC7D1B,MAAM+V,YAAYnH,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAO1BlM,UACAe,eACAd,oBACAkD,yBACA4G,uBACAQ,sBAAsB,GASX4I,MAAMzG,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,GAAA;AAAA,MAAAiH,QAAAM,WAAAH,aAAAzD,MAAA1G,QAAAqB,cAAAoW,YAAAmB,aAAAxX,WAAAyX,SAAAC,SAAA1S,UAAA4H,eAAAC,aAAAF,cAAAD,YAAAiL,UAAAC,UAAA1G,WAAA/I,KAAAM,QAAAH,UAAA1D,QAAA3C,IAAAE,IAAAI,IAAAG;AAAAhB,WAAAnE,SAI5B;AAAA,IAAAsW,IAAA5R;AAAAA,IAAA2G;AAAAA,IAAAG;AAAAA,IAAAG;AAAAA,IAAAvK,SAAAwD;AAAAA,IAAAmD;AAAAA,IAAA1G;AAAAA,IAAAsB,QAAAqC;AAAAA,IAAAkV;AAAAA,IAAAC;AAAAA,IAAA1X;AAAAA,IAAAwX;AAAAA,IAAAvX;AAAAA,IAAAoW;AAAAA,IAAArR;AAAAA,IAAA6S,SAAAnV;AAAAA,IAAAiV;AAAAA,IAAAC;AAAAA,IAAAlL;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA1E;AAAAA,IAAAG;AAAAA,IAAAG;AAAAA,IAAA7D;AAAAA,IAAA,GAAAsM;AAAAA,EAAAA,IA4BI3T,OAAKmE,OAAAnE,OAAAmE,OAAAkH,QAAAlH,OAAAwH,WAAAxH,OAAAqH,aAAArH,OAAA4D,MAAA5D,OAAA9C,QAAA8C,OAAAzB,cAAAyB,OAAA2U,YAAA3U,OAAA8V,aAAA9V,OAAA1B,WAAA0B,QAAA+V,SAAA/V,QAAAgW,SAAAhW,QAAAsD,UAAAtD,QAAAkL,eAAAlL,QAAAmL,aAAAnL,QAAAiL,cAAAjL,QAAAgL,YAAAhL,QAAAiW,UAAAjW,QAAAkW,UAAAlW,QAAAwP,WAAAxP,QAAAyG,KAAAzG,QAAA+G,QAAA/G,QAAA4G,UAAA5G,QAAAkD,QAAAlD,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,OAAAkG,SAAAlH,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA,GAAAqH,cAAArH,EAAA,CAAA,GAAA4D,OAAA5D,EAAA,CAAA,GAAA9C,SAAA8C,EAAA,CAAA,GAAAzB,eAAAyB,EAAA,CAAA,GAAA2U,aAAA3U,EAAA,CAAA,GAAA8V,cAAA9V,EAAA,CAAA,GAAA1B,YAAA0B,EAAA,CAAA,GAAA+V,UAAA/V,EAAA,EAAA,GAAAgW,UAAAhW,EAAA,EAAA,GAAAsD,WAAAtD,EAAA,EAAA,GAAAkL,gBAAAlL,EAAA,EAAA,GAAAmL,cAAAnL,EAAA,EAAA,GAAAiL,eAAAjL,EAAA,EAAA,GAAAgL,aAAAhL,EAAA,EAAA,GAAAiW,WAAAjW,EAAA,EAAA,GAAAkW,WAAAlW,EAAA,EAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAyG,MAAAzG,EAAA,EAAA,GAAA+G,SAAA/G,EAAA,EAAA,GAAA4G,WAAA5G,EAAA,EAAA,GAAAkD,SAAAlD,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA;AA3BH,QAAA+R,SAAAxR,OAAc/E,SAAL,QAAT+E,IAIJtD,UAAAwD,OAAiBjF,SAAP,UAAViF,IAGAjC,SAAAqC,OAAUrF,aAAVqF,IAQAsV,UAAAnV,OAAWxF,aAAXwF,IAgBW4O,YAAOmC,UAAW,WAAWA,SAAMvW;AAAY,MAAA8X;AAAAtT,YAAAkH,UAG/CoM,KAAAjY,cAAc6L,MAAM,GAAClH,QAAAkH,QAAAlH,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAAvT,YAAAqH,eAChBkM,KAAAlY,cAAcgM,WAAW,GAACrH,QAAAqH,aAAArH,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAAwH,aAC5BgM,KAAAnY,cAAcmM,SAAS,GAACxH,QAAAwH,WAAAxH,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA3T,YAAA/C,WAC1B0W,KAAAtY,cAAc4B,OAAO,GAAC+C,QAAA/C,SAAA+C,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA5T,YAAA4D,QACzBgQ,KAAAvY,cAAcuI,IAAI,GAAC5D,QAAA4D,MAAA5D,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA9C,UACjB2W,MAAAxY,cAAc6B,MAAM,GAAC8C,QAAA9C,QAAA8C,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,YAAAxB,UACrBsV,MAAAzY,cAAcmD,MAAM,GAACwB,QAAAxB,QAAAwB,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,YAAA+V,WACpBhC,MAAA1Y,cAAc0a,OAAO,GAAC/V,QAAA+V,SAAA/V,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAiU;AAAAjU,YAAAgW,WACtB/B,MAAA5Y,cAAc2a,OAAO,GAAChW,QAAAgW,SAAAhW,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAAA,MAAAoW;AAAApW,YAAA1B,aACpB8X,MAAA/a,cAAciD,SAAS,GAAC0B,QAAA1B,WAAA0B,QAAAoW,OAAAA,MAAApW,EAAA,EAAA;AAAA,MAAAqW;AAAArW,YAAA8V,eACtBO,MAAAhb,cAAcya,WAAW,GAAC9V,QAAA8V,aAAA9V,QAAAqW,OAAAA,MAAArW,EAAA,EAAA;AAAA,MAAAsW;AAAAtW,YAAAzB,gBACzB+X,MAAAjb,cAAckD,YAAY,GAACyB,QAAAzB,cAAAyB,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA;AAAA,MAAAuW;AAAAvW,YAAA2U,cAC7B4B,MAAAlb,cAAcsZ,UAAU,GAAC3U,QAAA2U,YAAA3U,QAAAuW,OAAAA,MAAAvW,EAAA,EAAA;AAAA,MAAAwW;AAAAxW,YAAAsD,YAC3BkT,MAAAnb,cAAciI,QAAQ,GAACtD,QAAAsD,UAAAtD,QAAAwW,OAAAA,MAAAxW,EAAA,EAAA;AAAA,MAAAyW;AAAAzW,YAAAmW,WACxBM,MAAApb,cAAc8a,OAAO,GAACnW,QAAAmW,SAAAnW,QAAAyW,OAAAA,MAAAzW,EAAA,EAAA;AAAA,MAAA0W;AAAA1W,YAAAiW,YACrBS,MAAArb,cAAc4a,QAAQ,GAACjW,QAAAiW,UAAAjW,QAAA0W,OAAAA,MAAA1W,EAAA,EAAA;AAAA,MAAA2W;AAAA3W,YAAAkW,YACvBS,MAAAtb,cAAc6a,QAAQ,GAAClW,QAAAkW,UAAAlW,QAAA2W,OAAAA,MAAA3W,EAAA,EAAA;AAAA,MAAA4W;AAAA5W,YAAAgL,cACrB4L,MAAAvb,cAAc2P,UAAU,GAAChL,QAAAgL,YAAAhL,QAAA4W,OAAAA,MAAA5W,EAAA,EAAA;AAAA,MAAA6W;AAAA7W,YAAAiL,gBACvB4L,MAAAxb,cAAc4P,YAAY,GAACjL,QAAAiL,cAAAjL,QAAA6W,OAAAA,MAAA7W,EAAA,EAAA;AAAA,MAAA8W;AAAA9W,YAAAkL,iBAC1B4L,MAAAzb,cAAc6P,aAAa,GAAClL,QAAAkL,eAAAlL,QAAA8W,OAAAA,MAAA9W,EAAA,EAAA;AAAA,MAAA+W;AAAA/W,YAAAmL,eAC9B4L,MAAA1b,cAAc8P,WAAW,GAACnL,QAAAmL,aAAAnL,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAAA,MAAAgX;AAAAhX,YAAAyG,OAClCuQ,MAAA3b,cAAcoL,GAAG,GAACzG,QAAAyG,KAAAzG,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAAA,MAAAiX;AAAAjX,YAAA4G,YACbqQ,MAAA5b,cAAcuL,QAAQ,GAAC5G,QAAA4G,UAAA5G,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAAA,MAAAkX;AAAAlX,YAAA+G,UACzBmQ,MAAA7b,cAAc0L,MAAM,GAAC/G,QAAA+G,QAAA/G,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAAA,MAAAmX;AAAAnX,YAAAkD,UACrBiU,MAAA9b,cAAc6H,MAAM,GAAClD,QAAAkD,QAAAlD,QAAAmX,OAAAA,MAAAnX,EAAA,EAAA;AAAA,MAAAoX;AAAA,SAAApX,EAAA,EAAA,MAAA+R,UAAA/R,EAAA,EAAA,MAAAnE,MAAAlD,YAAAqH,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAA6T,OAAA7T,EAAA,EAAA,MAAA8T,OAAA9T,EAAA,EAAA,MAAA+T,OAAA/T,EAAA,EAAA,MAAAiU,OAAAjU,EAAA,EAAA,MAAAoW,OAAApW,EAAA,EAAA,MAAAqW,OAAArW,EAAA,EAAA,MAAAsW,OAAAtW,EAAA,EAAA,MAAAuW,OAAAvW,EAAA,EAAA,MAAAwW,OAAAxW,EAAA,EAAA,MAAAyW,OAAAzW,EAAA,EAAA,MAAA0W,OAAA1W,EAAA,EAAA,MAAA2W,OAAA3W,EAAA,EAAA,MAAA4W,OAAA5W,EAAA,EAAA,MAAA6W,OAAA7W,EAAA,EAAA,MAAA8W,OAAA9W,EAAA,EAAA,MAAA+W,OAAA/W,EAAA,EAAA,MAAAgX,OAAAhX,EAAA,EAAA,MAAAiX,OAAAjX,WAAAkX,OAAAlX,EAAA,GAAA,MAAAmX,OAAAnX,EAAA,GAAA,MAAA4P,MAAA5P,EAAA,GAAA,MAAAsT,MAAAtT,EAAA,GAAA,MAAAuT,MAAAvT,EAAA,GAAA,MAAAwT,MAAAxT,EAAA,GAAA,MAAA2T,MAAA3T,EAAA,GAAA,MAAA4T,MA5BhCwD,0BAAC,WAAA,EACU,WAAAxH,IACD,WAAA,UACJJ,WACK,SAAA8D,IACK,cAAAC,IACF,YAAAC,IACF,UAAAG,IACH,OAAAC,IACE,SAAAC,KACA,SAAAC,KACC,UAAAC,KACA,UAAAE,KACE,YAAAmC,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,KACLpF,IAAAA,QACC1C,KAEJxT,gBAAKlD,SAAAA,CACR,GAAYqH,QAAA+R,QAAA/R,EAAA,EAAA,IAAAnE,MAAAlD,UAAAqH,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAA6T,KAAA7T,QAAA8T,KAAA9T,QAAA+T,KAAA/T,QAAAiU,KAAAjU,QAAAoW,KAAApW,QAAAqW,KAAArW,QAAAsW,KAAAtW,QAAAuW,KAAAvW,QAAAwW,KAAAxW,QAAAyW,KAAAzW,QAAA0W,KAAA1W,QAAA2W,KAAA3W,QAAA4W,KAAA5W,QAAA6W,KAAA7W,QAAA8W,KAAA9W,QAAA+W,KAAA/W,QAAAgX,KAAAhX,QAAAiX,KAAAjX,SAAAkX,KAAAlX,SAAAmX,KAAAnX,SAAA4P,IAAA5P,SAAAsT,IAAAtT,SAAAuT,IAAAvT,SAAAwT,IAAAxT,SAAA2T,IAAA3T,SAAA4T,IAAA5T,SAAAoX,OAAAA,MAAApX,EAAA,GAAA,GAjCZoX;AAiCY,CAEf;AACDvB,IAAIhW,cAAc;AC7HX,SAASwX,cACdxb,OACwB;AACxB,QAAM;AAAA,IAACiT;AAAAA,IAASC;AAAAA,EAAAA,IAAUlT,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,YAAYL,MAAMD,KAAK;AAEtC,SAAO0P;AAAAA;AAAAA;AAAAA,MAGHwD,WACFxD;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECyD,UACFzD;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgB9O,KAAKwS,KAAKvS,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,KAAKmO,KAAKhO,QAAQ2a,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkB3C;ACxCA,MAAMC,aAAa9I,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC3B7P,oBACAH,0BACAyY,aAAa,GAQFG,OAAOpI,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAkE,OAAAoL,cAAAC,WAAAjP,IAAAE,IAAAI,IAAA4O,cAAAC;AAAA1P,WAAAnE,SAI7B;AAAA,IAAAyT,QAAA/O;AAAAA,IAAA4D;AAAAA,IAAAxL,UAAA4W;AAAAA,IAAAI,OAAAlP;AAAAA,IAAAhD,MAAAoD;AAAAA,IAAA4O;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IASI3T,OAAKmE,OAAAnE,OAAAmE,OAAAmE,OAAAnE,OAAAuP,cAAAvP,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAAyP,cAAAzP,OAAA0P,WAAAvL,QAAAnE,EAAA,CAAA,GAAAuP,eAAAvP,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAyP,eAAAzP,EAAA,CAAA,GAAA0P,SAAA1P,EAAA,CAAA;AARP,QAAAsP,SAAA/O,OAAc/E,cAAd+E,IAGAoP,QAAAlP,OAAajF,cAAbiF,IACAhD,QAAAoD,OAAQrF,aAARqF;AAMF,MAAAlI,WAAe4W;AAAY,MAEvBE,iBAAiB,YAAU;AAAA,QAAAzO;AAAAhB,aAAArH,YAClBqI,0BAAC,sBAAA,YAA+B,GAAuBhB,OAAArH,UAAAqH,QAAAgB,OAAAA,MAAAhB,EAAA,EAAA,GAAlErH,WAAWA;AAAAA,EAAH;AAAA,MAAAqI;AAAAhB,YAAAmE,SAQEnD,KAAA3F,cAAc8I,KAAK,GAACnE,QAAAmE,OAAAnE,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAAA,MAAA4P;AAAA5P,YAAAvC,SAGrBmS,KAAAvU,cAAcoC,KAAI,GAACuC,QAAAvC,OAAAuC,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAAtT,YAAArH,YAG1B2a,KAAA,oBAAA,UAAO3a,UAAS,GAAOqH,QAAArH,UAAAqH,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAA,SAAAvT,EAAA,EAAA,MAAAsP,UAAAtP,EAAA,EAAA,MAAA2P,SAAA3P,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAgB,MAAAhB,EAAA,EAAA,MAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MAAAtT,UAAA0P,UAVzB6D,yBAAC,YAAA,EACS,WAAA,QAAM,GACV/D,WACKF,SAAAA,QACD,QAAAtO,IACA2O,QAAAA,OACHN,KACE,OAAAO,IACEF,iBAET4D,UAAAA,IACF,GAAatT,QAAAsP,QAAAtP,QAAA2P,OAAA3P,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAA0P,QAAA1P,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GAXbuT;AAWa,CAEhB;AACDiE,KAAK3X,cAAc;AC5EZ,SAAS4X,WAAW5b,OAAmC;AAC5D,QAAM;AAAA,IAAC6P;AAAAA,EAAAA,IAAS7P;AAEhB,SAAO;AAAA,IACL,mBAAmB,oBAAoB6P,KAAK;AAAA,IAC5C,mBAAmB,oBAAoBA,KAAK;AAAA,IAE5C,iBAAmB;AAAA,IACnB,QAAU;AAAA,IAEV,mBAAmB;AAAA,MACjBzO,SAAS;AAAA,MACTya,eAAe;AAAA,IAAA;AAAA,EACjB;AAEJ;ACIA,MAAMC,cAAclJ,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC7BpB,uBACAiK,UAAU,GAQCG,QAAQxI,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAtH,UAAA6W,WAAAjP,IAAAE,IAAAI,IAAAG;AAAA,MAAAhB,SAAAnE,OAAA;AAI9B,UAAA;AAAA,MAAAlD,UAAAiX;AAAAA,MAAApS,UAAA8V;AAAAA,MAAAuE,MAAAC;AAAAA,MAAA3B,SAAA5C;AAAAA,MAAA9F,QAAA+F;AAAAA,MAAAlT,MAAAqT;AAAAA,MAAA,GAAAC;AAAAA,IAAAA,IASI/X;AATJlD,eAAAiX,KAAArP,KAAA+S,KAAA7S,KAAA8S,KAAA1S,KAAA2S,KAAAxS,KAAA2S,IAAAnE,YAAAoE,IASS5T,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAAgB;AAAAA,EAAA;AAAArI,eAAAqH,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAgB,KAAAhB,EAAA,CAAA;AAPP,QAAAxC,YAAA+C,OAAY/E,aAAZ+E,IAGA4V,UAAA1V,OAAWjF,aAAXiF,IACAgN,SAAA5M,OAAerF,SAAN,SAATqF,IACAP,OAAAU,OAAgBxF,SAAT,YAAPwF;AAAgB,MAAA4O;AAAA5P,WAAAyN,UASLmC,KAAAvU,cAAcoS,MAAM,GAACzN,OAAAyN,QAAAzN,OAAA4P,MAAAA,KAAA5P,EAAA,CAAA;AAAA,MAAAsT;AAAAtT,WAAAmW,WACrB7C,KAAAjY,cAAc8a,OAAO,GAACnW,OAAAmW,SAAAnW,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAAvT,IAAA,EAAA,MAAArH,YAAAqH,UAAAxC,aAG/B+V,KAAA,oBAAC,MAAA,EAAW/V,MAAAA,WAAW7E,SAAAA,CAAS,GAAOqH,QAAArH,UAAAqH,QAAAxC,WAAAwC,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAA,SAAAxT,UAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MAAAtT,UAAAuT,MAAAvT,EAAA,EAAA,MAAAM,QARzCkT,yBAAC,aAAA,EACS,WAAA,SAAO,GACXhE,WACGlP,OAAAA,MACE,SAAAsP,IACA,SAAA0D,IACJjE,KAELkE,UAAAA,GAAAA,CACF,GAAcvT,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAM,MAAAN,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GATdwT;AASc,CAEjB;AACDoE,MAAM/X,cAAc;ACtCpB,MAAMkY,aAAatJ,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC5BnL,eACAI,mBAAmB,GAQRmU,OAAO5I,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAkE,OAAAgO,IAAA7N,KAAAK,SAAA6K,WAAAjP,IAAAiE;AAAAxE,WAAAnE,SAI7B;AAAA,IAAAsI;AAAAA,IAAAgO;AAAAA,IAAArN,WAAAvE;AAAAA,IAAA+D;AAAAA,IAAAK;AAAAA,IAAAH;AAAAA,IAAA,GAAAgL;AAAAA,EAAAA,IAAyE3T,OAAKmE,OAAAnE,OAAAmE,OAAAmE,OAAAnE,OAAAmS,IAAAnS,OAAAsE,KAAAtE,OAAA2E,SAAA3E,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAwE,SAAAL,QAAAnE,EAAA,CAAA,GAAAmS,KAAAnS,EAAA,CAAA,GAAAsE,MAAAtE,EAAA,CAAA,GAAA2E,UAAA3E,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAwE,OAAAxE,EAAA,CAAA;AAA5D,QAAA8E,YAAAvE,OAAiB/E,SAAL,QAAZ+E;AAAiB,MAAAE;AAAAT,WAAAmE,SAMvB1D,KAAApF,cAAc8I,KAAK,GAACnE,OAAAmE,OAAAnE,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAAb,YAAA8E,aAChBjE,KAAAxF,cAAcyJ,SAAS,GAAC9E,QAAA8E,WAAA9E,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAgB;AAAAhB,YAAAsE,OAC9BtD,KAAA3F,cAAciJ,GAAG,GAACtE,QAAAsE,KAAAtE,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAAA,MAAA4P;AAAA5P,YAAA2E,WACdiL,KAAAvU,cAAcsJ,OAAO,GAAC3E,QAAA2E,SAAA3E,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAAtT,YAAAwE,QACzB8O,KAAAjY,cAAcmJ,IAAI,GAACxE,QAAAwE,MAAAxE,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAA,SAAAvT,EAAA,EAAA,MAAAmS,MAAAnS,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAS,MAAAT,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAAgB,MAAAhB,EAAA,EAAA,MAAA4P,MAAA5P,UAAAsT,MAP5BC,KAAA,oBAAC,cACS,WAAA,QAAM,GACV/D,WACI,QAAA/O,IACI,YAAAI,IACN,MAAAG,IACI,UAAA4O,IACH,OAAA0D,IACMnB,aAAAA,IACR9C,KAAG,GACRrP,QAAAmS,IAAAnS,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GAVFuT;AAUE,CAEL;AACDyE,KAAKnY,cAAc;ACvCnB,MAAMoY,SAASC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAUTC,gBAAgB1J,OAAO+I,IAAI,EAAC7I,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,6BAEjBqJ,MAAM,4BASVG,UAAUhJ,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,CAAA;AAAA,MAAAM;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAM5Bc,KAAA,oBAAC,aAAA,CAAA,CAAW,GAAGP,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAAA,MAAAS;AAAA,SAAAT,EAAA,CAAA,MAAAnE,SAAAmE,SAAAqP,OADjB5O,yBAAC,eAAA,EAAsB,WAAA,cAAc5E,OAAYwT,KAC/C9O,UAAAA,GAAAA,CACF,GAAgBP,OAAAnE,OAAAmE,OAAAqP,KAAArP,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAFhBS;AAEgB,CAEnB;AACD2X,QAAQvY,cAAc;ACxCf,SAASwY,gBACdtb,MACAkI,OACAqT,YAAY,IACD;AACX,SAAO;AAAA;AAAA,IAGL,yBAAyBvb,KAAKwb;AAAAA,IAE9B,2BAA2Bxb,KAAKqI;AAAAA,IAEhC,+BAA+BrI,KAAK8Q,OAAOG;AAAAA,IAC3C,6BAA6BjR,KAAK8Q,OAAOI;AAAAA,IACzC,gCAAgClR,KAAK8Q,OAAOK;AAAAA,IAC5C,+BAA+BnR,KAAK8Q,OAAOM;AAAAA;AAAAA,IAI3C,0BAA0BlJ,MAAMqK,OAAOxD;AAAAA,IAEvC,+BAA+B7G,MAAM0L,OAAO6H,KAAK/S;AAAAA,IACjD,+BAA+BR,MAAM0L,OAAO6H,KAAK1M;AAAAA,IACjD,+BAA+B7G,MAAM0L,OAAO8H,KAAKhT;AAAAA,IACjD,+BAA+BR,MAAM0L,OAAO8H,KAAK3M;AAAAA,IACjD,iCAAiC7G,MAAM0L,OAAO+H,OAAOjT;AAAAA,IACrD,iCAAiCR,MAAM0L,OAAO+H,OAAO5M;AAAAA,IACrD,kCAAkC7G,MAAM0L,OAAOgI,QAAQlT;AAAAA,IACvD,kCAAkCR,MAAM0L,OAAOgI,QAAQ7M;AAAAA,IACvD,8BAA8B7G,MAAM0L,OAAOiI,IAAInT;AAAAA,IAC/C,8BAA8BR,MAAM0L,OAAOiI,IAAI9M;AAAAA,IAC/C,iCAAiC7G,MAAM0L,OAAOkI,OAAOpT;AAAAA,IACrD,iCAAiCR,MAAM0L,OAAOkI,OAAO/M;AAAAA,IACrD,iCAAiC7G,MAAM0L,OAAOmI,OAAOrT;AAAAA,IACrD,iCAAiCR,MAAM0L,OAAOmI,OAAOhN;AAAAA,IACrD,gCAAgC7G,MAAM0L,OAAOoI,MAAMtT;AAAAA,IACnD,gCAAgCR,MAAM0L,OAAOoI,MAAMjN;AAAAA,IACnD,+BAA+B7G,MAAM0L,OAAOqI,KAAKvT;AAAAA,IACjD,+BAA+BR,MAAM0L,OAAOqI,KAAKlN;AAAAA,IAEjD,mBAAmB7G,MAAMQ;AAAAA,IACzB,mBAAmB6S,YACf,4BAA4BrT,MAAMQ,EAAE,YAAYR,MAAM0K,MAAMlK,EAAE,aAC9DjK;AAAAA,IAEJ,uBAAuByJ,MAAMzD;AAAAA,IAE7B,iCAAiCyD,MAAMgU,MAAMrN,QAAQnG;AAAAA,IACrD,kCAAkCR,MAAMgU,MAAMrN,QAAQsN;AAAAA,IACtD,iCAAiCjU,MAAMgU,MAAMrN,QAAQE;AAAAA,IACrD,mCAAmC7G,MAAMgU,MAAMrN,QAAQuN;AAAAA,IACvD,iCAAiClU,MAAMgU,MAAMG,SAAS3T;AAAAA,IACtD,kCAAkCR,MAAMgU,MAAMG,SAASF;AAAAA,IACvD,iCAAiCjU,MAAMgU,MAAMG,SAAStN;AAAAA,IACtD,mCAAmC7G,MAAMgU,MAAMG,SAASD;AAAAA,IACxD,iCAAiClU,MAAMgU,MAAMI,QAAQ5T;AAAAA,IACrD,kCAAkCR,MAAMgU,MAAMI,QAAQH;AAAAA,IACtD,iCAAiCjU,MAAMgU,MAAMI,QAAQvN;AAAAA,IACrD,mCAAmC7G,MAAMgU,MAAMI,QAAQF;AAAAA,IACvD,iCAAiClU,MAAMgU,MAAMK,SAAS7T;AAAAA,IACtD,kCAAkCR,MAAMgU,MAAMK,SAASJ;AAAAA,IACvD,iCAAiCjU,MAAMgU,MAAMK,SAASxN;AAAAA,IACtD,mCAAmC7G,MAAMgU,MAAMK,SAASH;AAAAA,IACxD,kCAAkClU,MAAMgU,MAAMM,SAAS9T;AAAAA,IACvD,mCAAmCR,MAAMgU,MAAMM,SAASL;AAAAA,IACxD,kCAAkCjU,MAAMgU,MAAMM,SAASzN;AAAAA,IACvD,oCAAoC7G,MAAMgU,MAAMM,SAASJ;AAAAA,IACzD,iCAAiClU,MAAMgU,MAAMO,QAAQ/T;AAAAA,IACrD,kCAAkCR,MAAMgU,MAAMO,QAAQN;AAAAA,IACtD,iCAAiCjU,MAAMgU,MAAMO,QAAQ1N;AAAAA,IACrD,mCAAmC7G,MAAMgU,MAAMO,QAAQL;AAAAA,IACvD,kCAAkClU,MAAMgU,MAAMQ,SAAShU;AAAAA,IACvD,mCAAmCR,MAAMgU,MAAMQ,SAASP;AAAAA,IACxD,kCAAkCjU,MAAMgU,MAAMQ,SAAS3N;AAAAA,IACvD,oCAAoC7G,MAAMgU,MAAMQ,SAASN;AAAAA,IAEzD,wBAAwBlU,MAAM+J,KAAKvJ;AAAAA,IACnC,wBAAwBR,MAAM+J,KAAKlD;AAAAA,IAEnC,mBAAmB7G,MAAM6G;AAAAA,IAEzB,qBAAqB7G,MAAMkU;AAAAA,IAE3B,uBAAuBlU,MAAMyU,IAAIjU;AAAAA,IACjC,2BAA2BR,MAAMyU,IAAIlY;AAAAA,IACrC,uBAAuByD,MAAMyU,IAAI5N;AAAAA,IAEjC,wBAAwB7G,MAAM0U,KAAK7N;AAAAA,IAEnC,yBAAyB7G,MAAM0K,MAAMlK;AAAAA,IACrC,yBAAyBR,MAAM0K,MAAM7D;AAAAA,IAErC,8BAA8B7G,MAAM2U,SAASC;AAAAA,IAC7C,4BAA4B5U,MAAM2U,SAASE;AAAAA;AAAAA,IAI3C,oBAAoB7U,MAAM0K,MAAMlK;AAAAA,IAChC,qBAAqBR,MAAM0U,KAAK7N;AAAAA,IAChC,8BAA8B7G,MAAMzD;AAAAA,IACpC,8BAA8ByD,MAAMzD;AAAAA,EAAAA;AAExC;AChGO,SAASuY,iBACdle,OACwB;AACxB,QAAM;AAAA,IAACme;AAAAA,EAAAA,IAAUne,OACX;AAAA,IAAC5B;AAAAA,EAAAA,IAASiC,YAAYL,MAAMD,KAAK;AAEvC,SAAO0P;AAAAA,MACHrR,OAAOggB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBbD,WAAW,UACb1O;AAAAA;AAAAA;AAAAA;AAAAA,KAIC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcL;AAEA,SAAS4O,oBAAoBC,YAA4C;AACvE,SAAOA,WAAWzU,OAAOC,OAAO,EAAEC,KAAK,GAAG;AAC5C;AAKO,SAASwU,kBACdve,OACa;AACb,QAAM;AAAA,IAACwe;AAAAA,EAAAA,IAASxe,OACV;AAAA,IAACoe;AAAAA,IAAQhV,OAAOqV;AAAAA,IAAWrgB;AAAAA,EAAAA,IAASiC,YAAYL,MAAMD,KAAK,GAC3DiS,SAAShS,MAAMwe,UAAU,SACzBxC,OAAOyC,UAAUL,OAAOI,KAAK,KAAKC,UAAUL,OAAOrO,SACnD3G,QAAQ4S,KAAKhc,MAAM6P,KAAK,KAAKmM,KAAKjM,SAClCpK,UAAS;AAAA,IACbM,OAAOmY,OAAOzY,OAAOM;AAAAA,IACrBmD,OAAO;AAAA,EAAA,GAGHsV,mBAAmB/e;AAEzB,SAAO,CACL6c,gBAAgBiC,WAAWrV,MAAM4G,OAAO,GACxC;AAAA,IACE,iBAAmB;AAAA,IACnB,OAAS;AAAA,IACT,WAAa7G,qBAAqBxD,OAAM;AAAA,IACxC,uCAAuC6W,gBAAgBiC,WAAWrV,MAAM+G,QAAQ;AAAA,IAChF,iCAAiC;AAAA,MAC/B,WAAakO,iBACXlV,qBAAqBxD,OAAM,GAC3BqM,SAAS0M,mBAAmB/e,MAC9B;AAAA,MACA,WAAW;AAAA,QACT4S,WAAWlJ,eAAe;AAAA,UACxBnI,MAAMud;AAAAA,UACN9Y,QAAQ;AAAA,YAACM,OAAO;AAAA,YAAGmD,OAAOqV,UAAU7U;AAAAA,UAAAA;AAAAA,UACpCL,WAAW6U,OAAO7U;AAAAA,QAAAA,CACnB;AAAA,MAAA;AAAA,MAEH,+BAA+B;AAAA,QAC7BgJ,WAAW8L,iBACTlV,qBAAqBxD,OAAM,GAC3BqM,SAAS0M,mBAAmB/e,MAC9B;AAAA,MAAA;AAAA,MAEF,yBAAyB;AAAA,QACvB,WAAW6c,gBAAgBiC,WAAWrV,MAAMuH,OAAO;AAAA,QACnD,YAAY6L,gBAAgBiC,WAAWrV,MAAMuV,OAAO;AAAA,QACpD,mBAAmBnC,gBAAgBiC,WAAWrV,MAAMuH,OAAO;AAAA,MAAA;AAAA,MAE7D,oBAAoB6L,gBAAgBiC,WAAWrV,MAAMuV,OAAO;AAAA,IAAA;AAAA,EAC9D,GAEFvgB,OAAOggB,QAAQ9Y,IAAI,EACnBuE,OAAOC,OAAO;AAClB;AC3EA,MAAM8U,eAAehM,uBAAOwL,OAAMtL,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAGhCpB,uBAAuBuM,kBAAkBK,iBAAiB,GAEtDM,aAAajM,OAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,qMAkBhB+L,SAASvL,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAA2a,eAAAC,oBAAAliB,UAAAqT,UAAA8O,SAAAC,mBAAAC,iBAAAC,kBAAAC,gBAAAC,cAAAC,cAAA5L,WAAA6L,UAAA9a,IAAAE,IAAAI,IAAAG,IAAA4O,IAAA0D,IAAAC,IAAAC,IAAAG,IAAAhJ,MAAA7L,WAAAwc,YAAAxZ;AAAA9B,WAAAnE,SAI/B;AAAA,IAAAlD;AAAAA,IAAAqT;AAAAA,IAAAxO,UAAA+C;AAAAA,IAAA4Y,MAAAyB;AAAAA,IAAAW,WAAAV;AAAAA,IAAAlW,SAAAlE;AAAAA,IAAAqa;AAAAA,IAAAjD,MAAAhX;AAAAA,IAAAsV,SAAAnV;AAAAA,IAAAiV,UAAAkF;AAAAA,IAAAjF,UAAAkF;AAAAA,IAAApQ,YAAAkQ;AAAAA,IAAAhQ,eAAA6P;AAAAA,IAAA5P,aAAA6P;AAAAA,IAAA/P,cAAAgQ;AAAAA,IAAAxN,QAAAmC;AAAAA,IAAAyL;AAAAA,IAAApf,OAAAqX;AAAAA,IAAA3I;AAAAA,IAAA7L;AAAAA,IAAAwc;AAAAA,IAAAhb,MAAAiT;AAAAA,IAAA3a,MAAA4a;AAAAA,IAAA7D,OAAAgE;AAAAA,IAAA7R;AAAAA,IAAA,GAAA0N;AAAAA,EAAAA,IA2BI3T,OAAKmE,OAAAnE,OAAAmE,OAAA4a,eAAA5a,OAAA6a,oBAAA7a,OAAArH,UAAAqH,OAAAgM,UAAAhM,OAAA8a,SAAA9a,OAAA+a,mBAAA/a,OAAAgb,iBAAAhb,OAAAib,kBAAAjb,OAAAkb,gBAAAlb,QAAAmb,cAAAnb,QAAAob,cAAApb,QAAAwP,WAAAxP,QAAAqb,UAAArb,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA2K,MAAA3K,QAAAlB,WAAAkB,QAAAsb,YAAAtb,QAAA8B,UAAA8Y,gBAAA5a,EAAA,CAAA,GAAA6a,qBAAA7a,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAA8a,UAAA9a,EAAA,CAAA,GAAA+a,oBAAA/a,EAAA,CAAA,GAAAgb,kBAAAhb,EAAA,CAAA,GAAAib,mBAAAjb,EAAA,CAAA,GAAAkb,iBAAAlb,EAAA,CAAA,GAAAmb,eAAAnb,EAAA,EAAA,GAAAob,eAAApb,EAAA,EAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAqb,WAAArb,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,GAAAsT,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAA2T,KAAA3T,EAAA,EAAA,GAAA2K,OAAA3K,EAAA,EAAA,GAAAlB,YAAAkB,EAAA,EAAA,GAAAsb,aAAAtb,EAAA,EAAA,GAAA8B,QAAA9B,EAAA,EAAA;AAxBP,QAAAxC,YAAA+C,OAAY/E,aAAZ+E,IAGSib,cAAA/a,OAAsBjF,SAAR,WAAdiF,IAEToX,OAAAhX,OAAgBrF,SAAT,YAAPqF,IACS4a,cAAAza,OAAexF,aAAfwF,IAOD0a,aAAA9L,OAAcpU,aAAdoU,IAED+L,YAAArI,OAAa9X,aAAb8X,IAIPhT,OAAAiT,OAAgB/X,SAAT,YAAP+X,IACA3a,OAAA4a,OAAehY,SAAR,WAAPgY,IACA7D,QAAAgE,OAAanY,cAAbmY,IAIF;AAAA,IAAAsG;AAAAA,EAAAA,IAAiB3Y,YAAAA;AAAa,MAAAsS;AAAA5T,YAAAwb,eAEd5H,KAAAvY,cAAcmgB,WAAW,GAACxb,QAAAwb,aAAAxb,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAA1C,QAAA2E,UAAgBiP;AAA0B,MAAAC;AAAA7T,YAAAyb,eAC1B5H,MAAAxY,cAAcogB,WAAW,GAACzb,QAAAyb,aAAAzb,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAA1C,QAAAmW,UAAgBtC;AAA0B,MAAAC;AAAA9T,YAAAmb,gBACzBrH,MAAAzY,cAAc8f,YAAY,GAACnb,QAAAmb,cAAAnb,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAA5C,QAAAiW,WAAiBnC;AAA2B,MAAAC;AAAA/T,YAAAob,gBAC3BrH,MAAA1Y,cAAc+f,YAAY,GAACpb,QAAAob,cAAApb,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAA5C,QAAAkW,WAAiBnC;AAA2B,MAAAE;AAAAjU,YAAAkb,kBACzBjH,MAAA5Y,cAAc6f,cAAc,GAAClb,QAAAkb,gBAAAlb,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAAhD,QAAAgL,aAAmBiJ;AAA6B,MAAAmC;AAAApW,YAAA+a,qBAC1B3E,MAAA/a,cAAc0f,iBAAiB,GAAC/a,QAAA+a,mBAAA/a,QAAAoW,OAAAA,MAAApW,EAAA,EAAA;AAAtD,QAAAkL,gBAAsBkL;AAAgC,MAAAC;AAAArW,YAAAgb,mBAClC3E,MAAAhb,cAAc2f,eAAe,GAAChb,QAAAgb,iBAAAhb,QAAAqW,OAAAA,MAAArW,EAAA,EAAA;AAAlD,QAAAmL,cAAoBkL;AAA8B,MAAAC;AAAAtW,YAAAib,oBAC7B3E,MAAAjb,cAAc4f,gBAAgB,GAACjb,QAAAib,kBAAAjb,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA;AAApD,QAAAiL,eAAqBqL;AAA+B,MAAAC;AAAAvW,YAAA0b,cACrCnF,MAAAlb,cAAcqgB,UAAU,GAAC1b,QAAA0b,YAAA1b,QAAAuW,OAAAA,MAAAvW,EAAA,EAAA;AAAxC,QAAAyN,SAAe8I;AAAyB,MAAAC;AAAAxW,YAAA2b,aAC1BnF,MAAAnb,cAAcsgB,SAAS,GAAC3b,QAAA2b,WAAA3b,QAAAwW,OAAAA,MAAAxW,EAAA,EAAA;AAAtC,QAAA/D,QAAcua;AAAwB,MAAAC;AAAAzW,IAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAAkL,iBAAAlL,EAAA,EAAA,MAAAmL,eAAAnL,UAAAiL,gBAAAjL,EAAA,EAAA,MAAAgL,cAAAhL,EAAA,EAAA,MAAAiW,YAAAjW,EAAA,EAAA,MAAAkW,YAG7BO,MAAA;AAAA,IAAAN;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAlL;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAAF;AAAAA,EAAAA,GASNjL,QAAAmW,SAAAnW,QAAAkL,eAAAlL,QAAAmL,aAAAnL,QAAAiL,cAAAjL,QAAAgL,YAAAhL,QAAAiW,UAAAjW,QAAAkW,UAAAlW,QAAAyW,OAAAA,MAAAzW,EAAA,EAAA;AAVH,QAAA4b,WACSnF,KAoBUC,MAAA/Q,CAAAA,EAAQmV,WAAW9O,WACnB2K,MAAA0E,WAAW,KAAE7f,QAClBob,MAAAjR,CAAAA,EAAQmV,WAAW9O;AAAS,MAAA6K;AAAA7W,YAAA8a,WAKrCjE,MAAAlR,CAAAA,CAAQmV,WACP,oBAAC,YAAA,EACC,UAAA,oBAAC,SAAA,EAAO,GACV,GACD9a,QAAA8a,SAAA9a,QAAA6W,OAAAA,MAAA7W,EAAA,EAAA;AAAA,MAAA8W;AAAA9W,IAAA,EAAA,MAAA4a,iBAAA5a,EAAA,EAAA,MAAA6a,sBAAA7a,UAAA4b,YAAA5b,EAAA,EAAA,MAAAia,UAAAja,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAA2E,WAAA3E,EAAA,EAAA,MAAA2P,SAAA3P,UAAA/D,SAAA+D,EAAA,EAAA,MAAA2K,QAAA3K,EAAA,EAAA,MAAAlB,aAAAkB,UAAAsb,cAEAxE,OAAC8D,iBAAiBjQ,QAAQkQ,uBACzB,oBAAC,KAAA,EAAO,IAAA,QAAM,GAAKe,UACjB,UAAA,qBAAC,MAAA,EAAQ,IAAA,QAAgBjX,SAAc1I,KAAAA,OACpC2e,UAAAA;AAAAA,IAAAA,iBACC,qBAAC,MAAA,EAAWpd,MAAAA,WACT2X,UAAAA;AAAAA,MAAAA,eAAeyF,aAAa,KAAKA;AAAAA,MACjCpI,mBAAmBoI,aAAa,KAAK,oBAAC,eAAA,CAAA,CAAa;AAAA,IAAA,GACtD;AAAA,IAGDjQ,QACC,oBAAC,KAAA,EACC,UAAA,oBAAC,MAAA,EACQgF,OACA7Q,OAAAA,WACDtB,MAAAA,WACO,cAAA,YACL,QAAA8d,cAAcrB,OAAMqB,YAE3B3Q,gBACH,GACF;AAAA,IAGDkQ,sBACC,qBAAC,MAAA,EAAWrd,MAAAA,WACT2X,UAAAA;AAAAA,MAAAA,eAAe0F,kBAAkB,KAAKA;AAAAA,MACtCrI,mBAAmBqI,kBAAkB,KAAK,oBAAC,oBAAA,CAAA;OAC9C;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF,GACD7a,QAAA4a,eAAA5a,QAAA6a,oBAAA7a,QAAA4b,UAAA5b,QAAAia,QAAAja,QAAAxC,WAAAwC,QAAA2E,SAAA3E,QAAA2P,OAAA3P,QAAA/D,OAAA+D,QAAA2K,MAAA3K,QAAAlB,WAAAkB,QAAAsb,YAAAtb,QAAA8W,OAAAA,MAAA9W,EAAA,EAAA;AAAA,MAAA+W;AAAA/W,IAAA,EAAA,MAAA4b,YAAA5b,UAAArH,YAEAoe,MAAApe,YACC,oBAAC,KAAA,EAAO,IAAA,QAAM,GAAKijB,UAChBjjB,SAAAA,CACH,GACDqH,QAAA4b,UAAA5b,QAAArH,UAAAqH,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAAA,MAAAgX;AAAA,SAAAhX,UAAA6X,QAAA7X,EAAA,EAAA,MAAAyN,UAAAzN,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAA0W,OAAA1W,EAAA,EAAA,MAAA2W,OAAA3W,UAAA4W,OAAA5W,EAAA,EAAA,MAAA6W,OAAA7W,EAAA,EAAA,MAAA8W,OAAA9W,EAAA,EAAA,MAAA+W,OAAA/W,EAAA,EAAA,MAAAM,QAAAN,UAAApH,QAAAoH,EAAA,EAAA,MAAA8B,SAzDHkV,2BAAC,cAAA,EACS,WAAA,UAAQ,GACZxH,WACGqI,OAAAA,MACEpK,SAAAA,QACFnN,OAAAA,MACQ,iBAAAoW,KACA,iBAAAC,KACL,UAAAC,KACLvH,KACCzW,MACEkJ,QAAAA,OAEP+U,UAAAA;AAAAA,IAAAA;AAAAA,IAMAC;AAAAA,IAkCAC;AAAAA,EAAAA,EAAAA,CAKH,GAAe/W,QAAA6X,MAAA7X,QAAAyN,QAAAzN,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAA0W,KAAA1W,QAAA2W,KAAA3W,QAAA4W,KAAA5W,QAAA6W,KAAA7W,QAAA8W,KAAA9W,QAAA+W,KAAA/W,QAAAM,MAAAN,QAAApH,MAAAoH,QAAA8B,OAAA9B,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA,GA1DfgX;AA0De,CAElB;AACD2D,OAAO9a,cAAc;ACjLd,SAASgc,UACdhgB,OACgE;AAChE,SAAO,CAACigB,cAAcjgB,KAAK,GAAGkgB,eAAelgB,KAAK,CAAC;AACrD;AAEO,SAASigB,cAAcjgB,OAA4D;AACxF,QAAM;AAAA,IAACmgB;AAAAA,EAAAA,IAAcngB,OACf;AAAA,IAACI;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAEvC,SAAO0P;AAAAA,MACH0Q,cACF1Q;AAAAA,yBACqBrP,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,SAAS8f,eAAelgB,OAA4D;AACzF,QAAM;AAAA,IAACmgB;AAAAA,IAAYC;AAAAA,IAAYlN;AAAAA,EAAAA,IAAUlT,OACnC;AAAA,IAAC/D;AAAAA,IAAMmN;AAAAA,IAAOhL;AAAAA,EAAAA,IAASiC,YAAYL,MAAMD,KAAK,GAC9C4F,UAAS;AAAA,IAACM,OAAOhK,KAAK0J,OAAOM;AAAAA,IAAOmD,OAAO;AAAA,EAAA;AAEjD,SAAOqG;AAAAA,oBACWrG,MAAMiX,QAAQ,SAAS,OAAO;AAAA;AAAA,MAE5C7D,gBAAgBpT,OAAOA,OAAO+W,UAAU,CAAC;AAAA;AAAA,wBAEvBjN,SAAS,+BAA+B,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAW5EsJ,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQI,UAAUgQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQ4O,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQyP,UAAUW,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQY,SAASwP,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQ4O,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAM1CC,aAC5B/W,eAAe;AAAA,IAACnI,MAAMkI;AAAAA,IAAOzD,QAAAA;AAAAA,IAAQ4D,WAAWtN,KAAKsN;AAAAA,EAAAA,CAAU,IAC/D5J,MAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWb6c,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQI,UAAUgQ,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQ4O,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQyP,UAAUW,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQY,SAASwP,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpE3D,gBAAgBpT,OAAOA,MAAMkX,WAAWvQ,QAAQ4O,SAASwB,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAM1CC,aAC5B/W,eAAe;AAAA,IAACnI,MAAMkI;AAAAA,IAAOzD,QAAAA;AAAAA,IAAQ4D,WAAWtN,KAAKsN;AAAAA,EAAAA,CAAU,IAC/D5J,MAAS;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjBvB,OAAOnC,MAAMqJ,IAAI;AAAA;AAEvB;ACrGA,MAAMib,aAAa3N,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAK5BrN,uBAAuBiM,uBAAuBa,uBAAuBwN,SAAS,GAQnEQ,OAAOjN,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAA8R,QAAAvQ,SAAAG,eAAAC,aAAAF,cAAAD,YAAAkO,OAAA6K,SAAAhL,WAAApP,QAAAib,UAAAxN,QAAAtN,IAAAE,IAAAI,IAAAG;AAAAhB,WAAAnE,SAI7B;AAAA,IAAAygB,sBAAA/b;AAAAA,IAAAgc,sBAAA9b;AAAAA,IAAA0R,IAAAJ;AAAAA,IAAAvQ,QAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAA+N;AAAAA,IAAA6K;AAAAA,IAAA/M,QAAA5M;AAAAA,IAAAT;AAAAA,IAAAib;AAAAA,IAAAxN;AAAAA,IAAAvN,MAAAU;AAAAA,IAAA,GAAAwO;AAAAA,EAAAA,IAiBI3T,OAAKmE,OAAAnE,OAAAmE,OAAA+R,QAAA/R,OAAAwB,SAAAxB,OAAA2B,eAAA3B,OAAA4B,aAAA5B,OAAA0B,cAAA1B,OAAAyB,YAAAzB,OAAA2P,OAAA3P,OAAAwa,SAAAxa,OAAAwP,WAAAxP,QAAAI,QAAAJ,QAAAqb,UAAArb,QAAA6N,QAAA7N,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,OAAA+Q,SAAA/R,EAAA,CAAA,GAAAwB,UAAAxB,EAAA,CAAA,GAAA2B,gBAAA3B,EAAA,CAAA,GAAA4B,cAAA5B,EAAA,CAAA,GAAA0B,eAAA1B,EAAA,CAAA,GAAAyB,aAAAzB,EAAA,CAAA,GAAA2P,QAAA3P,EAAA,CAAA,GAAAwa,UAAAxa,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAAqb,WAAArb,EAAA,EAAA,GAAA6N,SAAA7N,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA;AAhBe,QAAAsY,YAAA/X,OAAiB/E,cAAjB+E,IACA6E,YAAA3E,OAAiBjF,cAAjBiF,IAStBgN,SAAA5M,OAAUrF,aAAVqF,IAIM2b,WAAAxb,OAAoBxF,SAAT,YAAXwF,IAIRmR,KAAWK,mBAAmBT,MAAM,IAAIA,SAAS,OACjD1R,YAAkBY,gBAClBX,OAAakc,aAAa,YAAYnc,UAASC,OAAQkc,UAOxC5M,YAAOuC,MAAO,WAAWA,KAAE3W,QACvB8X,KAAAjT,UAASD;AAAO,MAAAmT;AAAAvT,YAAAwB,WAIpB+R,KAAAlY,cAAcmG,OAAM,GAACxB,QAAAwB,SAAAxB,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAAyB,cAClB+R,KAAAnY,cAAcoG,UAAS,GAACzB,QAAAyB,YAAAzB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA3T,YAAA0B,gBACtBiS,KAAAtY,cAAcqG,YAAW,GAAC1B,QAAA0B,cAAA1B,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA5T,YAAA2B,iBACzBiS,KAAAvY,cAAcsG,aAAY,GAAC3B,QAAA2B,eAAA3B,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,YAAA4B,eAC7BiS,MAAAxY,cAAcuG,WAAU,GAAC5B,QAAA4B,aAAA5B,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,YAAAyN,UAI7BqG,MAAAzY,cAAcoS,MAAM,GAACzN,QAAAyN,QAAAzN,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,YAAA6N,UACrBkG,MAAA1Y,cAAcwS,MAAM,GAAC7N,QAAA6N,QAAA7N,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAEd,QAAAiU,MAAAqE,YAAY,KAAE9c,QAChB4a,MAAAoE,UAAU,KAAEhf,QACX6a,MAAAgF,WAAW,KAAE7f;AAAY,MAAA8a;AAAAtW,IAAA,EAAA,MAAAmS,MAAAnS,UAAAsY,aAAAtY,EAAA,EAAA,MAAAoF,aAAApF,UAAA2P,SAAA3P,EAAA,EAAA,MAAAqP,OAAArP,UAAAwP,aAAAxP,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,UAAAqb,YAAArb,EAAA,EAAA,MAAA6T,OAAA7T,EAAA,EAAA,MAAA8T,OAAA9T,EAAA,EAAA,MAAA+T,OAAA/T,UAAAiU,OAAAjU,EAAA,EAAA,MAAAoW,OAAApW,UAAAqW,OAAArW,EAAA,EAAA,MAAA4P,MAAA5P,UAAAuT,MAAAvT,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAA2T,MAAA3T,EAAA,EAAA,MAAA4T,MAAA5T,UAAAM,QAnB1CgW,MAAA,oBAAC,YAAA,EACU,WAAA1G,IACI,eAAA0D,IACL,WAAA,QACGhT,aAAAA,MAAI,GACXkP,WACK,SAAA+D,IACG,YAAAC,IACE,cAAAG,IACC,eAAAC,IACF,aAAAC,KACDyE,YAAAA,WACAlT,YAAAA,WACJuK,QAAAA,OACC,SAAAmE,KACA,SAAAC,KACFzT,OAAAA,MACS,kBAAA2T,KACF,gBAAAmC,KACC,iBAAAC,KACFlE,aAAAA,IACR9C,KACKgM,SAAAA,CAAQ,GAClBrb,QAAAmS,IAAAnS,QAAAsY,WAAAtY,QAAAoF,WAAApF,QAAA2P,OAAA3P,QAAAqP,KAAArP,QAAAwP,WAAAxP,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,QAAAqb,UAAArb,QAAA6T,KAAA7T,QAAA8T,KAAA9T,QAAA+T,KAAA/T,QAAAiU,KAAAjU,QAAAoW,KAAApW,QAAAqW,KAAArW,QAAA4P,IAAA5P,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA4T,IAAA5T,QAAAM,MAAAN,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA;AAAA,MAAAuW;AAAA,SAAAvW,EAAA,EAAA,MAAAI,UAAAJ,UAAAsW,OAAAtW,EAAA,EAAA,MAAAM,QAxBJiW,0BAAC,oBAAA,EAA2BnW,QAAcE,MACxCgW,UAAAA,IAAAA,CAwBF,GAAqBtW,QAAAI,QAAAJ,QAAAsW,KAAAtW,QAAAM,MAAAN,QAAAuW,OAAAA,MAAAvW,EAAA,EAAA,GAzBrBuW;AAyBqB,CAExB;AACD8F,KAAKxc,cAAc;AClGZ,SAAA4c,qBAAAC,UAAAnc,IAAAoc,iBAAA;AAAA,QAAA3c,IAAAC,EAAA,CAAA,GAEL2c,cAAArc,OAAgE/E,SAAAwY,UAAhEzT;AAAgE,MAAAE;AAAAT,IAAA,CAAA,MAAA2c,mBAAA3c,SAAA4c,eAAA5c,EAAA,CAAA,MAAA0c,YAOjCjc,KAAAoc,CAAAA,QAAA;AAAA,QAAA,CACxBH;AAAQ;AAIb,UAAAI,SAAeD,IAAGC;AAAO,QAAA,EAEnBA,kBAAMzjB;AAAgB;AAI5B,UAAA0jB,0BAAgCJ,kBAAAA;AAAmB,QAE/CI,2BAAuB,CAAKA,wBAAuBljB,SAAUijB,MAAM;AAAC;AAIxE,UAAAE,WAAiBJ,YAAAA,EAAaK,KAAAA;AAAO,eAEhCljB,MAAYijB;AAAQ,UAClBjjB,OAED+iB,WAAW/iB,MAAMA,GAAEF,SAAUijB,MAAM;AAAC;AAK1CJ,aAASG,GAAG;AAAA,EAAC,GACd7c,OAAA2c,iBAAA3c,OAAA4c,aAAA5c,OAAA0c,UAAA1c,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AA5BD,QAAAkd,UAAgBC,eAAe1c,EA4B9B,GAED2c,cAAoBzX,CAAAA,CAAQ+W;AAAS,MAAA7b;AAAAb,IAAA,CAAA,MAAAod,eAAApd,SAAAkd,WAE3Brc,KAAAA,MAAA;AAAA,QAAA,CACHuc;AAAW;AAEhB,UAAAC,cAAAC,CAAAA,UAAyCJ,QAAQL,KAAG;AAEpDnd,WAAAA,SAAA6d,iBAA0B,aAAaF,WAAW,GAAC,MAAA;AAGjD3d,eAAA8d,oBAA6B,aAAaH,WAAW;AAAA,IAAC;AAAA,EAAA,GAEzDrd,OAAAod,aAAApd,OAAAkd,SAAAld,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAA,MAAAgB;AAAAhB,WAAAod,eAAEpc,MAACoc,WAAW,GAACpd,OAAAod,aAAApd,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA,GAVhBqT,UAAUxS,IAUPG,EAAa,GAEhByc,cAAcf,WAAW,iBAAiB,eAAe;AAAC;AArDrD,SAAA1I,UAAA;AAAA,SAAArc;AAAA;ACbA,SAAA+lB,kBAAArO,KAAAsO,gBAAA;AAAA,QAAA3d,IAAAC,EAAA,CAAA;AAAA,MAAAM,IAAAE;AAAAT,IAAA,CAAA,MAAA2d,kBAAA3d,SAAAqP,OAIK9O,KAAAA,MAAA;AACR8O,QAAGuO,SAAAC,kBAA4BF,kBAAkB,EAAE;AAAA,EAAA,GAClDld,KAAA,CAACkd,gBAAgBtO,GAAG,GAACrP,OAAA2d,gBAAA3d,OAAAqP,KAAArP,OAAAO,IAAAP,OAAAS,OAAAF,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAFxBqT,UAAU9S,IAEPE,EAAqB;AAAC;ACNpB,MAAMqd,kBACX,OAAOpe,WAAa,OAAe,OAAOxF,SAAW,OAAeA,OAAO6jB,iBACvE7jB,OAAO6jB,iBACPC,gBCqCOC,uBAAuBC,2BAAAA;AAEpC,SAASC,kCAAwD;AAC/D,SAAO;AAAA,IACLC,UAAUplB,SAASqlB,YAAY;AAC7B,YAAMC,iBAAiB,IAAIR,gBAAgB,CAAC,CAACS,KAAK,MAAM;AACtDF,mBAAW;AAAA,UACTG,cAAcD,MAAME;AAAAA,UACpBjd,QAAQ;AAAA,YACNM,OAAOyc,MAAMG,cAAc,CAAC,EAAEC;AAAAA,YAC9BzhB,QAAQqhB,MAAMG,cAAc,CAAC,EAAEE;AAAAA,UAAAA;AAAAA,UAEjC5hB,SAAS;AAAA,YACP8E,OAAOyc,MAAME,YAAY3c;AAAAA,YACzB5E,QAAQqhB,MAAME,YAAYvhB;AAAAA,UAAAA;AAAAA,QAC5B,CACD;AAAA,MACH,CAAC;AAEDohB,aAAAA,eAAeO,QAAQ7lB,OAAO,GAEvB,MAAM;AACXslB,uBAAeQ,UAAU9lB,OAAO,GAChCslB,eAAeS,WAAAA;AAAAA,MACjB;AAAA,IACF;AAAA,EAAA;AAEJ;AAEA,SAASb,6BAAmD;AAC1D,QAAMc,eAAe,oBAAIC,QAAAA,GACnBC,uCAAuBD,QAAAA;AAE7B,SAAO;AAAA,IACLb,UAAUplB,SAASqlB,YAAY;AAC7B,YAAMc,cAAcD,iBAAiBE,IAAIpmB,OAAO,KAAK,CAAA;AAErD,UAAIqmB,UAAUL,aAAaI,IAAIpmB,OAAO;AAEtC,aAAKkmB,iBAAiBI,IAAItmB,OAAO,MAC/BkmB,iBAAiBK,IAAIvmB,SAASmmB,WAAW,GAKzCE,UAHiBlB,gCAAAA,EAGEC,UAAUplB,SAAUwmB,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,YAAYnjB,WAAW,KAErBqjB,WAASA,QAAAA;AAAAA,MAEjB;AAAA,IACF;AAAA,EAAA;AAEJ;AC3GO,SAAAS,eAAA9mB,SAAA;AAAA,QAAAgH,IAAAC,EAAA,CAAA,GACL,CAAAxC,OAAAsiB,OAAA,IAAwBjN,aAAiC;AAAC,MAAAvS,IAAAE;AAAA,SAAAT,SAAAhH,WAEhDuH,KAAAA,MAAA;AAAA,QACHvH;AAAO,aAELilB,qBAAAG,UAA+BplB,SAAS+mB,OAAO;AAAA,EAAC,GACtDtf,MAACzH,OAAO,GAACgH,OAAAhH,SAAAgH,OAAAO,IAAAP,OAAAS,OAAAF,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAJZqT,UAAU9S,IAIPE,EAAS,GAELhD;AAAI;ACXN,SAAAuiB,iBAAAC,WAAA;AAAA,QAAAjgB,IAAAC,EAAA,CAAA;AAAA,MAAAM;AAAAP,WAAAigB,aACgC1f,KAAA2f,CAAAA,UAA0BD,UAAUC,KAAK,GAAClgB,OAAAigB,WAAAjgB,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAA/E,QAAAmgB,gBAAsBhD,eAAe5c,EAA0C;AAAC,MAAAE;AAAAT,WAAAmgB,iBAEtE1f,KAAAA,MAAA;AACR,UAAA2f,UAAAC,CAAAA,YAA0CF,cAAcD,OAAK;AAE7DhmB,WAAAA,OAAAqjB,iBAAwB,WAAW6C,OAAO,GAAC,MAE9BlmB,OAAAsjB,oBAA2B,WAAW4C,OAAO;AAAA,EAAC,GAC5DpgB,OAAAmgB,eAAAngB,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAAb,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAAEoB,KAAA,IAAEb,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GANLqT,UAAU5S,IAMPI,EAAE;AAAC;ACND,SAAAyf,cAAAC,kBAAAC,oBAAA;AAAA,QAAAxgB,IAAAC,EAAA,CAAA;AAILwd,gBAAc8C,gBAAgB;AAAC,MAAAhgB;AAAAP,WAAAugB,oBAI3BhgB,KAAAkgB,CAAAA,kBAAA;AACE,UAAA1lB,QAAcb,OAAAwmB,WAAkBH,gBAAgB;AAChDxlB,WAAAA,MAAKwiB,iBAAkB,UAAUkD,aAAa,GAAC,MAClC1lB,MAAKyiB,oBAAqB,UAAUiD,aAAa;AAAA,EAAC,GAChEzgB,OAAAugB,kBAAAvgB,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAAA,MAAAS;AAAA,SAAAT,SAAAugB,oBAGH9f,KAAAA,MAAMvG,OAAAwmB,WAAkBH,gBAAgB,EAACI,SAAQ3gB,OAAAugB,kBAAAvgB,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAT5C4gB,qBACLrgB,IAQAE,IACA+f,kBACF;AAAC;ACTH,SAASK,eAAe9lB,OAAiBwT,OAA2B;AAClE,SAAIA,UAAU,IACL,0BAA0BxT,MAAMwT,KAAK,IAAI,CAAC,QAG/CA,UAAUxT,MAAMiB,SACX,0BAA0BjB,MAAMwT,QAAQ,CAAC,CAAC,QAG5C,0BAA0BxT,MAAMwT,QAAQ,CAAC,CAAC,uBAAuBxT,MAAMwT,KAAK,IAAI,CAAC;AAC1F;AAEA,SAASuS,kBAAkB/lB,OAA8B;AACvD,QAAMgmB,WAAWhmB,MAAMiB;AACvB,MAAIU;AAKJ,QAAMskB,WAAWA,MAAM;AACrB,QAAI,CAACtkB,OAAO;AACVA,cAAQ,CAAA;AAER,eAAS6R,QAAQwS,UAAUxS,QAAQ,IAAIA,SAAS,GAAG;AACjD,cAAM0S,aAAaJ,eAAe9lB,OAAOwT,KAAK;AAE9C7R,cAAMgjB,KAAK;AAAA,UAACnR;AAAAA,UAAO2S,IAAIhnB,OAAOwmB,WAAWO,UAAU;AAAA,QAAA,CAAE;AAAA,MACvD;AAAA,IACF;AAEA,WAAOvkB;AAAAA,EACT;AA8BA,SAAO;AAAA,IAACykB,aA5BYA,MAAM;AACxB,iBAAW;AAAA,QAAC5S;AAAAA,QAAO2S;AAAAA,MAAAA,KAAOF,SAAAA;AACxB,YAAIE,GAAGP,QAAS,QAAOpS;AAGzB,aAAO;AAAA,IACT;AAAA,IAsBqB6P,WApBFqC,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,WAAG3D,iBAAiB,UAAU8D,YAAY,GAE1CD,WAAW1B,KAAK,MAAMwB,GAAG1D,oBAAoB,UAAU6D,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,QAAAvhB,IAAAC,EAAA,CAAA,GACL;AAAA,IAAAlF;AAAAA,EAAAA,IAAgBuG,YAAAA;AAAa,MAAAf;AAAAP,WAAAjF,SACDwF,KAAAugB,kBAAkB/lB,KAAK,GAACiF,OAAAjF,OAAAiF,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAApD,QAAAwhB,QAA4BjhB;AAAkC,SAEvDqgB,qBAAqBY,MAAKpD,WAAYoD,MAAKL,aAAAX,iBAA+B;AAAC;ACvF7E,SAAAiB,eAAAlhB,IAAA;AAAuD,SACrD+f,cAAc,gCADQ/f,OAA+B/E,SAAAwY,UAA/BzT,EACyC;AAAC;AADlE,SAAAyT,UAAA;AAAA,SAAA;AAAA;ACAA,SAAA0N,wBAAAnhB,IAAA;AAAgE,SAC9D+f,cAAc,oCADiB/f,OAA+B/E,SAAAwY,UAA/BzT,EACoC;AAAC;AADtE,SAAAyT,UAAA;AAAA,SAAA;AAAA;ACPA,SAAS2N,qBAA6C;AAC3D,SAAOrW;AAAAA;AAAAA;AAAAA;AAIT;AAEO,SAASsW,mBAAmB/lB,OAA2C;AAC5E,QAAM;AAAA,IAACoJ;AAAAA,IAAO0G;AAAAA,IAAO8B;AAAAA,EAAAA,IAAUvR,YAAYL,MAAMD,KAAK,GAChD;AAAA,IAACwJ;AAAAA,EAAAA,IAAauG,MAAMkW;AAE1B,SAAOvW;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gBAeO1Q,IAAI+Q,MAAMkW,SAASpkB,IAAI,CAAC;AAAA,eACzB7C,IAAI+Q,MAAMkW,SAASpkB,IAAI,CAAC;AAAA;AAAA,oBAEnBuH,qBAAqB;AAAA,IACjCC,OAAOA,MAAM0G,MAAMC,QAAQC,QAAQrK;AAAAA,IACnCM,OAAO6J,MAAMnK,OAAOM;AAAAA,EAAAA,CACrB,CAAC;AAAA,uBACelH,IAAI6S,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,MAAMqc,iBAAiBrT,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAC+S,kBAAkB,GAC9CI,UAAQtT,uBAAO9C,MAAKgD,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACgT,kBAAkB,GAOhCI,WAAW5S,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAiiB,SAAAC,WAAAxE,gBAAA3R,UAAAoW,eAAAlW,UAAAsD,WAAAvV;AAAA+F,WAAAnE,SAIjC;AAAA,IAAAqmB;AAAAA,IAAAC;AAAAA,IAAAnW;AAAAA,IAAAoW;AAAAA,IAAAzE;AAAAA,IAAAzR;AAAAA,IAAAjS;AAAAA,IAAA,GAAAuV;AAAAA,EAAAA,IASI3T,OAAKmE,OAAAnE,OAAAmE,OAAAkiB,SAAAliB,OAAAmiB,WAAAniB,OAAA2d,gBAAA3d,OAAAgM,UAAAhM,OAAAoiB,eAAApiB,OAAAkM,UAAAlM,OAAAwP,WAAAxP,OAAA/F,UAAAioB,UAAAliB,EAAA,CAAA,GAAAmiB,YAAAniB,EAAA,CAAA,GAAA2d,iBAAA3d,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAAoiB,gBAAApiB,EAAA,CAAA,GAAAkM,WAAAlM,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAA/F,QAAA+F,EAAA,CAAA;AACT,QAAAqP,MAAYgT,OAAA,IAAoC;AAAC,MAAA9hB;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI/Cc,KAAAA,MAAM8O,IAAGuO,SAAQ5d,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFnBsiB,oBACEL,cACA1hB,EACF;AAAC,MAAAE,IAAAI;AAAAb,YAAAoiB,iBAES3hB,KAAAA,MAAA;AACJ4O,QAAGuO,YAELvO,IAAGuO,QAAAwE,gBAAyBA,iBAAa;AAAA,EAAS,GAEnDvhB,MAACuhB,aAAa,GAACpiB,QAAAoiB,eAAApiB,QAAAS,IAAAT,QAAAa,OAAAJ,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,IALlBqT,UAAU5S,IAKPI,EAAe,GAElB6c,kBAAkBrO,KAAKsO,cAAc;AAKf,QAAA3c,MAACgL,YAAYE,WAAW,KAAE1Q,QAC9BoU,KAAA+N,iBAAiB,KAAEniB,QAGrB8X,KAAAtH,YAAYE;AAAQ,MAAAqH;AAAAvT,YAAAkiB,WAAAliB,EAAA,EAAA,MAAAkM,YAAAlM,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAgB,MAAAhB,UAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MALhCC,yBAACwO,SAAA,EACiB,kBAAA/gB,IACJ,cAAA4O,OACRJ,WACK0S,SACC,UAAA5O,IACL,MAAA,YACKpH,UACLmD,IAAAA,CAAG,GACRrP,QAAAkiB,SAAAliB,QAAAkM,UAAAlM,QAAAwP,WAAAxP,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACF+T,KAAA,qBAAA,QAAA,EACE,UAAA;AAAA,IAAA,oBAAC,eAAA;wBACA,YAAA,CAAA,CAAU;AAAA,EAAA,EAAA,CACb,GAAOxT,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA,SAAA3T,EAAA,EAAA,MAAAmiB,aAAAniB,UAAA/F,SAAA+F,EAAA,EAAA,MAAAuT,MAdTI,KAAA,qBAAC,kBAA0BwO,WAAmB,WAAA,YAAkBloB,OAC9DsZ,UAAAA;AAAAA,IAAAA;AAAAA,IAUAC;AAAAA,EAAAA,GAIF,GAAiBxT,QAAAmiB,WAAAniB,QAAA/F,OAAA+F,QAAAuT,IAAAvT,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA,GAfjB2T;AAeiB,CAEpB;AACDqO,SAASniB,cAAc;ACrEvB,SAAS0iB,4BAA4B;AAAA,EAAC3mB;AAAuB,GAAG;AAC9D,QAAM;AAAA,IACJqJ,OAAO;AAAA,MAACud,QAAQvd;AAAAA,IAAAA;AAAAA,EAAK,IACnB/I,YAAYN,KAAK;AAErB,SAAO;AAAA,IACL,YAAY;AAAA,MAACqJ,OAAOA,MAAMwd;AAAAA,IAAAA;AAAAA,IAC1B,eAAe;AAAA,MAACxd,OAAOA,MAAMyd;AAAAA,IAAAA;AAAAA,IAC7B,gBAAgB;AAAA,MAACzd,OAAOA,MAAM0d;AAAAA,IAAAA;AAAAA,IAC9B,eAAe;AAAA,MAAC1d,OAAOA,MAAM2d;AAAAA,IAAAA;AAAAA,IAC7B,aAAa;AAAA,MAAC3d,OAAOA,MAAM4d;AAAAA,IAAAA;AAAAA,IAC3B,aAAa;AAAA,MAAC5d,OAAOA,MAAM6d;AAAAA,IAAAA;AAAAA,IAC3B,WAAW;AAAA,MAAC7d,OAAOA,MAAM8d;AAAAA,IAAAA;AAAAA,IACzB,UAAU;AAAA,MAAC9d,OAAOA,MAAM+d;AAAAA,IAAAA;AAAAA,IACxB,WAAW;AAAA,MAAC/d,OAAOA,MAAMge;AAAAA,IAAAA;AAAAA,IACzB,gBAAgB;AAAA,MAAChe,OAAOA,MAAMkd;AAAAA,IAAAA;AAAAA,IAC9B,aAAa;AAAA,MAACld,OAAOA,MAAMie;AAAAA,IAAAA;AAAAA,IAC3B,cAAc;AAAA,MAACje,OAAOA,MAAMke;AAAAA,IAAAA;AAAAA,IAC5B,aAAa;AAAA,MAACle,OAAOA,MAAMme;AAAAA,IAAAA;AAAAA,IAC3B,aAAa;AAAA,MAACne,OAAOA,MAAMoe;AAAAA,IAAAA;AAAAA,IAC3B,YAAY;AAAA,MAACpe,OAAOA,MAAMqe;AAAAA,IAAAA;AAAAA,IAC1B,cAAc;AAAA,MAACre,OAAOA,MAAMse;AAAAA,IAAAA;AAAAA,IAC5B,aAAa;AAAA,MAACte,OAAOA,MAAMue;AAAAA,IAAAA;AAAAA,IAC3B,QAAQ;AAAA,MAACve,OAAOA,MAAMwe;AAAAA,IAAAA;AAAAA,IACtB,eAAe;AAAA,MAACxe,OAAOA,MAAMye;AAAAA,IAAAA;AAAAA,IAC7B,cAAc;AAAA,MAACze,OAAOA,MAAM0e;AAAAA,IAAAA;AAAAA,IAC5B,aAAa;AAAA,MAAC1e,OAAOA,MAAM2e;AAAAA,IAAAA;AAAAA,IAC3B,YAAY;AAAA,MAAC3e,OAAOA,MAAM4e;AAAAA,IAAAA;AAAAA,IAC1B,cAAc;AAAA,MAAC5e,OAAOA,MAAM6e;AAAAA,IAAAA;AAAAA,IAC5B,YAAY;AAAA,MAAC7e,OAAOA,MAAM8e;AAAAA,IAAAA;AAAAA,IAC1B,cAAc;AAAA,MAAC9e,OAAOA,MAAM+e;AAAAA,IAAAA;AAAAA,IAC5B,kBAAkB;AAAA,MAAC/e,OAAOA,MAAMgf;AAAAA,IAAAA;AAAAA,IAChC,oBAAoB;AAAA,MAAChf,OAAOA,MAAMif;AAAAA,IAAAA;AAAAA,IAClC,iBAAiB;AAAA,MAACjf,OAAOA,MAAMkf;AAAAA,IAAAA;AAAAA,IAC/B,WAAW;AAAA,MAAClf,OAAOA,MAAMmf;AAAAA,IAAAA;AAAAA,IACzB,cAAc;AAAA,MAACnf,OAAOA,MAAMof;AAAAA,IAAAA;AAAAA,IAC5B,YAAY;AAAA,MAACpf,OAAOA,MAAMqf;AAAAA,IAAAA;AAAAA,IAC1B,YAAY;AAAA,MAACrf,OAAOA,MAAM1F;AAAAA,IAAAA;AAAAA,IAC1B,SAAS;AAAA,MAAC0F,OAAOA,MAAMsf;AAAAA,IAAAA;AAAAA,IACvB,UAAU;AAAA,MAACtf,OAAOA,MAAMuf;AAAAA,IAAAA;AAAAA,IACxB,SAAS;AAAA,MAACvf,OAAOA,MAAMwf;AAAAA,IAAAA;AAAAA,IACvB,cAAc;AAAA,MAACxf,OAAOA,MAAMyf;AAAAA,IAAAA;AAAAA,EAAQ;AAExC;AAEO,SAASC,gBAAwC;AACtD,SAAOrZ;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAOCiX,2BAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBrC;ACrEA,MAAMqC,gBAAgBC,KAAK,MAAM,OAAO,iBAAa,CAAC,GAahDC,aAAarW,uBAAOsW,IAAGpW,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAA2B+V,eAAelmB,uBAAuB,GAKjFumB,OAAO5V,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAtH,UAAAssB,UAAAzV,WAAAjP,IAAAmP;AAAA1P,WAAAnE,SAI7B;AAAA,IAAAlD;AAAAA,IAAAssB;AAAAA,IAAAxnB,MAAA8C;AAAAA,IAAAmP;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAA6D3T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAilB,UAAAjlB,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAA0P,WAAA/W,WAAAqH,EAAA,CAAA,GAAAilB,WAAAjlB,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAA0P,SAAA1P,EAAA,CAAA;AAAvC,QAAAvC,QAAA8C,OAAQ/E,aAAR+E;AAAQ,MAAAE;AAAAT,WAAAvC,SAMxBgD,KAAApF,cAAcoC,KAAI,GAACuC,OAAAvC,OAAAuC,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAAb,WAAArH,YAINkI,KAAA,oBAAA,UAAOlI,UAAS,GAAOqH,OAAArH,UAAAqH,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAA,MAAAgB;AAAAhB,IAAA,EAAA,MAAArH,YAAAqH,UAAAilB,YACzCjkB,KAAA,oBAAC,eAAA,EAAwBikB,UAAiBtsB,OAAAA,SAAAA,CAAQ,GAAIqH,QAAArH,UAAAqH,QAAAilB,UAAAjlB,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAAA,MAAA4P;AAAA5P,IAAA,EAAA,MAAAa,MAAAb,UAAAgB,MADxD4O,KAAA,oBAAC,UAAA,EAAmB,UAAA/O,IAClBG,UAAAA,IACF,GAAWhB,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAA,SAAAtT,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAS,MAAAT,EAAA,EAAA,MAAA4P,MAAA5P,UAAA0P,UATb4D,KAAA,oBAAC,YAAA,EACS,WAAA,QAAM,GACV9D,WACG,OAAA/O,IACEiP,SAAAA,QACJL,KAELO,UAAAA,GAAAA,CAGF,GAAa5P,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAS,IAAAT,QAAA4P,IAAA5P,QAAA0P,QAAA1P,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA,GAVbsT;AAUa,CAEhB;AACD0R,KAAKnlB,cAAc;ACxCnB,MAAMuC,eAAwB;AAAA,EAC5BN,OAAO;AAAA,EACPtD,QAAQ;AACV;AAEO,SAAS0mB,qBAAgC;AAC9C,SAAO9iB;AACT;AAEO,SAAS+iB,8BACdtpB,OACa;AACb,QAAM;AAAA,IAACupB;AAAAA,IAAWrqB;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAElD,SAAOd,YAAYC,OAAOc,MAAMme,QAAS1e,CAAAA,SAAS;AAAA,IAChD+pB,UAAU/pB,QAAQ,SAAS,SAASV,IAAIwqB,UAAU9pB,GAAG,CAAC;AAAA,EAAA,EACtD;AACJ;ACRA,MAAMgqB,kBAAkB7W,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EACjCsW,oBACAC,6BAA6B,GAQlBI,YAAYnW,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAkS,IAAA3C,WAAAjP;AAAAP,WAAAnE,SAIlC;AAAA,IAAAsW;AAAAA,IAAArQ,OAAAvB;AAAAA,IAAA,GAAAiP;AAAAA,EAAAA,IAAsC3T,OAAKmE,OAAAnE,OAAAmE,OAAAmS,IAAAnS,OAAAwP,WAAAxP,OAAAO,OAAA4R,KAAAnS,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AAAhC,QAAA8B,QAAAvB,OAAS/E,aAAT+E;AAAS,MAAAE;AAAAT,WAAA8B,SAMRrB,KAAApF,cAAcyG,KAAK,GAAC9B,OAAA8B,OAAA9B,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAmS,MAAAnS,EAAA,CAAA,MAAAqP,OAAArP,EAAA,CAAA,MAAAwP,aAAAxP,SAAAS,MAH9BI,KAAA,oBAAC,iBAAA,EACS,WAAA,aAAW,GACf2O,WACI,QAAA/O,IACK0R,aAAAA,IACR9C,IAAAA,CAAG,GACRrP,OAAAmS,IAAAnS,OAAAqP,KAAArP,OAAAwP,WAAAxP,OAAAS,IAAAT,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GANFa;AAME,CAEL;AACD0kB,UAAU1lB,cAAc;AC3BxB,MAAM2lB,aAAa/W,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAA2B5G,mBAAmB,GAO/Dyd,OAAOrW,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAkS,IAAAnJ,UAAAN,UAAAG,UAAAlQ,UAAAwQ,SAAA7E,KAAAoF,MAAAG,MAAA2F,WAAAlG;AAAAtJ,WAAAnE,SAI7B;AAAA,IAAAsW;AAAAA,IAAAtJ;AAAAA,IAAAG;AAAAA,IAAAN;AAAAA,IAAAS;AAAAA,IAAA7E;AAAAA,IAAAoF;AAAAA,IAAAG;AAAAA,IAAAP;AAAAA,IAAA3Q;AAAAA,IAAA,GAAA6W;AAAAA,EAAAA,IACE3T,OAAKmE,OAAAnE,OAAAmE,OAAAmS,IAAAnS,OAAAgJ,UAAAhJ,OAAA0I,UAAA1I,OAAA6I,UAAA7I,OAAArH,UAAAqH,OAAAmJ,SAAAnJ,OAAAsE,KAAAtE,OAAA0J,MAAA1J,OAAA6J,MAAA7J,QAAAwP,WAAAxP,QAAAsJ,SAAA6I,KAAAnS,EAAA,CAAA,GAAAgJ,WAAAhJ,EAAA,CAAA,GAAA0I,WAAA1I,EAAA,CAAA,GAAA6I,WAAA7I,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAmJ,UAAAnJ,EAAA,CAAA,GAAAsE,MAAAtE,EAAA,CAAA,GAAA0J,OAAA1J,EAAA,CAAA,GAAA6J,OAAA7J,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAsJ,OAAAtJ,EAAA,EAAA;AAIM,QAAAO,YAAO4R,MAAO,WAAWA,KAAE3W;AAAY,MAAAiF;AAAAT,YAAA6I,YAGrCpI,KAAApF,cAAcwN,QAAQ,GAAC7I,QAAA6I,UAAA7I,QAAAS,MAAAA,KAAAT,EAAA,EAAA;AAAA,MAAAa;AAAAb,YAAAgJ,YACvBnI,KAAAxF,cAAc2N,QAAQ,GAAChJ,QAAAgJ,UAAAhJ,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAA,MAAAgB;AAAAhB,YAAA0I,YACvB1H,KAAA3F,cAAcqN,QAAQ,GAAC1I,QAAA0I,UAAA1I,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAAA,MAAA4P;AAAA5P,YAAAmJ,WACxByG,KAAAvU,cAAc8N,OAAO,GAACnJ,QAAAmJ,SAAAnJ,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAAtT,YAAAsE,OAC1BgP,KAAAjY,cAAciJ,GAAG,GAACtE,QAAAsE,KAAAtE,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAAvT,YAAA0J,QACjB6J,KAAAlY,cAAcqO,IAAI,GAAC1J,QAAA0J,MAAA1J,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAA6J,QACnB2J,KAAAnY,cAAcwO,IAAI,GAAC7J,QAAA6J,MAAA7J,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA3T,YAAAsJ,QACnBqK,KAAAtY,cAAciO,IAAI,GAACtJ,QAAAsJ,MAAAtJ,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA,SAAA5T,UAAAmS,MAAAnS,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAO,MAAAP,EAAA,EAAA,MAAAS,MAAAT,UAAAa,MAAAb,EAAA,EAAA,MAAAgB,MAAAhB,EAAA,EAAA,MAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MAAAtT,EAAA,EAAA,MAAAuT,MAAAvT,UAAAwT,MAAAxT,EAAA,EAAA,MAAA2T,MAX5BC,yBAAC,YAAA,EACU,WAAArT,IACD,WAAA,QAAM,GACViP,WACO,WAAA/O,IACA,WAAAI,IACA,WAAAG,IACD,UAAA4O,IACJ,MAAA0D,IACC,OAAAC,IACA,OAAAC,IACA,OAAAG,IACMxB,iBACR9C,eAGP,GAAarP,QAAAmS,IAAAnS,QAAArH,UAAAqH,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA,GAhBb4T;AAgBa,CAEhB;AACD6R,KAAK5lB,cAAc;ACzCZ,SAAS6lB,iBAAiB7pB,OAA+D;AAC9F,QAAM;AAAA,IAACiT;AAAAA,IAASC;AAAAA,EAAAA,IAAUlT,OACpB;AAAA,IAACW;AAAAA,EAAAA,IAAQN,YAAYL,MAAMD,KAAK;AAEtC,SAAO0P;AAAAA,MACHwD,WACFxD;AAAAA;AAAAA,KAEC;AAAA;AAAA,MAECyD,UACFzD;AAAAA;AAAAA,KAEC;AAAA;AAAA;AAAA,qBAGgB9O,KAAKwS,KAAKvS,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,KAAKmpB,QAAQhpB,QAAQ2a,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAa9C;AC7BA,MAAMsO,gBAAgBnX,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAE9B8W,kBAAkB9mB,0BAA0BF,qBAAqB,GAOtDmnB,UAAUzW,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAkE,OAAAoL,cAAAC,WAAAjP,IAAAE,IAAAI,IAAA4O,cAAAC;AAAA1P,WAAAnE,SAIhC;AAAA,IAAAyT,QAAA/O;AAAAA,IAAA4D;AAAAA,IAAAxL,UAAA4W;AAAAA,IAAAI,OAAAlP;AAAAA,IAAAhD,MAAAoD;AAAAA,IAAA4O;AAAAA,IAAAC;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IASI3T,OAAKmE,OAAAnE,OAAAmE,OAAAmE,OAAAnE,OAAAuP,cAAAvP,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAAyP,cAAAzP,OAAA0P,WAAAvL,QAAAnE,EAAA,CAAA,GAAAuP,eAAAvP,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAyP,eAAAzP,EAAA,CAAA,GAAA0P,SAAA1P,EAAA,CAAA;AARP,QAAAsP,SAAA/O,OAAc/E,cAAd+E,IAGAoP,QAAAlP,OAAajF,cAAbiF,IACAhD,QAAAoD,OAAQrF,aAARqF;AAMF,MAAAlI,WAAe4W;AAAY,MAEvBE,iBAAiB,YAAU;AAAA,QAAAzO;AAAAhB,aAAArH,YAClBqI,0BAAC,sBAAA,YAA+B,GAAuBhB,OAAArH,UAAAqH,QAAAgB,OAAAA,MAAAhB,EAAA,EAAA,GAAlErH,WAAWA;AAAAA,EAAH;AAAA,MAAAqI;AAAAhB,YAAAmE,SAQEnD,KAAA3F,cAAc8I,KAAK,GAACnE,QAAAmE,OAAAnE,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAAA,MAAA4P;AAAA5P,YAAAvC,SAErBmS,KAAAvU,cAAcoC,KAAI,GAACuC,QAAAvC,OAAAuC,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAAtT,YAAArH,YAI1B2a,KAAA,oBAAA,UAAO3a,UAAS,GAAOqH,QAAArH,UAAAqH,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAA,SAAAvT,EAAA,EAAA,MAAAsP,UAAAtP,EAAA,EAAA,MAAA2P,SAAA3P,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAgB,MAAAhB,EAAA,EAAA,MAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MAAAtT,UAAA0P,UAVzB6D,yBAAC,eAAA,EACS,WAAA,WAAS,GACb/D,WACKF,SAAAA,QACD,QAAAtO,IACA2O,QAAAA,OACD,OAAAC,IACEF,SAAAA,QACJL,KAELiE,UAAAA,IACF,GAAgBtT,QAAAsP,QAAAtP,QAAA2P,OAAA3P,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAA0P,QAAA1P,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GAXhBuT;AAWgB,CAEnB;AACDsS,QAAQhmB,cAAc;AC1Ef,SAASimB,kBAA6B;AAC3C,SAAO;AAAA,IACL,YAAc;AAAA,IAEd,oBAAoB;AAAA,MAClB7oB,SAAS;AAAA,IAAA;AAAA,IAGX,WAAW;AAAA,MACTA,SAAS;AAAA,MACTya,eAAe;AAAA,IAAA;AAAA,EACjB;AAEJ;AAEO,SAASqO,iBAAiBlqB,OAAkE;AACjG,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMuO,QAASjO,CAAAA,eAAe;AACtD,UAAMoO,SAAS3P,IAAIuB,eAAe,MAAMF,MAAM,CAAC,IAAI,IAAIA,MAAME,UAAU,CAAC;AAExE,WAAO;AAAA,MACL,QAAU,IAAIoO,MAAM,SAASA,MAAM;AAAA,MACnC,WAAW;AAAA,QAAC4L,SAAS,GAAG5L,MAAM,QAAQA,MAAM;AAAA,MAAA;AAAA,IAAE;AAAA,EAElD,CAAC;AACH;ACfA,MAAMyb,eAAevX,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAkCkX,iBAAiBC,gBAAgB,GAOtFE,SAAS7W,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAkS,IAAA5C,cAAAC,WAAAvT;AAAA+D,WAAAnE,SAI/B;AAAA,IAAAsW;AAAAA,IAAAxZ,UAAA4W;AAAAA,IAAAtT;AAAAA,IAAA,GAAAuT;AAAAA,EAAAA,IAA0D3T,OAAKmE,OAAAnE,OAAAmE,OAAAmS,IAAAnS,OAAAuP,cAAAvP,OAAAwP,WAAAxP,OAAA/D,UAAAkW,KAAAnS,EAAA,CAAA,GAAAuP,eAAAvP,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAA/D,QAAA+D,EAAA,CAAA;AAAA,MAAAO;AAAAP,WAAAuP,gBAGvDhP,KAAA0U,SAAA/Z,IAAaqU,cAAYyE,OAAwC,GAAChU,OAAAuP,cAAAvP,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAD1E,QAAArH,WACQ4H;AAEP,MAAAE;AAAAT,WAAA/D,SAMWwE,KAAApF,cAAcY,KAAK,GAAC+D,OAAA/D,OAAA+D,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAEvB,QAAAa,KAAAwO;AAAU,MAAArO;AAAA,SAAAhB,EAAA,CAAA,MAAAmS,MAAAnS,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAS,MAAAT,UAAAa,MALjBG,KAAA,oBAAC,cAAA,EACS,WAAA,UAAQ,GACZwO,WACI,QAAA/O,IACK0R,aAAAA,IACR,KAAAtR,IAEJlI,SAAAA,CACH,GAAeqH,OAAAmS,IAAAnS,QAAArH,UAAAqH,QAAAwP,WAAAxP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA,GARfgB;AAQe,CAElB;AACDilB,OAAOpmB,cAAc;AAvBY,SAAAmU,QAAAwB,OAAA;AAAA,SAOeA,SAAS,oBAAA,OAAA,EAAMA,UAAAA,MAAAA,CAAM;AAAM;ACX3E,SAAS0Q,WAAW;AAClB,SAAO5a;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAeT;AAEA,MAAM6a,YAAY1X,uBAAOiL,IAAG/K,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAA6BpB,uBAAuB0Y,QAAQ,GAO3EE,MAAMhX,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAtH,UAAA6W,WAAAjP,IAAAE,IAAAI;AAAAb,WAAAnE,SAI5B;AAAA,IAAAlD;AAAAA,IAAA6E,UAAA+C;AAAAA,IAAA4V,SAAA1V;AAAAA,IAAAgN,QAAA5M;AAAAA,IAAA,GAAA2O;AAAAA,EAAAA,IAAwE3T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,OAAAlI,WAAAqH,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA;AAA5D,QAAAxC,YAAA+C,OAAY/E,aAAZ+E,IAAc4V,UAAA1V,OAAWjF,aAAXiF,IAAagN,SAAA5M,OAAUrF,aAAVqF;AAAU,MAAAG;AAAAhB,WAAAyN,UAGHzM,KAAA3F,cAAcoS,MAAM,GAACzN,OAAAyN,QAAAzN,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA;AAAA,MAAA4P;AAAA5P,IAAA,CAAA,MAAArH,YAAAqH,SAAAxC,aAElEoS,KAAA,oBAAC,MAAA,EAAQ,IAAA,QAAapS,MAAAA,WAAiB,QAAA,sBAEvC,GAAOwC,OAAArH,UAAAqH,OAAAxC,WAAAwC,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAAtT,IAAA,EAAA,MAAAmW,WAAAnW,UAAA4P,MAHT0D,yBAAC,KAAA,EAAO,IAAA,QAAgB6C,SACtBvG,UAAAA,GAAAA,CAGF,GAAM5P,QAAAmW,SAAAnW,QAAA4P,IAAA5P,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAA,SAAAvT,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAgB,MAAAhB,UAAAsT,MALRC,KAAA,oBAAC,aAAkB,WAAA,OAAK,GAAK/D,WAAoB,SAAAxO,IAA4BqO,KAC3EiE,UAAAA,GAAAA,CAKF,GAAYtT,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAgB,IAAAhB,QAAAsT,IAAAtT,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GANZuT;AAMY,CAEf;AACD6S,IAAIvmB,cAAc;ACjDX,MAAMwmB,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,SAAShlB,OAC/BilB,iBAAiBL,MAAMI,SAAS5pB,QAEhC8pB,SAASR,eAAeS,OAAOC,KAAK,GACpCC,SAASX,eAAeS,OAAOG,KAAK;AAE1C,QAAIP,iBAAiB,KAAKE,kBAAkB;AAC1C,aAAO,CAAA;AAGT,UAAMM,sBAAsB,CAAC,UAAU,KAAK,EAAEhtB,SAASssB,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,KAAa9f,KAAaC,KAAa;AACpD,SAAO1J,KAAKyJ,IAAIzJ,KAAK0J,IAAI6f,KAAK9f,GAAG,GAAGC,GAAG;AACzC;ACxBA,SAAS8f,kBAAkBC,aAAoBC,aAAoBC,QAAgB;AACjF,QAAMhmB,QAAQ+lB,YAAYX,IAAIU,YAAYV,GACpChqB,SAAS2qB,YAAYT,IAAIQ,YAAYR,GAErCxS,WAAWzW,KAAK4pB,KAAKjmB,QAAQA,QAAQ5E,SAASA,MAAM;AAE1D,SAAO8qB,sBAAsBJ,aAAaC,aAAa1pB,KAAKyJ,IAAI,GAAGkgB,SAASlT,QAAQ,CAAC;AACvF;AAEA,SAASoT,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,QAAM9d,MAAM8d,OAAOnsB,QAEbosB,OAAc,CAAA;AAEpB,WAAS3d,IAAI,GAAGA,IAAIJ,KAAKI,KAAK,GAAG;AAC/B,UAAM4d,QAAQF,OAAO1d,CAAC,GAChB6d,YAAYH,OAAO1d,IAAI,CAAC,GACxB8d,YAAYJ,OAAO1d,IAAI,CAAC;AAE9B,QAAI6d,aAAaD,MAAM5a,QAAQ;AAC7B,YAAM+a,aAAab,kBAAkBU,OAAOC,WAAWD,MAAM5a,MAAM,GAC7Dgb,WAAWd,kBAAkBU,OAAOE,WAAWF,MAAM5a,MAAM,GAC3Dib,eAAeV,sBAAsBQ,YAAYH,OAAO,GAAG,GAC3DM,aAAaX,sBAAsBK,OAAOI,UAAU,GAAG;AAE7DL,WAAK1I,KAAK;AAAA,QACR9mB,MAAM;AAAA,QACN,GAAG4vB;AAAAA,MAAAA,CACJ,GAEDJ,KAAK1I,KAAK;AAAA,QACR9mB,MAAM;AAAA,QACN6vB;AAAAA,QACAC;AAAAA,QACAC;AAAAA,MAAAA,CACD;AAAA,IACH;AACEP,WAAK1I,KAAK;AAAA,QACR9mB,MAAM;AAAA,QACN,GAAGyvB;AAAAA,MAAAA,CACJ;AAAA,EAEL;AAEA,SAAOD;AACT;AAEO,SAASQ,gBAAgBR,MAAqB;AACnD,SAAOA,KACJltB,IAAI,CAAC2tB,GAAGlJ,QACHkJ,EAAEjwB,SAAS,UACN,GAAG+mB,QAAQ,IAAI,MAAM,GAAG,IAAIkJ,EAAE3B,CAAC,IAAI2B,EAAEzB,CAAC,KAG3CyB,EAAEjwB,SAAS,UACN,KAAKiwB,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,EACAxhB,KAAK,GAAG;AACb;ACpFA,MAAMkjB,cAAcra,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC5B,CAAC;AAAA,EAACma,IAAIC;AAAC,MAAM1d;AAAAA;AAAAA,aAEF0d,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,aAAaxa,OAAOya,KAAIva,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,6CAIxBua,YAAY1a,OAAOya,KAAIva,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,+BAKhBuC,QAAQ/B,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAmpB,GAAA5Z,WAAAjP,IAAAyoB;AAAAhpB,WAAAnE,SAO9B;AAAA,IAAAiG,OAAAknB;AAAAA,IAAA9rB,QAAAksB;AAAAA,IAAA3b,QAAAlN;AAAAA,IAAA,GAAAiP;AAAAA,EAAAA,IAAwD3T,OAAKmE,OAAAnE,OAAAmE,OAAAopB,GAAAppB,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAgpB,MAAAI,IAAAppB,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAgpB,IAAAhpB,EAAA,CAAA;AAAjC,QAAAyN,SAAAlN,OAAU/E,aAAV+E,IAC5B;AAAA,IAAAzI;AAAAA,EAAAA,IAAewJ,YAAAA,GACfyP,cAAoBjZ,KAAI+V,OAAAG,SAExBqb,SAAeL,IAAC,GAEhBb,SAAA,CAAA;AAAA,IAAAjB,GAAA;AAAA,IAAAE,GAAA;AAAA,EAAA,GAAA;AAAA,IAAAF,GAMOzZ;AAAAA,IAAM2Z,GAAA;AAAA,IAAA3Z;AAAAA,EAAAA,GAAA;AAAA,IAAAyZ,GAKNmC;AAAAA,IAAMjC,GACNgC,IAAC;AAAA,IAAI3b;AAAAA,EAAAA,GAAA;AAAA,IAAAyZ,GAIL8B,IAAIvb;AAAAA,IAAM2Z,GAAA;AAAA,IAAA3Z;AAAAA,EAAAA,GAAA;AAAA,IAAAyZ,GAKV8B;AAAAA,IAAC5B,GAAA;AAAA,EAAA,CAAA,GAKRgB,OAAaF,mBAAmBC,MAAM,GACtCe,OAAaN,gBAAgBR,IAAI,GAEjCkB,aAAmB,GAAGJ,IAAI,IAC1BK,WAAiB,GAAGL,IAAI,MAAMF,CAAC,gBAIQvoB,KAAA,OAAOuoB,CAAC,IAAIA,CAAC;AAAE,MAAAnoB;AAAAb,IAAA,CAAA,MAAA+Q,eAAA/Q,SAAAgpB,KAChDnoB,KAAA,oBAAA,QAAA,EAAS,IAAA,eACP,UAAA,oBAAA,UAAS,GAAA,GAAMkQ,GAAAA,aAAoBiY,OAAAA,GAAWA,QAAAA,GAAQ,MAAA,QAAA,CAAO,GAC/D,GAAOhpB,OAAA+Q,aAAA/Q,OAAAgpB,GAAAhpB,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAC0D,QAAAgB,KAAA+P,cAAW;AAAI,MAAAnB;AAAA5P,IAAA,CAAA,MAAAspB,cAAAtpB,SAAAgB,MAAhF4O,yBAAC,YAAA,EAAc0Z,eAAiB,MAAA,qBAAiC,aAAAtoB,GAAAA,CAAe,GAAIhB,OAAAspB,YAAAtpB,OAAAgB,IAAAhB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAAtT,YAAAupB,YACpFjW,yBAAC,WAAA,EAAaiW,GAAAA,SAAAA,CAAQ,GAAIvpB,QAAAupB,UAAAvpB,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAAvT,IAAA,EAAA,MAAAS,MAAAT,EAAA,EAAA,MAAAa,MAAAb,EAAA,EAAA,MAAA4P,MAAA5P,EAAA,EAAA,MAAAsT,MAAAtT,UAAAgpB,KAL5BzV,KAAA,qBAAA,OAAA,EAAYyV,OAAAA,GAAWA,QAAAA,GAAY,SAAAvoB,IACjCI,UAAAA;AAAAA,IAAAA;AAAAA,IAGA+O;AAAAA,IACA0D;AAAAA,EAAAA,EAAAA,CACF,GAAMtT,QAAAS,IAAAT,QAAAa,IAAAb,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAgpB,GAAAhpB,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAA,SAAAxT,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAuT,MAAAvT,UAAAgpB,KAPRxV,yBAAC,aAAA,EAAW,GAAKhE,WAAewZ,OAAQ3Z,KACtCkE,cAOF,GAAcvT,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAuT,IAAAvT,QAAAgpB,GAAAhpB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GARdwT;AAQc,CAEjB;AACDrC,MAAMtR,cAAc;ACvHb,MAAM2pB,yBAAyBnqB,0BACpC,sCACA,IACF;ACUO,SAAAoqB,wBAAA5tB,OAAA;AAAA,QAAAmE,IAAAC,EAAA,CAAA,GACL;AAAA,IAAAtH;AAAAA,IAAAK;AAAAA,EAAAA,IAA4B6C;AAAK,MAAA0E;AAAAP,WAAAhH,WACyBuH,KAAA;AAAA,IAAAG,SAAA;AAAA,IAAA1H;AAAAA,EAAAA,GAAuBgH,OAAAhH,SAAAgH,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAAjF,QAAAvF,QAA0D8F;AAAoC,MAAAE;AAAA,SAAAT,EAAA,CAAA,MAAArH,YAAAqH,SAAAvF,SAEvFgG,KAAA,oBAAA,uBAAA,UAAA,EAAwChG,OAAQ9B,SAAAA,CAAS,GAAkCqH,OAAArH,UAAAqH,OAAAvF,OAAAuF,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAA3FS;AAA2F;AAGpGgpB,wBAAwB5pB,cAAc;ACvB/B,SAAS6pB,SAASjvB,OAAkD;AACzE,SAAOkL,CAAAA,EAAQlL,SAAS,OAAOA,SAAU,YAAY,CAACgB,MAAMC,QAAQjB,KAAK;AAC3E;ACIA,MAAMkvB,gBAA6C;AAAA,EACjDjpB,SAAS;AAAA,EACT1H,SAAS;AACX;AAKO,SAAA4wB,qBAAA;AACL,QAAAnvB,QAAc0F,WAAAqpB,sBAAiC;AAAC,MAK5C/uB,UAAU,CAACivB,SAASjvB,KAAK,KAAKA,MAAKiG,YAAA;AAAiB,UAAA,IAAA3E,MACtC,2DAA2D;AAAA,SAGtEtB,SAAKkvB;AAAiB;ACpBxB,SAASE,mBAAmB;AAAA,EACjClxB;AAAAA,EACAmxB;AAAAA,EACAC;AAKF,GAAoB;AAClB,SAAKD,YAIEC,QAAQpxB,QAAQ,IAHdA;AAIX;AAEAkxB,mBAAmBhqB,cAAc;ACpB1B,SAASmqB,mBAAmBjvB,OAAiB+G,OAAyB;AAC3E,QAAMmoB,MAAgB,CAAA;AAEtB,WAASxf,IAAI,GAAGA,IAAI1P,MAAMiB,QAAQyO,KAAK;AAC1B1P,UAAM0P,CAAC,IAET3I,SACPmoB,IAAIvK,KAAKjV,CAAC;AAId,SAAOwf;AACT;AAEO,SAASC,mBAAmBnvB,OAAiB+G,OAAyB;AAC3E,QAAMmoB,MAAgB,CAAA;AAEtB,WAASxf,IAAI,GAAGA,IAAI1P,MAAMiB,QAAQyO,KAAK;AAC1B1P,UAAM0P,CAAC,KAER3I,SACRmoB,IAAIvK,KAAKjV,CAAC;AAId,SAAOwf;AACT;ACPO,MAAME,eAAe/a,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA,GAIrCrE,QAAc0F,YAAAA;AAAa,MAAA8oB,QAAAzxB,UAAA6W;AAAAxP,WAAAnE,SAC3B;AAAA,IAAAlD;AAAAA,IAAAoC,OAAAqvB;AAAAA,IAAA,GAAA5a;AAAAA,EAAAA,IAAgD3T,OAAKmE,OAAAnE,OAAAmE,OAAAoqB,QAAApqB,OAAArH,UAAAqH,OAAAwP,cAAA4a,SAAApqB,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA;AACrD,QAAAjF,QAAcqvB,UAAUxuB,MAAKb,OAE7B,CAAA/B,SAAAqxB,UAAA,IAA8BvX,aAAoC,GAElEhR,QADoBge,eAAe9mB,OAAO,GACHwI,OAAAM,SAAA5H,OAAAowB;AAAmD,MAAA/pB;AAAA,MAAAP,EAAA,CAAA,MAAAjF,SAAAiF,SAAA8B,OAAA;AAGxF,UAAAyoB,KAAWP,mBAAmBjvB,OAAO+G,KAAK;AAEnCvB,SAAAgqB,GAAEvuB,SAAUuuB,GAAE3kB,KAAM,GAAG,IAACpK,QAAYwE,OAAAjF,OAAAiF,OAAA8B,OAAA9B,OAAAO;AAAAA,EAAA;AAAAA,SAAAP,EAAA,CAAA;AAH7C,QAAA6H,MAGStH;AACS,MAAAE;AAAA,MAAAT,EAAA,CAAA,MAAAjF,SAAAiF,SAAA8B,OAAA;AAEhB,UAAA0oB,OAAWN,mBAAmBnvB,OAAO+G,KAAK;AAEnCrB,SAAA8pB,KAAEvuB,SAAUuuB,KAAE3kB,KAAM,GAAG,IAACpK,QAAYwE,OAAAjF,OAAAiF,OAAA8B,OAAA9B,OAAAS;AAAAA,EAAA;AAAAA,SAAAT,EAAA,CAAA;AAH7C,QAAA4H,MAGSnH;AACS,MAAAI,IAAAG;AAAAhB,YAAAhH,WAE8D6H,KAAAA,MAAM7H,SAASgI,MAC7FhI,OAAO,GACRgH,QAAAhH,SAAAgH,QAAAa,IAAAb,QAAAgB,OAAAH,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA,IAFDsiB,oBAAkEL,cAAcphB,IAAeG,EAE9F;AAAC,MAAA4O;AAAA,SAAA5P,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA6H,OAAA7H,EAAA,EAAA,MAAA4H,OAAA5H,UAAAwP,aAGAI,KAAA,oBAAA,OAAA,EAAa,WAAA,gBAAc,GAAKJ,WAAwB3H,eAAAA,KAAkBD,eAAAA,KAAUyiB,KAAAA,YACjF1xB,UACH,GAAMqH,QAAArH,UAAAqH,QAAA6H,KAAA7H,QAAA4H,KAAA5H,QAAAwP,WAAAxP,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA,GAFN4P;AAEM,CAET;AACDua,aAAatqB,cAAc;ACjDpB,SAAS4qB,gBAAgBC,cAAoD;AAIlF,MAAI,CAAChB,SAASgB,YAAY,KAAKA,aAAahqB,YAAY;AACtD,UAAM,IAAI3E,MAAM,qCAAqC;AAGvD,MAAI,CAAC2uB;AACH,UAAM,IAAI3uB,MAAM,uEAAuE;AAGzF,MAAI2uB,aAAahqB,YAAY;AAC3B,WAAOgqB;AAGT,QAAM,IAAI3uB,MAAM,6BAA6B;AAC/C;ACjBO,MAAM4uB,eAAetrB,0BAC1B,4BACA,IACF;ACaO,SAAAurB,cAAA/uB,OAAA;AAAA,QAAAmE,IAAAC,EAAA,EAAA,GACL;AAAA,IAAAtH;AAAAA,IAAAkyB,SAAAtqB;AAAAA,EAAAA,IAA6C1E,OAAnBivB,cAAAvqB,OAAe/E,aAAf+E,IAG1BwqB,qBAA2B5qB,WAAAwqB,YAAuB;AAAC,MAAAlqB;AAAAT,WAAA+qB,sBACpCtqB,KAAAsqB,sBAAsBN,gBAAgBM,kBAAkB,GAAC/qB,OAAA+qB,oBAAA/qB,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAxE,QAAAgrB,SAAevqB,IACfwqB,sBAA4BD,QAAME,eAIlCC,SAHoBH,QAAMG,SAAA,KAGD;AAAI,MAAAtqB;AAAAb,WAAA8qB,eAGbjqB,KAAAxF,cAAcyvB,WAAW,GAAC9qB,OAAA8qB,aAAA9qB,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAA1C,QAAA6qB,UAAgBhqB,IAGhBuqB,gBAAsBP,QAAO7uB,SAAA,GAC7BZ,aAAmB+C,KAAAyJ,IAAS2Z,cAAAA,GAAiB6J,aAAa,GAC1DC,SAAeL,SAASA,OAAMK,SAAUR,QAAQzvB,UAAU,IAAIyvB,QAAQzvB,UAAU;AAAC,MAAA4F;AAAAhB,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGrBuB,KAAA,CAAA,GAAEhB,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA;AAA9D,QAAA,CAAA,EAAAsrB,cAAA,IAA2BxY,SAAiC9R,EAAE,GAG9D,CAAAvD,OAAAsiB,OAAA,IAAwBjN,UAAU,GAElCyY,aAAmB9tB,UAAI;AAAM,MAAAmS;AAAA5P,IAAA,CAAA,MAAAirB,uBAAAjrB,SAAAsrB,kBAG3B1b,KAAA4b,CAAAA,eAAA;AAEE,UAAAC,gBAAsBR,sBAAsBO,UAAU;AAAC,WAEnDA,eAAUhwB,SACZ8vB,eAAcI,CAAAA,UAAA;AACZ,YAAAC,UAAgBD,MAAMF,UAAU,KAAA,GAChCI,YAAA;AAAA,QAAA,GAAsBF;AAAAA,QAAK,CAAGF,UAAU,GAAGG,UAAO;AAAA,MAAA;AAElD5L,aAAAA,QAAQ8L,OAAArxB,KAAYoxB,SAAS,EAAC5vB,MAAO,GAE9B4vB;AAAAA,IAAS,CACjB,IAGD7L,QAAO/L,OAAa,GAAC,MAAA;AAIjBwX,qBAAUhwB,SACZ8vB,eAAcQ,CAAAA,YAAA;AACZ,cAAAC,cAAA;AAAA,UAAA,GAAsBL;AAAAA,QAAAA;AAAM,eAExBE,YAAUJ,UAAU,MAAA,KAAO,OACtBI,YAAUJ,UAAU,GAE3BzL,QAAQ8L,OAAArxB,KAAYoxB,WAAS,EAAC5vB,MAAO,KAErC4vB,YAAUJ,UAAU,IAApBI,YAAUJ,UAAU,IAAA,GAGfI;AAAAA,MAAS,CACjB,IAGD7L,QAAOiM,QAAa,GAGtBP,gBAAAA;AAAAA,IAAa;AAAA,EAAA,GAEhBzrB,OAAAirB,qBAAAjrB,OAAAsrB,gBAAAtrB,OAAA4P,MAAAA,KAAA5P,EAAA,CAAA;AAzCH,QAAAkrB,gBAAsBtb;AA2CrB,MAAA0D,IAAAC;AAAAvT,IAAA,CAAA,MAAAmrB,SAAAnrB,SAAAirB,uBAGS3X,KAAAA,MAAM2X,sBAAsBE,KAAK,GAAG5X,KAAA,CAAC4X,OAAOF,mBAAmB,GAACjrB,OAAAmrB,OAAAnrB,OAAAirB,qBAAAjrB,QAAAsT,IAAAtT,QAAAuT,OAAAD,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,IAA1EqT,UAAUC,IAAoCC,EAA4B;AAAC,MAAAC;AAAAxT,IAAA,EAAA,MAAAurB,cAAAvrB,EAAA,EAAA,MAAAmrB,SAAAnrB,EAAA,EAAA,MAAAkrB,iBAAAlrB,EAAA,EAAA,MAAAvC,SAAAuC,UAAAqrB,UAGlE7X,KAAA;AAAA,IAAA9S,SAAA;AAAA,IAAA6qB;AAAAA,IAAAJ;AAAAA,IAAAD;AAAAA,IAAAztB,MAAAA;AAAAA,IAAA4tB;AAAAA,EAAAA,GAONrrB,QAAAurB,YAAAvrB,QAAAmrB,OAAAnrB,QAAAkrB,eAAAlrB,QAAAvC,OAAAuC,QAAAqrB,QAAArrB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AARH,QAAAvF,QACS+Y;AASR,MAAAG;AAAA,SAAA3T,EAAA,EAAA,MAAArH,YAAAqH,UAAAvF,SAEMkZ,KAAA,oBAAA,aAAA,UAAA,EAA8BlZ,OAAQ9B,SAAAA,CAAS,GAAwBqH,QAAArH,UAAAqH,QAAAvF,OAAAuF,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA,GAAvE2T;AAAuE;AAxFzE,SAAAqY,SAAAC,KAAA;AAAA,SAgEkBC,MAAC;AAAI;AAhEvB,SAAAlY,QAAAkY,GAAA;AAAA,SA4CgBA,IAAC;AAAI;AA+C5BtB,cAAc/qB,cAAc;ACrGrB,SAAAssB,WAAA;AAAA,QAAAnsB,IAAAC,EAAA,CAAA,GACLxF,QAAc0F,WAAAwqB,YAAuB;AAAC,MAAA,CAEjClwB;AAAK,UAAA,IAAAsB,MACQ,mCAAmC;AAAA,MAAA;AAAA,QAAA0E;AAAA,WAAAT,SAAAvF,SAI5CgG,KAAAgqB,gBAAgBhwB,KAAK,GAACuF,OAAAvF,OAAAuF,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAtBS;AAAAA,EAAsB,SAAAF,IAAA;AACtB6rB,UAAAA,MAAAA;AAAG,UACNA,eAAGrwB,QAAiB,IAAAA,MACN,eAAeqwB,IAAGC,OAAA,EAAU,IAAA,IAAAtwB,MAE5B,eAAeqwB,GAAG,EAAE;AAAA,EAAA;AAAA;ACC1C,MAAME,cAAc7d,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAC;AAAA,EAACkC,UAAU;AAAU,CAAC,GAE/Cyb,gBAAgBnd,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAtH,UAAA6zB,YAAAC,SAAAjd,WAAAjP;AAAAP,WAAAnE,SAI/B;AAAA,IAAAlD;AAAAA,IAAA6zB;AAAAA,IAAAC;AAAAA,IAAAxyB,OAAAsG;AAAAA,IAAA,GAAAiP;AAAAA,EAAAA,IAA4E3T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAwsB,YAAAxsB,OAAAysB,SAAAzsB,OAAAwP,WAAAxP,OAAAO,OAAA5H,WAAAqH,EAAA,CAAA,GAAAwsB,aAAAxsB,EAAA,CAAA,GAAAysB,UAAAzsB,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AAA3C,QAAA/F,QAAAsG,OAAoB/E,SAAA5D,eAApB2I,IACtC;AAAA,IAAA8qB;AAAAA,IAAAE;AAAAA,EAAAA,IAA6BY,SAAAA,GAC7BO,iBAAuBrK,OAAA,IAA+B,GACtDhT,MAAYgT,OAAA,IAAkC,GAC9CsK,gBAAsBtK,OAAgBkJ,UAAU;AAAC,MAAA9qB;AAAAT,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAE+BgB,KAAAA,MAAM4O,IAAGuO,SAAQ5d,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAjGsiB,oBAAkEL,cAAcxhB,EAAiB;AAAC,MAAAI,IAAAG;AAAAhB,IAAA,CAAA,MAAAurB,cAAAvrB,SAAAwsB,cAKxF3rB,KAAAA,MAAA;AACe8rB,kBAAa/O,YAAa2N,cAAcA,cAG7DiB,aAAU;AAAA,MAAAI,eAAmBF,eAAc9O;AAAAA,IAAAA,CAAA,GAG7C+O,cAAa/O,UAAW2N;AAAAA,EAAU,GACjCvqB,KAAA,CAACuqB,YAAYiB,UAAU,GAACxsB,OAAAurB,YAAAvrB,OAAAwsB,YAAAxsB,OAAAa,IAAAb,QAAAgB,OAAAH,KAAAb,EAAA,CAAA,GAAAgB,KAAAhB,EAAA,EAAA,IAR3BqT,UAAUxS,IAQPG,EAAwB;AAAC,MAAA4O;AAAA5P,IAAA,EAAA,MAAAurB,cAAAvrB,UAAAysB,WAG1B7c,KAAAsQ,CAAAA,UAAA;AAEEuM,cAAUvM,KAAK;AAEf,UAAA2M,cAAoBxd,IAAGuO,SACvBd,SAAApd,SAAAktB;AAEI,KAACrB,cAAU,CAAKsB,gBAAgB/P,UAEhC3jB,cAAc2jB,MAAM,KAAKljB,wBAAwBizB,aAAa/P,MAAM,MACtE4P,eAAc9O,UAAWd;AAAAA,EAAM,GAElC9c,QAAAurB,YAAAvrB,QAAAysB,SAAAzsB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAbH,QAAA8sB,cAAoBld;AAenB,MAAA0D;AAAAtT,IAAA,EAAA,MAAA/F,SAAA+F,UAAAqrB,UAQU/X,KAAA;AAAA,IAAA,GAAIrZ;AAAAA,IAAKoxB;AAAAA,EAAAA,GAASrrB,QAAA/F,OAAA+F,QAAAqrB,QAAArrB,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAA,SAAAvT,EAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA8sB,eAAA9sB,EAAA,EAAA,MAAAwP,aAAAxP,UAAAsT,MAL3BC,KAAA,oBAAC,aAAA,EAAW,GACN/D,WACI,WAAA,SACCsd,SAAAA,aACJzd,KACE,OAAAiE,IAEN3a,SAAAA,CACH,GAAcqH,QAAArH,UAAAqH,QAAA8sB,aAAA9sB,QAAAwP,WAAAxP,QAAAsT,IAAAtT,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GARduT;AAQc,CAEjB,GAKYwZ,QAAQ3d,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAtH,UAAA6W,WAAAjP;AAAAP,WAAAnE,SAI9B;AAAA,IAAAlD;AAAAA,IAAAkyB,SAAAtqB;AAAAA,IAAA,GAAAiP;AAAAA,EAAAA,IAA8C3T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAAwP,WAAAxP,OAAAO,OAAA5H,WAAAqH,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AAAlC,QAAA6qB,UAAAtqB,OAAW/E,aAAX+E;AAAW,MAAAE;AAAAT,IAAA,CAAA,MAAArH,YAAAqH,SAAAqP,OAAArP,EAAA,CAAA,MAAAwP,aAIxB/O,yBAAC,eAAA,EAAa,GAAK+O,WAAgBH,KAChC1W,SAAAA,CACH,GAAgBqH,OAAArH,UAAAqH,OAAAqP,KAAArP,OAAAwP,WAAAxP,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAS,MAAAT,SAAA6qB,WAHlBhqB,KAAA,oBAAC,eAAA,EAAuBgqB,SACtBpqB,UAAAA,GAAAA,CAGF,GAAgBT,OAAAS,IAAAT,OAAA6qB,SAAA7qB,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAJhBa;AAIgB,CAEnB;AACDksB,MAAMltB,cAAc;AC7FpB,MAAMlF,MAAM,6BACNqyB,aAAaxtB,OAAOC,IAAI,GAAG9E,GAAG,UAAU;AAE9CyE,YAAY4tB,UAAU,IAAI;AAEnB,MAAMC,sBAA0C;AAAA,EACrDvsB,SAAS;AAAA,EACTic,iBAAiB;AAAA,EACjB,IAAI3jB,UAAU;AACZ,WAAI,OAAO0G,WAAa,MACf,QAGLN,YAAY4tB,UAAU,MAI1B5tB,YAAY4tB,UAAU,IAAIttB,SAASwtB,cAAc,KAAK,GACtD9tB,YAAY4tB,UAAU,EAAEG,aAAa,eAAe,EAAE,GAEtDztB,SAAS0tB,KAAKC,YAAYjuB,YAAY4tB,UAAU,CAAC,IAE1C5tB,YAAY4tB,UAAU;AAAA,EAC/B;AACF,GAEaM,gBAAgBjuB,0BAA8C1E,KAAKsyB,mBAAmB;ACrB5F,SAAAM,YAAA;AACL,QAAA9yB,QAAc0F,WAAAmtB,aAAwB;AAAC,MAAA,CAElC7yB;AAAK,UAAA,IAAAsB,MACQ,oCAAoC;AAAA,MAMlD,CAAC2tB,SAASjvB,KAAK,KAAKA,MAAKiG,YAAA;AAAgB,UAAA,IAAA3E,MAC3B,kDAAkD;AAAA,SAG7DtB;AAAK;ACLP,SAAA+yB,OAAA3xB,OAAA;AAAA,QAAAmE,IAAAC,EAAA,CAAA,GACL;AAAA,IAAAtH;AAAAA,IAAA80B,iBAAAnH;AAAAA,EAAAA,IAA0CzqB,OAC1C6xB,SAAeH,UAAAA,GACfI,iBACGrH,OAAOoH,OAAM1Q,YAAa0Q,OAAM1Q,SAAUsJ,IAAI,IAAIoH,OAAM10B,YAAa00B,OAAM1Q,UAAApR;AAAkB,MAAA,CAE3F+hB;AAAa,WAAA;AAAA,MAAAptB;AAAA,SAAAP,EAAA,CAAA,MAAArH,YAAAqH,SAAA2tB,iBAIXptB,KAAAqtB,aAAaj1B,UAAUg1B,aAAa,GAAC3tB,OAAArH,UAAAqH,OAAA2tB,eAAA3tB,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAArCO;AAAqC;AAG9CitB,OAAO3tB,cAAc;ACPd,SAAAguB,eAAAhyB,OAAA;AAAA,QAAAmE,IAAAC,EAAA,CAAA,GACL;AAAA,IAAA0c;AAAAA,IAAAhkB;AAAAA,IAAAK;AAAAA,IAAA80B,qBAAA9Q;AAAAA,EAAAA,IAA4EnhB,OAC5EkyB,kBAAwBnN,qBAAAoN,gBAAAha,SAAAgY,QAIxB,GAKqBzrB,KAAAoc,mBAAe,MACvBlc,KAAAzH,WAAW+0B;AAAe,MAAAltB;AAAAb,IAAA,CAAA,MAAAgd,YAAAhd,SAAAO,MAAAP,EAAA,CAAA,MAAAS,MAH9BI,KAAA;AAAA,IAAAH,SAAA;AAAA,IAAAic,iBAEYpc;AAAAA,IAAuBvH,SAC/ByH;AAAAA,IAA0Buc;AAAAA,EAAAA,GAEpChd,OAAAgd,UAAAhd,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AANH,QAAAvF,QACSoG;AAMgD,MAAAG;AAAA,SAAAhB,EAAA,CAAA,MAAArH,YAAAqH,SAAAvF,SAElDuG,KAAA,oBAAA,cAAA,UAAA,EAA+BvG,OAAQ9B,SAAAA,CAAS,GAAyBqH,OAAArH,UAAAqH,OAAAvF,OAAAuF,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA,GAAzEgB;AAAyE;AAjB3E,SAAAgrB,WAAA;AAAA,SAAA;AAAA;AAAA,SAAAhY,UAAA;AAAA,SAAAtU,SAAA0tB;AAAA;AAoBPS,eAAehuB,cAAc;AAE7B,MAAMmuB,iBAAiBA,MAAM,MAAM;AAAC,GCnC9BC,eAAexf,OAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,oFAYlBsf,SAAS9e,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,CAAA,GAI/B;AAAA,IAAAkS;AAAAA,IAAAxZ;AAAAA,EAAAA,IAAuBkD;AAAK,MAAA0E;AAAA,SAAAP,EAAA,CAAA,MAAAmS,MAAAnS,SAAArH,YAAAqH,EAAA,CAAA,MAAAqP,OAG1B9O,KAAA,oBAAC,cAAA,EAAa,eAAA,IAAgB4R,IAAY,WAAA,UAAc9C,KACrD1W,UACH,GAAeqH,OAAAmS,IAAAnS,OAAArH,UAAAqH,OAAAqP,KAAArP,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFfO;AAEe,CAElB;AACD2tB,OAAOruB,cAAc;ACHrB,MAAMsuB,oBAAoB1f,OAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,uBAI9Bwf,cAAc3f,OAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,sCASjByf,cAAcjf,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAquB,YAAAC,UAAAC,YAAAhf,WAAAjP,IAAAE,IAAAI;AAAAb,WAAAnE,SAMpC;AAAA,IAAAsW,IAAA5R;AAAAA,IAAA+D,KAAA7D;AAAAA,IAAA6tB;AAAAA,IAAAG,OAAA5tB;AAAAA,IAAA0tB;AAAAA,IAAAC;AAAAA,IAAA,GAAAhf;AAAAA,EAAAA,IAA0F3T,OAAKmE,OAAAnE,OAAAmE,OAAAsuB,YAAAtuB,OAAAuuB,UAAAvuB,OAAAwuB,YAAAxuB,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,OAAAytB,aAAAtuB,EAAA,CAAA,GAAAuuB,WAAAvuB,EAAA,CAAA,GAAAwuB,aAAAxuB,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA;AAAxF,QAAAmS,KAAA5R,OAAU/E,SAAL,QAAL+E,IAAY+D,MAAA7D,OAAOjF,aAAPiF;AAAO,MAAAO;AAAAhB,WAAAa,MAAcG,KAAAH,OAAUrF,cAAVqF,IAAUb,OAAAa,IAAAb,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA;AAAV,QAAAyuB,QAAAztB,IACxC;AAAA,IAAA/E;AAAAA,EAAAA,IAAgBqF,YAAAA,GAChB+N,MAAYgT,OAAA,IAAkC,GAC9CqM,aAAmBrM,OAAA,IAAkC,GACrD,CAAAsM,WAAAC,YAAA,IAAkC9b,UAAU,GAC5C,CAAA+b,cAAAC,eAAA,IAAwChc,UAAU,GAClD,CAAAic,YAAAC,aAAA,IAAoClc,WAAW;AAAC,MAAAlD;AAAA5P,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGgCmQ,KAAAA,MAAMP,IAAGuO,SAAQ5d,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA,GAAjGsiB,oBAAkEL,cAAcrS,EAAiB;AAAC,MAAA0D;AAAAtT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAExF6T,KAAAA,MAAA;AAAA,QAAA,CACHob,WAAU9Q;AAAA;AAEf,UAAAqR,eAAqBP,WAAU9Q,QAAAsR;AAE3BD,4BAAYE,eAEdH,cAAcC,aAAYG,YAAa;AAAA,EAAC,GAE3CpvB,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAAvT,YAAAwuB,cAAEjb,MAACib,UAAU,GAACxuB,QAAAwuB,YAAAxuB,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GATfqT,UAAUC,IASPC,EAAY;AAAC,MAAAC,IAAAG;AAAA3T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEN+T,KAAAA,MAAA;AAAA,QAAA,CACHnE,IAAGuO;AAAA;AAER,UAAAyR,WAAiBC,eAAejgB,IAAGuO,QAAA2R,UAAmB;AAAC,QAEnDF,UAAQ;AAAA,UAAA,EACJA,oBAAQF;AAAuB;AAErC,YAAAK,eAAAA,MAAA;AACEZ,qBAAaS,SAAQV,SAAU;AAAA,MAAC;AAGlCU,eAAQ9R,iBAAkB,UAAUiS,cAAY;AAAA,QAAAC,SAAA;AAAA,MAAA,CAAiB;AAEjE,YAAAC,KAAA,IAAA5R,gBAAA6R,CAAAA,YAAA;AACEb,wBAAgBa,QAAO,CAAA,EAAAlR,YAAAvhB,MAAsB;AAAA,MAAC,CAAA;AAGhDwyB,aAAAA,GAAE7Q,QAASwQ,QAAQ,GAEnBG,aAAAA,GAAc,MAAA;AAGZH,iBAAQ7R,oBAAqB,UAAUgS,YAAY,GAEnDE,GAAE5Q,UAAWuQ,QAAQ,GACrBK,GAAE3Q,WAAAA;AAAAA,MAAa;AAAA,IAAA;AAInB,UAAA6Q,iBAAAA,MAAA;AACEhB,mBAAY10B,OAAA21B,OAAe;AAAA,IAAC,GAG9BC,eAAAA,MAAA;AACEhB,sBAAe50B,OAAA61B,WAAmB;AAAA,IAAC;AAGrC71B,WAAAA,OAAAqjB,iBAAwB,UAAUiS,gBAAY;AAAA,MAAAC,SAAA;AAAA,IAAA,CAAiB,GAC/Dv1B,OAAAqjB,iBAAwB,UAAUuS,YAAY,GAG9ChB,gBAAe50B,OAAA61B,WAAmB,GAElCP,eAAAA,GAAc,MAAA;AAGZt1B,aAAAsjB,oBAA2B,UAAUgS,cAAY,GACjDt1B,OAAAsjB,oBAA2B,UAAUsS,YAAY;AAAA,IAAC;AAAA,EAAA,GAEnDnc,KAAA,CAAA,GAAE3T,QAAAwT,IAAAxT,QAAA2T,OAAAH,KAAAxT,EAAA,EAAA,GAAA2T,KAAA3T,EAAA,EAAA,IAlDLqT,UAAUG,IAkDPG,EAAE;AAEL,QAAAtJ,MAAYokB,MAAKzyB,QACjBkB,SAAe6xB,aAAa1kB,OAAO0kB,aAAa9yB,MAAMqI,GAAG,KAAKrI,MAAMqI,GAAG,IAAC,GACxE0rB,YAAkB9yB,SAASiB,KAAA0J,IAAS1J,KAAAC,MAAYuwB,YAAYzxB,SAAUmN,GAAG,IAAC,GAAI,CAAG,IAAC,GAClF4lB,UAAgB/yB,SAASiB,KAAA+xB,MAAYvB,YAAYE,gBAAgB3xB,SAAUmN,GAAG,QAAK;AAAI,MAAAwJ,KAAAD;AAAA5T,IAAA,EAAA,MAAAgwB,aAAAhwB,EAAA,EAAA,MAAAsE,OAAAtE,EAAA,EAAA,MAAA+uB,cAAA/uB,EAAA,EAAA,MAAAuuB,YAAAvuB,EAAA,EAAA,MAAA6uB,gBAAA7uB,EAAA,EAAA,MAAA2uB,aAAA3uB,EAAA,EAAA,MAAA/D,SAAA+D,UAAAiwB,WAE7Erc,KAAAA,MAAA;AACH2a,gBACLA,SAAQ;AAAA,MAAAyB;AAAAA,MAAA1rB,KAAkBrI,MAAMqI,GAAG;AAAA,MAAAyqB;AAAAA,MAAAF;AAAAA,MAAAF;AAAAA,MAAAsB;AAAAA,IAAAA,CAAgD;AAAA,EAAC,GACnFpc,MAAA,CAACmc,WAAW1rB,KAAKyqB,YAAYR,UAAUM,cAAcF,WAAW1yB,OAAOg0B,OAAO,GAACjwB,QAAAgwB,WAAAhwB,QAAAsE,KAAAtE,QAAA+uB,YAAA/uB,QAAAuuB,UAAAvuB,QAAA6uB,cAAA7uB,QAAA2uB,WAAA3uB,QAAA/D,OAAA+D,QAAAiwB,SAAAjwB,QAAA6T,KAAA7T,QAAA4T,OAAAC,MAAA7T,EAAA,EAAA,GAAA4T,KAAA5T,EAAA,EAAA,IAHlFqT,UAAUO,IAGPC,GAA+E;AAAC,MAAAC;AAAA9T,IAAA,EAAA,MAAAgwB,aAAAhwB,EAAA,EAAA,MAAAsE,OAAAtE,EAAA,EAAA,MAAAsuB,cAAAtuB,EAAA,EAAA,MAAA+uB,cAAA/uB,EAAA,EAAA,MAAAyuB,SAAAzuB,EAAA,EAAA,MAAAwuB,cAAAxuB,EAAA,EAAA,MAAA/D,SAAA+D,UAAAiwB,WAEtDnc,MAAA;AAAA,IAAAkc;AAAAA,IAAA1rB;AAAAA,IAAAyqB;AAAAA,IAAA9yB;AAAAA,IAAAg0B;AAAAA,IAAA3B;AAAAA,IAAAG;AAAAA,IAAAD;AAAAA,EAAAA,GAS5BxuB,QAAAgwB,WAAAhwB,QAAAsE,KAAAtE,QAAAsuB,YAAAtuB,QAAA+uB,YAAA/uB,QAAAyuB,OAAAzuB,QAAAwuB,YAAAxuB,QAAA/D,OAAA+D,QAAAiwB,SAAAjwB,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AATD,QAAArH,WAAiBw3B,YAAYrc,GAS5B;AAAC,MAAAC;AAAA/T,YAAA9C,UAI+B6W,MAAA;AAAA,IAAA7W;AAAAA,EAAAA,GAAQ8C,QAAA9C,QAAA8C,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAiU;AAAAjU,IAAA,EAAA,MAAArH,YAAAqH,UAAA+T,OAArCE,mCAAUya,KAAAA,YAAmB,OAAA3a,KAC1Bpb,SAAAA,CACH,GAAMqH,QAAArH,UAAAqH,QAAA+T,KAAA/T,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAAA,MAAAoW;AAAA,SAAApW,EAAA,EAAA,MAAAmS,MAAAnS,UAAAwP,aAAAxP,EAAA,EAAA,MAAAiU,OAHRmC,MAAA,oBAAC,mBAAA,EAAsBjE,IAAY,WAAA,eAAa,GAAK3C,WAAgBH,KACnE4E,UAAAA,IAAAA,CAGF,GAAoBjU,QAAAmS,IAAAnS,QAAAwP,WAAAxP,QAAAiU,KAAAjU,QAAAoW,OAAAA,MAAApW,EAAA,EAAA,GAJpBoW;AAIoB,CAEvB;AACDiY,YAAYxuB,cAAc;AAE1B,SAAAswB,YAAA5vB,IAAA;AAAA,QAAAP,IAAAC,EAAA,EAAA,GAAqB;AAAA,IAAA+vB;AAAAA,IAAA1rB;AAAAA,IAAAgqB;AAAAA,IAAAS;AAAAA,IAAAN;AAAAA,IAAAD;AAAAA,IAAAvyB;AAAAA,IAAAg0B;AAAAA,EAAAA,IAAA1vB;AAgBlB,MACG,CAACiuB,cAAcC,MAAKzyB,WAAA;AAAa,WAAA;AAAA,MAEjC+yB,eAAU,IAAO;AAAA,QAAAtuB;AAAAT,MAAA,CAAA,MAAAyuB,MAAA,CAAA,KAAAzuB,SAAAwuB,cACW/tB,MAAA+tB,WAAWC,QAAQ,GAACzuB,OAAAyuB,MAAA,CAAA,GAAAzuB,OAAAwuB,YAAAxuB,OAAAS,OAAAA,MAAAT,EAAA,CAAA;AAAA,QAAAa;AAAA,WAAAb,SAAAS,OAA3CI,KAAA,CAAC,oBAAC,aAAA,EAAqBJ,UAAAA,IAAAA,GAAJ,CAAyB,CAAc,GAACT,OAAAS,KAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAA3Da;AAAAA,EAA2D;AAAA,MAAAJ;AAAA,MAAAT,EAAA,CAAA,MAAAgwB,aAAAhwB,EAAA,CAAA,MAAAsE,OAAAtE,EAAA,CAAA,MAAAsuB,cAAAtuB,EAAA,CAAA,MAAA+uB,cAAA/uB,EAAA,CAAA,MAAAyuB,SAAAzuB,EAAA,EAAA,MAAAwuB,cAAAxuB,EAAA,EAAA,MAAA/D,SAAA+D,UAAAiwB,SAAA;AAAA,QAAApvB;AAAAb,cAAAgwB,aAAAhwB,EAAA,EAAA,MAAAsE,OAAAtE,EAAA,EAAA,MAAAsuB,cAAAtuB,EAAA,EAAA,MAAA+uB,cAAA/uB,UAAAwuB,cAAAxuB,EAAA,EAAA,MAAA/D,SAGzB4E,KAAAA,CAAAuvB,MAAAC,eAAA;AACzC,YAAAC,YAAkBN,YAAYK,YAC9Bj3B,OAAao1B,WAAW4B,IAAI,GAC5Bz1B,OAAY2zB,aAAaA,WAAW8B,MAAME,SAAS,IAAIA;AAAS,aAG9D,oBAAC,eAA6B,OAAA;AAAA,QAAAC,KAAMD,aAAavB,aAAa9yB,MAAMqI,GAAG;AAAA,MAAA,GACpElL,kBADeuB,IAElB;AAAA,IAAc,GAEjBqF,QAAAgwB,WAAAhwB,QAAAsE,KAAAtE,QAAAsuB,YAAAtuB,QAAA+uB,YAAA/uB,QAAAwuB,YAAAxuB,QAAA/D,OAAA+D,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAVMS,KAAAguB,MAAKlZ,MAAOya,WAAWC,OAAO,EAAC/0B,IAAK2F,EAU1C,GAACb,OAAAgwB,WAAAhwB,OAAAsE,KAAAtE,OAAAsuB,YAAAtuB,OAAA+uB,YAAA/uB,OAAAyuB,OAAAzuB,QAAAwuB,YAAAxuB,QAAA/D,OAAA+D,QAAAiwB,SAAAjwB,QAAAS;AAAAA,EAAA;AAAAA,SAAAT,EAAA,EAAA;AAAA,SAVKS;AAUL;AAGJ,SAAS6uB,eAAeC,YAA+B;AACrD,MAAIiB,YAAYjB;AAEhB,SAAOiB,aAAa,CAAC12B,cAAc02B,SAAS;AAC1CA,gBAAYA,UAAUjB;AAGxB,SAAOiB;AACT;AClMO,SAASC,cAAcz3B,SAA6B;AAEzD,MAAI03B,SAAS7E,OAAO8E,yBAAyB33B,QAAQ6C,OAAO,KAAK,GAAGujB,KAChEwR,UAAUF,UAAU,oBAAoBA,UAAUA,OAAOG;AAE7D,SAAID,UACM53B,QAAgBqW,OAI1BqhB,SAAS7E,OAAO8E,yBAAyB33B,SAAS,KAAK,GAAGomB,KAC1DwR,UAAUF,UAAU,oBAAoBA,UAAUA,OAAOG,gBAErDD,UACM53B,QAAQ6C,MAAqCwT,MAI/CrW,QAAQ6C,MAAqCwT,OAAQrW,QAAgBqW;AAC/E;ACvBO,MAAMyhB,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,SAAS3zB,KAAK4zB,SAUN;AACb,QAAM;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAtb,UAAU;AAAA,IACVub;AAAAA,IACAC;AAAAA,IACAC;AAAAA,EAAAA,IACEP;AAEJ,SAAO;AAAA,IACL/K,MAAM;AAAA,IACN,MAAMC,GAAGsL,MAAM;AACb,YAAM;AAAA,QAAC7U;AAAAA,QAAUyJ;AAAAA,QAAWqL;AAAAA,QAAUpL;AAAAA,MAAAA,IAASmL,MACzC;AAAA,QAAC/K;AAAAA,QAAUiL;AAAAA,MAAAA,IAAarL,OAExBpjB,WAAW,MAAM0uB,eAAeH,MAAM;AAAA,QAC1CI,aAAa;AAAA,QACbC,UAAUb,QAAQ1U,mBAAmBnhB;AAAAA,QACrC22B,gBAAgB;AAAA,QAChBhc;AAAAA,QACAic,cAAc;AAAA,MAAA,CACf;AAED,UAAI/M,WAAWgN,OACXC,YAAYD;AAEhB,YAAME,YAAYzL,SAAShlB,OACrB0wB,YAAY1L,SAAS5pB;AAEvBupB,gBAAUpsB,SAAS,KAAK,MAC1BgrB,WAAWkN,aAAajvB,SAASmvB,OAAOnvB,SAASovB,QACjDJ,YAAYE,YAAYlvB,SAASitB,MAG/B9J,UAAUpsB,SAAS,OAAO,MAC5BgrB,WAAWkN,YAAYjvB,SAASovB,OAChCJ,YAAYE,aAAalvB,SAASitB,MAAMjtB,SAASqvB,UAG/ClM,UAAUpsB,SAAS,QAAQ,MAC7BgrB,WAAWkN,aAAajvB,SAASmvB,OAAOnvB,SAASovB,QACjDJ,YAAYE,YAAYlvB,SAASqvB,SAG/BlM,UAAUpsB,SAAS,MAAM,MAC3BgrB,WAAWkN,YAAYjvB,SAASmvB,MAChCH,YAAYE,aAAalvB,SAASitB,MAAMjtB,SAASqvB;AAKnD,YAAMC,iBAAiBvN,WAAWkM,QAAQ,CAAC,IAAIA,QAAQ,CAAC,GAClDsB,kBAAkBP,YAAYf,QAAQ,CAAC,IAAIA,QAAQ,CAAC,GACpDuB,iBAAiBf,UAAUjwB,QAAQyvB,QAAQ,CAAC,IAAIA,QAAQ,CAAC;AAC/DG,wBAAkB9T,UAAUkV,gBAC5BnB,kBAAkBmB,cAAc,GAE5BtB,sBACFxU,SAAS8J,SAAS7sB,MAAM6H,QAAQ,GAAGgxB,cAAc,OACxClB,SAAShU,YAAYpiB,WAC9BwhB,SAAS8J,SAAS7sB,MAAM6H,QAAQ,GAAG8vB,SAAShU,OAAO,OAGjD0T,kBACFtU,SAAS8J,SAAS7sB,MAAMorB,WAAW,GAAGlnB,KAAKyJ,IAAIgrB,gBAAgBnB,YAAY7T,WAAWyU,KAAQ,CAAC,MAE/FrV,SAAS8J,SAAS7sB,MAAMq4B,YAAY,GAAGO,eAAe;AAGxD,YAAME,iBAAiB,MAAMjB,SAASkB,cAAchW,SAAS8J,QAAQ,GAE/DmM,UAAUF,eAAe71B,QACzBg2B,UAAUH,eAAejxB;AAE/B,aAAIywB,cAAcW,WAAWV,cAAcS,UAClC;AAAA,QAACE,OAAO;AAAA,UAACzM,OAAO;AAAA,QAAA;AAAA,MAAI,IAGtB,CAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AC/FO,SAAS0M,iBAAiBC,QAIV;AACrB,QAAM;AAAA,IAACjO;AAAAA,IAAWhqB;AAAAA,IAAY0G;AAAAA,EAAAA,IAASuxB,QAEjCrK,IAAIlnB,MAAM1G,UAAU,GACpBk4B,eAAyCtK,MAAMxtB,SAAYsG,MAAMA,MAAM9F,SAAS,CAAC,IAAIgtB;AAE3F,SAAO,OAAOsK,gBAAiB,WAAWlO,UAAUkO,YAAY,IAAI93B;AACtE;AAEO,SAAS+3B,aAAaF,QAGN;AACrB,QAAM;AAAA,IAACG;AAAAA,IAAeF;AAAAA,EAAAA,IAAgBD;AAEtC,MAAIC,EAAAA,iBAAiB93B,UAAag4B,kBAAkBh4B;AAIpD,WAAO2C,KAAKyJ,IACV0rB,gBAAgBjB,QACfmB,iBAAiBnB,SAAYtB,0BAA0B,CAC1D;AACF;ACZA,MAAM0C,eAAahlB,OAAOilB,OAAOC,OAAOtX,IAAI,CAAC,EAAC1N,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,uHAUxCglB,aAAanlB,OAAOilB,OAAOC,OAAO3b,IAAI,CAAC,EAACrJ,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,yBAOjCilB,cAAczkB,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAA6zB,SAAA/jB,QAAAgkB,UAAAC,QAAAC,QAAAt7B,UAAAu7B,aAAA5M,SAAAC,SAAAjkB,UAAA6S,SAAAsQ,WAAAhZ,QAAA+B,WAAApP,QAAAyN,QAAAsmB,UAAAl6B,OAAAqG,MAAAwB,OAAAsyB,OAAAC;AAAAr0B,WAAAnE,SAyBpC;AAAA,IAAAy4B,oBAAAJ;AAAAA,IAAAJ;AAAAA,IAAA/jB,OAAAA;AAAAA,IAAAgkB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAt7B;AAAAA,IAAAwd;AAAAA,IAAAsQ;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAjkB;AAAAA,IAAAmK;AAAAA,IAAArN;AAAAA,IAAAyN;AAAAA,IAAAsmB;AAAAA,IAAAl6B;AAAAA,IAAAqG;AAAAA,IAAAwB;AAAAA,IAAAolB,GAAAkN;AAAAA,IAAAhN,GAAAiN;AAAAA,IAAA,GAAA7kB;AAAAA,EAAAA,IAuBI3T,OAAKmE,OAAAnE,OAAAmE,OAAA8zB,SAAA9zB,OAAA+P,QAAA/P,OAAA+zB,UAAA/zB,OAAAg0B,QAAAh0B,OAAAi0B,QAAAj0B,OAAArH,UAAAqH,OAAAk0B,aAAAl0B,OAAAsnB,SAAAtnB,OAAAunB,SAAAvnB,QAAAsD,UAAAtD,QAAAmW,SAAAnW,QAAAymB,WAAAzmB,QAAAyN,QAAAzN,QAAAwP,WAAAxP,QAAAI,QAAAJ,QAAA6N,QAAA7N,QAAAm0B,UAAAn0B,QAAA/F,OAAA+F,QAAAM,MAAAN,QAAA8B,OAAA9B,QAAAo0B,OAAAp0B,QAAAq0B,UAAAP,UAAA9zB,EAAA,CAAA,GAAA+P,SAAA/P,EAAA,CAAA,GAAA+zB,WAAA/zB,EAAA,CAAA,GAAAg0B,SAAAh0B,EAAA,CAAA,GAAAi0B,SAAAj0B,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAk0B,cAAAl0B,EAAA,CAAA,GAAAsnB,UAAAtnB,EAAA,CAAA,GAAAunB,UAAAvnB,EAAA,CAAA,GAAAsD,WAAAtD,EAAA,EAAA,GAAAmW,UAAAnW,EAAA,EAAA,GAAAymB,YAAAzmB,EAAA,EAAA,GAAAyN,SAAAzN,EAAA,EAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAA6N,SAAA7N,EAAA,EAAA,GAAAm0B,WAAAn0B,EAAA,EAAA,GAAA/F,QAAA+F,EAAA,EAAA,GAAAM,OAAAN,EAAA,EAAA,GAAA8B,QAAA9B,EAAA,EAAA,GAAAo0B,QAAAp0B,EAAA,EAAA,GAAAq0B,QAAAr0B,EAAA,EAAA;AAET,QAAA;AAAA,IAAAqrB;AAAAA,EAAAA,IAAiBc,YAGjBoF,UACQ2C,eAAW/C,yBAKnBjK,KAAWkN,SAAK,KAAS7C,QAAO,CAAA,GAChCnK,KAAWiN,SAAK,KAAS9C,QAAO,CAAA,GAWhBhxB,KAAAuzB,UAAU,cAAWt4B;AAAY,MAAAiF;AAAAT,IAAA,EAAA,MAAAsnB,WAAAtnB,EAAA,EAAA,MAAAunB,WAAAvnB,UAAAm0B,YAAAn0B,EAAA,EAAA,MAAA/F,SAAA+F,EAAA,EAAA,MAAAO,MAAAP,EAAA,EAAA,MAAA8B,SAAA9B,EAAA,EAAA,MAAAknB,KAAAlnB,EAAA,EAAA,MAAAonB,KAAApnB,UAAAqrB,UARxC5qB,KAAA;AAAA,IAAAgyB,MACCvL;AAAAA,IAACI;AAAAA,IAAAC;AAAAA,IAAAzW,UAGGqjB;AAAAA,IAAQ5D,KACbnJ;AAAAA,IAACtlB;AAAAA,IAAAupB;AAAAA,IAAApzB,YAGMsI;AAAAA,IAAiC,GAC1CtG;AAAAA,EAAAA,GACJ+F,QAAAsnB,SAAAtnB,QAAAunB,SAAAvnB,QAAAm0B,UAAAn0B,QAAA/F,OAAA+F,QAAAO,IAAAP,QAAA8B,OAAA9B,QAAAknB,GAAAlnB,QAAAonB,GAAApnB,QAAAqrB,QAAArrB,QAAAS,MAAAA,KAAAT,EAAA,EAAA;AAXH,QAAAu0B,aACS9zB,IAgBCI,KAAAmzB,kBAAkBA,SAAMx4B,QACzBwF,KAAAizB,kBAAkBA,SAAMz4B;AAAY,MAAAoU;AAAA5P,IAAA,EAAA,MAAAa,MAAAb,UAAAgB,MAFpC4O,KAAA;AAAA,IAAA6iB,MACC5xB;AAAAA,IAAoC0vB,KACrCvvB;AAAAA,IAAoC0xB,OAAAl3B;AAAAA,IAAAm3B,QAAAn3B;AAAAA,EAAAA,GAG1CwE,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AANH,QAAAw0B,aACS5kB,IAYA0D,KAAA9D;AAAoC,MAAA+D;AAAAvT,YAAA8zB,WAWhCvgB,KAAAugB,UAAO,CAAI,UAAU,SAAS,IAAAt4B,QAAawE,QAAA8zB,SAAA9zB,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAA8zB,WAC3CtgB,KAAAsgB,UAAO,CAAI,WAAW,SAAS,IAAAt4B,QAAawE,QAAA8zB,SAAA9zB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA3T,YAAA8zB,WAC/CngB,KAAAmgB,UAAO,CAAI,UAAU,UAAU,IAAAt4B,QAAawE,QAAA8zB,SAAA9zB,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA5T,IAAA,EAAA,MAAArH,YAAAqH,UAAAmW,WAUhDvC,KAAA,oBAAC,MAAA,EAAe,WAAA,UAAe,MAAA,GAAYuC,mBAE3C,GAAOnW,QAAArH,UAAAqH,QAAAmW,SAAAnW,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,IAAA,EAAA,MAAAsD,YAAAtD,UAAA4T,MAVTC,0BAAC,YAAA,EACS,WAAA,oBACE,WAAA,UACJ,MAAA,GACIvQ,UACA,UAAAzL,qBAAAc,UACE,YAAAd,qBAAAQ,YAEZub,UAAAA,GAAAA,CAGF,GAAa5T,QAAAsD,UAAAtD,QAAA4T,IAAA5T,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,IAAA,EAAA,MAAA+P,UAAA/P,UAAA+zB,YAAA/zB,EAAA,EAAA,MAAAw0B,cAEZ1gB,MAAA/D,UACC,oBAAC,OAAA,EACMgkB,KAAAA,UACES,OAAAA,YACAxD,OAAAA,6BACCC,QAAAA,8BACAC,QAAAA,8BAA4B,GAEvClxB,QAAA+P,QAAA/P,QAAA+zB,UAAA/zB,QAAAw0B,YAAAx0B,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA,SAAA/T,UAAAymB,aAAAzmB,EAAA,EAAA,MAAAyN,UAAAzN,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAu0B,cAAAv0B,EAAA,EAAA,MAAAI,UAAAJ,EAAA,EAAA,MAAA6N,UAAA7N,UAAA6T,OAAA7T,EAAA,EAAA,MAAA8T,OAAA9T,EAAA,EAAA,MAAAsT,MAAAtT,EAAA,EAAA,MAAAuT,MAAAvT,EAAA,EAAA,MAAAwT,MAAAxT,UAAA2T,MAAA3T,EAAA,EAAA,MAAAM,QAtCHyT,2BAAC0f,cAAA,EACS,WAAA,cACHngB,IACWmT,kBAAAA,WACRhZ,QACH4B,KACGjP,QACAyN,QACD,QAAA,UACA0mB,OAAAA,YACDj0B,MACI,UAAAzI,qBAAAC,MACE,YAAAD,qBAAAQ,YACH,SAAAkb,IACA,SAAAC,IACH,MAAAG,IAENE,UAAAA;AAAAA,IAAAA;AAAAA,IAaCC;AAAAA,EAAAA,EAAAA,CASH,GAAa9T,QAAAymB,WAAAzmB,QAAAyN,QAAAzN,QAAAqP,KAAArP,QAAAu0B,YAAAv0B,QAAAI,QAAAJ,QAAA6N,QAAA7N,QAAA6T,KAAA7T,QAAA8T,KAAA9T,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAAM,MAAAN,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA,GAvCb+T;AAuCa,CAEhB;AACD8f,YAAYh0B,cAAc;ACxC1B,MAAM40B,kBAAkBA,MAAA;AAAA,QAAAz0B,IAAAC,EAAA,CAAA,GACtB;AAAA,IAAAorB;AAAAA,EAAAA,IAAiBc,SAAAA;AAAU,MAAA5rB;AAAA,SAAAP,SAAAqrB,UAEpB9qB,KAAA,oBAAA,SAAY,OAAA;AAAA,IAAArD,QAAS;AAAA,IAAOw3B,OAAA;AAAA,IAAA5jB,UAAsB;AAAA,IAAOhP,OAAS;AAAA,IAAOupB;AAAAA,EAAAA,EAAA,CAAS,GAAIrrB,OAAAqrB,QAAArrB,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAAtFO;AAAsF,GAQlFo0B,UAAUvlB,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,GAAA,GAKhC;AAAA,IAAAmlB;AAAAA,IAAAwP;AAAAA,EAAAA,IAA2BtzB,YAAAA,GAC3BuzB,yBAA+BjL,mBAAAA;AAAoB,MAAAkL,kBAAAC,qBAAAC,mBAAAC,oBAAAC,cAAAC,WAAAn4B,SAAAgP,UAAAwlB,qBAAA4D,OAAAC,MAAA5Z,aAAAiS,QAAA4H,kBAAA9lB,WAAApP,QAAAG,IAAAE,IAAAoT,KAAAC,KAAAjT,IAAAG,IAAA4O,IAAA0D,IAAAC,IAAAC,IAAAG,IAAAC,IAAA2hB;AAAA,MAAAv1B,SAAAnE,OAAA;AAEnD,UAAA;AAAA,MAAAy4B,oBAAAvgB;AAAAA,MAAA+f,SAAA7f;AAAAA,MAAAlE,OAAAqG;AAAAA,MAAAuG,iBAAAtG;AAAAA,MAAA1d,UAAA2d;AAAAA,MAAAgb,eAAA/a;AAAAA,MAAAvZ,SAAAwZ;AAAAA,MAAAxK,UAAAyK;AAAAA,MAAA+e,oBAAA9e;AAAAA,MAAA8a,qBAAA7a;AAAAA,MAAA8e,kBAAA7e;AAAAA,MAAAwe,OAAAve;AAAAA,MAAA2V;AAAAA,MAAA6I,MAAAve;AAAAA,MAAAxT,UAAAyT;AAAAA,MAAAZ,SAAAa;AAAAA,MAAAyP,WAAAxP;AAAAA,MAAAye,mBAAAxe;AAAAA,MAAAwW,QAAAvW;AAAAA,MAAAwe,iBAAAve;AAAAA,MAAA3J,QAAAmoB;AAAAA,MAAAC,mBAAAC;AAAAA,MAAAR,kBAAAS;AAAAA,MAAA31B,QAAA41B;AAAAA,MAAAnoB,QAAAooB;AAAAA,MAAA31B,MAAA41B;AAAAA,MAAAp0B,OAAAq0B;AAAAA,MAAAtL,SAAAuL;AAAAA,MAAAb,WAAAc;AAAAA,MAAA,GAAAC;AAAAA,IAAAA,IAgCIz6B;AAhCJ0E,SAAAwT,MAAAtT,KAAAwT,MAAApT,KAAAuV,MAAA0e,mBAAAze,MAAA8e,YAAA7e,MAAAtV,KAAAuV,MAAAvZ,UAAAwZ,MAAAxK,WAAAyK,MAAAse,sBAAAre,MAAA8a,sBAAA7a,MAAAqe,oBAAApe,MAAAwe,QAAAve,MAAAwe,OAAAve,MAAAlH,KAAAmH,MAAA0E,cAAAzE,MAAA1D,KAAA2D,MAAA1D,KAAA2D,MAAAwW,SAAAvW,MAAA3D,KAAA4D,MAAAzD,KAAAiiB,MAAAX,qBAAAa,MAAAR,mBAAAS,MAAA31B,SAAA41B,MAAApiB,KAAAqiB,MAAApiB,MAAAqiB,MAAApiB,MAAAqiB,MAAAjB,eAAAkB,MAAAb,YAAAc,MAAA7mB,YAAA8mB,MAgCSt2B,OAAAnE,OAAAmE,OAAA80B,kBAAA90B,OAAA+0B,qBAAA/0B,OAAAg1B,mBAAAh1B,OAAAi1B,oBAAAj1B,OAAAk1B,cAAAl1B,OAAAm1B,WAAAn1B,OAAAhD,SAAAgD,OAAAgM,UAAAhM,OAAAwxB,qBAAAxxB,QAAAo1B,OAAAp1B,QAAAq1B,MAAAr1B,QAAAyb,aAAAzb,QAAA0tB,QAAA1tB,QAAAs1B,kBAAAt1B,QAAAwP,WAAAxP,QAAAI,QAAAJ,QAAAO,IAAAP,QAAAS,IAAAT,QAAA6T,KAAA7T,QAAA8T,KAAA9T,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA4T,IAAA5T,QAAAu1B;AAAAA,EAAA;AAAAT,uBAAA90B,EAAA,CAAA,GAAA+0B,sBAAA/0B,EAAA,CAAA,GAAAg1B,oBAAAh1B,EAAA,CAAA,GAAAi1B,qBAAAj1B,EAAA,CAAA,GAAAk1B,eAAAl1B,EAAA,CAAA,GAAAm1B,YAAAn1B,EAAA,CAAA,GAAAhD,UAAAgD,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAAwxB,sBAAAxxB,EAAA,CAAA,GAAAo1B,QAAAp1B,EAAA,EAAA,GAAAq1B,OAAAr1B,EAAA,EAAA,GAAAyb,cAAAzb,EAAA,EAAA,GAAA0tB,SAAA1tB,EAAA,EAAA,GAAAs1B,mBAAAt1B,EAAA,EAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAA6T,MAAA7T,EAAA,EAAA,GAAA8T,MAAA9T,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,GAAAsT,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,GAAA2T,KAAA3T,EAAA,EAAA,GAAA4T,KAAA5T,EAAA,EAAA,GAAAu1B,YAAAv1B,EAAA,EAAA;AA/Ba,QAAAuxB,UAAAhxB,OAAiC/E,SAAA21B,0BAAjC5wB,IACXg2B,WAAA91B,OAAgBjF,cAAhBiF,IACF+1B,YAAA31B,OAAiBrF,cAAjBqF,IAGPywB,gBAAAtwB,OAAqBxF,cAArBwF,IAUAsC,WAAAsM,OAAmBpU,SAAR,WAAXoU,IAEW6mB,gBAAAnjB,OAAwB9X,SAAR,WAAhB8X,IACXoiB,oBAAAniB,OAA0B/X,SAAN,SAApB+X,IAEAoiB,kBAAAniB,OAAsBhY,cAAtBgY,IACQkI,aAAA/H,OAAcnY,aAAdmY,IAIA+iB,aAAA9iB,OAAcpY,aAAdoY,IACRtT,OAAAuT,QAAgBrY,SAAT,YAAPqY,KACO8iB,YAAA7iB,QAAkBtY,SAAN,SAAZsY,KAKT6I,kBAAwBmY,oBAAoBD,wBAAsB77B,SAClEw8B,qBACET,uBAAmB3D,8BAAgCv1B,MAAK4qB,aAAc,QAAQ,GAChFgP,mBACET,qBAAqBn5B,MAAK8gB,mBAAoBkY,uBAAsB77B,SACtE68B,oBACEZ,sBAAsBp5B,MAAK8gB,mBAAoBkY,uBAAsB77B,SACvE8xB,cAAoBoK,gBAAgBN,MAAKgC,QAAA/L,SAEzCiJ,UAD6BpS,wBAAAA,IACO,KAAW6U,UAC/CM,eAAqB/W,eAAenD,eAAe,GAACnb;AAAQ,MAAAuS;AAAA/T,YAAAyb,eAC5C1H,MAAA1Y,cAAcogB,WAAW,GAACzb,QAAAyb,aAAAzb,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAA1C,QAAAmW,UAAgBpC;AAA0B,MAAAE;AAAAjU,YAAA0b,cAC3BzH,MAAA5Y,cAAcqgB,UAAU,GAAC1b,QAAA0b,YAAA1b,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAAxC,QAAAyN,SAAewG;AAAyB,MAAAmC;AAAApW,YAAA02B,cACzBtgB,MAAA/a,cAAcq7B,UAAU,GAAC12B,QAAA02B,YAAA12B,QAAAoW,OAAAA,MAAApW,EAAA,EAAA;AAAxC,QAAA6N,SAAeuI,KACf0gB,iBAAuBz7B,cAAcs7B,SAAS;AAAC,MAAAtgB;AAAArW,YAAA8qB,eAC/BzU,MAAAhb,cAAcyvB,WAAW,GAAC9qB,QAAA8qB,aAAA9qB,QAAAqW,OAAAA,MAAArW,EAAA,EAAA;AAA1C,QAAA6qB,UAAgBxU,KAChBhH,MAAYgT,OAAA,IAAkC,GAC9C0R,WAAiB1R,OAAA,IAAkC;AAAC,MAAA/L;AAAAtW,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAG4B6W,MAAAA,MAAMjH,IAAGuO,SAAQ5d,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA,GAAjGsiB,oBAAkEL,cAAc3L,GAAiB;AAEjG,QAAAlb,aAAmBmmB,iBACnBiS,gBAAsBlC,iBAAiBqE,kBAAkBkB,cAAY/0B,QAAAtG,QAKrEsG,QAAcsxB,iBAAA;AAAA,IAAAhO;AAAAA,IAAAhqB;AAAAA,IAAA0G,OAGLg1B;AAAAA,EAAAA,CACR,GACDlF,WAAiBvP,OAAOvgB,KAAK;AAAC,MAAAyU,KAAAC;AAAAxW,YAAA8B,SAEpByU,MAAAA,MAAA;AACRqb,aAAQhU,UAAW9b;AAAAA,EAAK,GACvB0U,OAAC1U,KAAK,GAAC9B,QAAA8B,OAAA9B,QAAAuW,KAAAvW,QAAAwW,QAAAD,MAAAvW,EAAA,EAAA,GAAAwW,MAAAxW,EAAA,EAAA,IAFVqT,UAAUkD,KAEPC,GAAO;AAAC,MAAAC;AAAAzW,IAAA,EAAA,MAAAwzB,iBAAAxzB,UAAA8B,SAKM2U,MAAA8c,aAAA;AAAA,IAAAC;AAAAA,IAAAF,cAA2CxxB;AAAAA,EAAAA,CAAM,GAAC9B,QAAAwzB,eAAAxzB,QAAA8B,OAAA9B,QAAAyW,OAAAA,MAAAzW,EAAA,EAAA;AAAnE,QAAAqlB,WAAiB5O,KACjBgb,cAAoBpP,OAAOgD,QAAQ;AAAC,MAAA3O,KAAAC;AAAA3W,YAAAqlB,YAE1B3O,MAAAA,MAAA;AACR+a,gBAAW7T,UAAWyH;AAAAA,EAAQ,GAC7B1O,OAAC0O,QAAQ,GAACrlB,QAAAqlB,UAAArlB,QAAA0W,KAAA1W,QAAA2W,QAAAD,MAAA1W,EAAA,EAAA,GAAA2W,MAAA3W,EAAA,EAAA,IAFbqT,UAAUqD,KAEPC,GAAU;AAGb,QAAA+a,oBAA0BrP,OAAA7mB,MAAwB;AAAC,MAAAob,KAAAC;AAAA7W,IAAA,EAAA,MAAAwxB,uBAAAxxB,EAAA,EAAA,MAAAqlB,YAAArlB,EAAA,EAAA,MAAAq1B,QAAAr1B,UAAA8B,SAGzC8U,MAAAA,MAAA;AACR,UAAAmgB,kBAAwB1nB,IAAGuO;AAAQ,QAE/B,CAACyX,QAAI,CAAK0B;AAAe;AAE7B,UAAAjE,iBAAuBpB,kBAAiB9T;AAEpC4T,0BACEsB,mBAAct3B,WAChBu7B,gBAAe98B,MAAA6H,QAAe,GAAGgxB,cAAc,QAExChxB,UAAKtG,WACdu7B,gBAAe98B,MAAA6H,QAAe,GAAGA,KAAK,OAGpC,OAAOujB,YAAa,aACtB0R,gBAAe98B,MAAAorB,WAAkB,GAAGA,QAAQ;AAAA,EAAI,GAEjDxO,OAAC/U,OAAO0vB,qBAAqBnM,UAAUgQ,IAAI,GAACr1B,QAAAwxB,qBAAAxxB,QAAAqlB,UAAArlB,QAAAq1B,MAAAr1B,QAAA8B,OAAA9B,QAAA4W,KAAA5W,QAAA6W,QAAAD,MAAA5W,EAAA,EAAA,GAAA6W,MAAA7W,EAAA,EAAA,IAlB/CqT,UAAUuD,KAkBPC,GAA4C;AAE/C,QAAA,CAAAmgB,kBAAArF,iBAAA,IAA4C7e,SAAAtX,MAAsC;AAAC,MAAAsb;AAAA9W,IAAA,EAAA,MAAA8zB,WAAA9zB,EAAA,EAAA,MAAAw2B,aAAAx2B,UAAAsxB,iBAAAtxB,EAAA,EAAA,MAAAw1B,sBAAAx1B,EAAA,EAAA,MAAAy1B,oBAAAz1B,EAAA,EAAA,MAAAuxB,WAAAvxB,EAAA,EAAA,MAAAwxB,uBAAAxxB,UAAAy2B,iBAAAz2B,EAAA,EAAA,MAAA01B,qBAAA11B,EAAA,EAAA,MAAA21B,mBAAA31B,UAAA61B,qBAClD/e,MAAA;AAAA,IAAAgd;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,GA0E5C5xB,QAAA8zB,SAAA9zB,QAAAw2B,WAAAx2B,QAAAsxB,eAAAtxB,QAAAw1B,oBAAAx1B,QAAAy1B,kBAAAz1B,QAAAuxB,SAAAvxB,QAAAwxB,qBAAAxxB,QAAAy2B,eAAAz2B,QAAA01B,mBAAA11B,QAAA21B,iBAAA31B,QAAA61B,mBAAA71B,QAAA8W,OAAAA,MAAA9W,EAAA,EAAA;AAlBD,QAAAi3B,aAAmBC,gBAAcpgB,GAkBhC;AAAC,MAAAC;AAAA/W,YAAAs1B,oBAMUve,MAAAue,mBAAgB;AAAA,IAAAvD,WAETuD;AAAAA,EAAAA,IAAgB95B,QAEpBwE,QAAAs1B,kBAAAt1B,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA;AAAA,MAAAgX;AAAAhX,IAAA,EAAA,MAAAi3B,cAAAj3B,UAAAy2B,iBAAAz2B,EAAA,EAAA,MAAA+W,OAR+DC,MAAA;AAAA,IAAAigB;AAAAA,IAAAxQ,WAEjEgQ;AAAAA,IAAaU,sBAAAC;AAAAA,IAAApa,UAEdjG;AAAAA,EAAAA,GAKX/W,QAAAi3B,YAAAj3B,QAAAy2B,eAAAz2B,QAAA+W,KAAA/W,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AATD,QAAA;AAAA,IAAAknB;AAAAA,IAAAE;AAAAA,IAAAZ;AAAAA,IAAAC;AAAAA,IAAA4Q;AAAAA,IAAAlD;AAAAA,IAAAmD;AAAAA,EAAAA,IAAkEC,YAAYvgB,GAS7E,GAEDwgB,kBAAwBhR,eAAciR,MAAAD,iBAEtCxD,SAAexN,eAAczW,OAAAmX,GAC7B+M,SAAezN,eAAczW,OAAAqX,GAE7BE,UAAgBd,eAAe,mBAAmB,GAAAc,SAClDC,UAAgBf,eAAe,mBAAmB,GAAAe;AAAU,MAAAtQ;AAAAjX,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAE/BwX,MAAAygB,CAAAA,YAAA;AAC3B3D,aAAQnW,UAAW8Z;AAAAA,EAAO,GAC3B13B,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAFD,QAAA23B,WAAiB1gB;AAEX,MAAAC;AAAAlX,YAAAq3B,QAGJngB,MAAA9d,CAAAA,SAAA;AACEiW,QAAGuO,UAAWxkB,MACdi+B,KAAIO,YAAax+B,IAAI;AAAA,EAAC,GACvB4G,QAAAq3B,MAAAr3B,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAJH,QAAA43B,cAAoB1gB;AAMnB,MAAAC;AAAAnX,YAAAm1B,aAImBhe,MAAAge,YAAY1E,cAAc0E,SAAS,IAAC,MAAOn1B,QAAAm1B,WAAAn1B,QAAAmX,OAAAA,MAAAnX,EAAA,EAAA;AAAA,MAAAoX;AAAApX,IAAA,EAAA,MAAAq3B,KAAAtF,UAAAnU,WAAExG,MAAAA,MAAMigB,KAAItF,UAAAnU,SAAkB5d,EAAA,EAAA,IAAAq3B,KAAAtF,UAAAnU,SAAA5d,QAAAoX,OAAAA,MAAApX,EAAA,EAAA,GAA7FsiB,oBAAoBnL,KAA6CC,GAA4B;AAAC,MAAAwe;AAAAp1B,OAAA;AAAA,QAIxF80B,kBAAgB;AAAEM,YAAOT;AAAS,YAAA30B;AAAAA,IAAA;AAAA,QAAA,CAEjC20B,WAAS;AAAES,YAAA;AAAW,YAAAp1B;AAAAA,IAAA;AAAA,QAAAs1B;AAAA91B,cAAAm1B,aAAAn1B,EAAA,EAAA,MAAAq3B,KAAAQ,gBAEpB/B,OAAApgB,aAAayf,WAAS;AAAA,MAAA9lB,KAAQgoB,KAAIQ;AAAAA,IAAAA,CAAc,GAAC73B,QAAAm1B,WAAAn1B,EAAA,EAAA,IAAAq3B,KAAAQ,cAAA73B,QAAA81B,QAAAA,OAAA91B,EAAA,EAAA,GAAxD41B,MAAOE;AAAAA,EAAiD;AAN1D,QAAAtgB,QAAcogB;AAOsC,MAAAE,KAAAC;AAEE,MAFF/1B,UAAAs3B,UAErBxB,MAAAA,MAAMwB,QAAQvB,OAACuB,MAAM,GAACt3B,QAAAs3B,QAAAt3B,QAAA81B,KAAA91B,QAAA+1B,QAAAD,MAAA91B,EAAA,EAAA,GAAA+1B,MAAA/1B,EAAA,EAAA,IAArDsiB,oBAAoBiT,WAAWO,KAAcC,GAAQ,GAEjD/pB,UAAQ;AAAA,QAAAgqB;AAAA,WAAAh2B,UAAAm1B,aACHa,OAAAb,6CAAS,GAASn1B,QAAAm1B,WAAAn1B,QAAAg2B,QAAAA,OAAAh2B,EAAA,EAAA,GAAlBg2B;AAAAA,EAAkB;AAAA,MAAAA;AAAAh2B,YAAAo1B,SAMtBY,MAAAZ,6BAAU,iBAAA,EAAe,GAAGp1B,QAAAo1B,OAAAp1B,QAAAg2B,OAAAA,MAAAh2B,EAAA,EAAA;AAsBpB,QAAAi2B,MAAAzE,sBAAsBsB,mBAAiBhxB;AAAK,MAAAo0B;AAAAl2B,IAAA,EAAA,MAAA8zB,WAAA9zB,EAAA,EAAA,MAAAw2B,aAAAx2B,EAAA,EAAA,MAAAg0B,UAAAh0B,EAAA,EAAA,MAAAi0B,UAAAj0B,UAAAhD,WAAAgD,EAAA,EAAA,MAAAuxB,WAAAvxB,UAAAsnB,WAAAtnB,EAAA,EAAA,MAAAunB,WAAAvnB,EAAA,EAAA,MAAAsD,YAAAtD,UAAAmW,WAAAnW,EAAA,EAAA,MAAAymB,aAAAzmB,WAAAyN,UAAAzN,EAAA,GAAA,MAAAw3B,mBAAAx3B,EAAA,GAAA,MAAAwP,aAAAxP,EAAA,GAAA,MAAAI,UAAAJ,EAAA,GAAA,MAAA43B,eAAA53B,EAAA,GAAA,MAAA6N,UAAA7N,EAAA,GAAA,MAAAm0B,YAAAn0B,WAAAi2B,OAAAj2B,EAAA,GAAA,MAAAM,QAAAN,EAAA,GAAA,MAAAknB,KAAAlnB,WAAAonB,KApBrD8O,MAAA,oBAAC,aAAA,EAAW,GACN1mB,WACgB+hB,oBAAAA,SACXuC,SACF0C,OAAAA,WACGmB,UAAAA,UACF3D,QACAC,QACAuD,QAAAA,iBACEl0B,UACD6S,SACEsQ,WACHhZ,QACHmqB,KAAAA,aACGx3B,QACAyN,QACCyZ,SACAC,SACC4M,UACJ7zB,MACC,OAAA21B,KACJ/O,GACAE,GAEFpqB,UAAAA,QAAAA,CACH,GAAcgD,QAAA8zB,SAAA9zB,QAAAw2B,WAAAx2B,QAAAg0B,QAAAh0B,QAAAi0B,QAAAj0B,QAAAhD,SAAAgD,QAAAuxB,SAAAvxB,QAAAsnB,SAAAtnB,QAAAunB,SAAAvnB,QAAAsD,UAAAtD,QAAAmW,SAAAnW,QAAAymB,WAAAzmB,SAAAyN,QAAAzN,SAAAw3B,iBAAAx3B,SAAAwP,WAAAxP,SAAAI,QAAAJ,SAAA43B,aAAA53B,SAAA6N,QAAA7N,SAAAm0B,UAAAn0B,SAAAi2B,KAAAj2B,SAAAM,MAAAN,SAAAknB,GAAAlnB,SAAAonB,GAAApnB,SAAAk2B,OAAAA,MAAAl2B,EAAA,GAAA;AAAA,MAAAm2B;AAAAn2B,IAAA,GAAA,MAAAg2B,OAAAh2B,WAAAk2B,OAAAl2B,EAAA,GAAA,MAAA6qB,WA7BhBsL,2BAAC,iBAAuBtL,SAErBmL,UAAAA;AAAAA,IAAAA;AAAAA,IAEDE;AAAAA,EAAAA,GA0BF,GAAgBl2B,SAAAg2B,KAAAh2B,SAAAk2B,KAAAl2B,SAAA6qB,SAAA7qB,SAAAm2B,OAAAA,MAAAn2B,EAAA,GAAA;AA/BlB,QAAA42B,UACET;AA+BD,MAAAC;AAAAp2B,IAAA,GAAA,MAAAq1B,QAAAr1B,WAAA42B,WAAA52B,EAAA,GAAA,MAAA0tB,UAGC0I,MAAAf,SACC3H,SACC,oBAAC,UAAwB,iBAAA,OAAOA,UAAW,WAAWA,SAAMlyB,QAAeo7B,UAAAA,QAAAA,CAAQ,IAEnFA,UACA52B,SAAAq1B,MAAAr1B,SAAA42B,SAAA52B,SAAA0tB,QAAA1tB,SAAAo2B,OAAAA,MAAAp2B,EAAA,GAAA;AANJ,QAAArH,WACEy9B;AAKE,MAAAC;AAAAr2B,IAAA,GAAA,MAAA8zB,WAAA9zB,WAAArH,YAKC09B,MAAAvC,UAAU,oBAAC,iBAAA,EAAiBn7B,SAAAA,CAAS,IAAqBA,UAAQqH,SAAA8zB,SAAA9zB,SAAArH,UAAAqH,SAAAq2B,OAAAA,MAAAr2B,EAAA,GAAA;AAAA,MAAAs2B;AAAA,SAAAt2B,EAAA,GAAA,MAAAwV,SAAAxV,WAAAq2B,OAFrEC,MAAA,qBAAA,UAAA,EAEGD,UAAAA;AAAAA,IAAAA;AAAAA;KAGK,GACLr2B,SAAAwV,OAAAxV,SAAAq2B,KAAAr2B,SAAAs2B,OAAAA,MAAAt2B,EAAA,GAAA,GANHs2B;AAMG,CAEN;AACD3B,QAAQ90B,cAAc;AAEtB,SAAAq3B,gBAAA32B,IAAA;AAAA,QAAAP,IAAAC,EAAA,EAAA,GAAuB;AAAA,IAAA6zB;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,IAAArxB;AAoCtB,MAAA0pB;AAAA,MAAAjqB,EAAA,CAAA,MAAA8zB,WAAA9zB,EAAA,CAAA,MAAAw2B,aAAAx2B,EAAA,CAAA,MAAA+zB,YAAA/zB,EAAA,CAAA,MAAAsxB,iBAAAtxB,EAAA,CAAA,MAAAw1B,sBAAAx1B,SAAAy1B,oBAAAz1B,EAAA,CAAA,MAAAuxB,WAAAvxB,EAAA,CAAA,MAAAwxB,uBAAAxxB,EAAA,CAAA,MAAAyxB,eAAAzxB,EAAA,CAAA,MAAAy2B,iBAAAz2B,EAAA,EAAA,MAAA01B,qBAAA11B,EAAA,EAAA,MAAA21B,mBAAA31B,EAAA,EAAA,MAAA61B,qBAAA71B,EAAA,EAAA,MAAA0xB,qBAAA1xB,EAAA,EAAA,MAAAoyB,gBAAApyB,EAAA,EAAA,MAAA2xB,qBAAA3xB,UAAA4xB,UAAA;AAE+B,QAA5B3H,MAAA,IAGIqH,iBAAiBqE;AAAe,UAC9BD,sBAAsB,iBAAe;AAAA,YAAAj1B;AAAAT,UAAA,EAAA,MAAAw1B,sBAAAx1B,UAAAy2B,iBAErCh2B,MAAAq3B,cAAA;AAAA,UAAAC,mBACqB,CAACtB,aAAa,EAAAuB,OAASxC,kBAAkB;AAAA,QAAA,CAC7D,GAACx1B,QAAAw1B,oBAAAx1B,QAAAy2B,eAAAz2B,QAAAS,OAAAA,MAAAT,EAAA,EAAA,GAHJiqB,IAAGvK,KACDjf,GAGF;AAAA,MAAC,OAAA;AAIa,cAAAA,MAAAg1B,oBAAgBj6B;AAAa,YAAAqF;AAAAb,UAAA,EAAA,MAAAw1B,sBAAAx1B,UAAAoyB,gBAAApyB,EAAA,EAAA,MAAAS,OADzCI,MAAAo3B,KAAA;AAAA,UAAA/F,UACYzxB;AAAAA,UAA6B+0B;AAAAA,UAAArf,SAAA4a;AAAAA,UAAAqB;AAAAA,QAAAA,CAIxC,GAACpyB,QAAAw1B,oBAAAx1B,QAAAoyB,cAAApyB,QAAAS,KAAAT,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GANJiqB,IAAGvK,KACD7e,GAMF;AAAA,MAAC;AAAA,QAAAJ;AAKiD,QALjDT,EAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAKIgB,KAAA6E,OAAA;AAAA,MAAA4yB,UAAApH;AAAAA,IAAAA,CAA2C,GAAC9wB,QAAAS,MAAAA,KAAAT,EAAA,EAAA,GAArDiqB,IAAGvK,KAAMjf,EAA4C,GAGjD6wB,iBAAiBE,qBAAmB;AAGjB,YAAA3wB,MAAA40B,oBAAgBj6B;AAAa,UAAAwF;AAAAhB,QAAA,EAAA,MAAAsxB,iBAAAtxB,EAAA,EAAA,MAAAuxB,WAAAvxB,EAAA,EAAA,MAAAwxB,uBAAAxxB,EAAA,EAAA,MAAAyxB,eAAAzxB,EAAA,EAAA,MAAA0xB,qBAAA1xB,EAAA,EAAA,MAAA2xB,qBAAA3xB,EAAA,EAAA,MAAAa,OAAAb,UAAA4xB,YADhD5wB,MAAAvD,KAAA;AAAA,QAAAkf,iBACmB9b;AAAAA,QAA6BywB;AAAAA,QAAAC;AAAAA,QAAAC;AAAAA,QAAAC;AAAAA,QAAAtb,SAAA4a;AAAAA,QAAAW;AAAAA,QAAAC;AAAAA,QAAAC;AAAAA,MAAAA,CAS/C,GAAC5xB,QAAAsxB,eAAAtxB,QAAAuxB,SAAAvxB,QAAAwxB,qBAAAxxB,QAAAyxB,aAAAzxB,QAAA0xB,mBAAA1xB,QAAA2xB,mBAAA3xB,QAAAa,KAAAb,QAAA4xB,UAAA5xB,QAAAgB,OAAAA,MAAAhB,EAAA,EAAA,GAXJiqB,IAAGvK,KACD1e,GAWF;AAAA,IAAC;AAAA,QAIC20B,iBAAe;AAGH,YAAA90B,MAAA40B,oBAAgBj6B;AAAa,UAAAwF;AAAAhB,QAAA,EAAA,MAAAoyB,gBAAApyB,UAAAa,OADzCG,MAAAimB,MAAA;AAAA,QAAAiL,UACYrxB;AAAAA,QAA6BuxB;AAAAA,QAAAjc,SAAA4a;AAAAA,MAAAA,CAGxC,GAAC/wB,QAAAoyB,cAAApyB,QAAAa,KAAAb,QAAAgB,OAAAA,MAAAhB,EAAA,EAAA,GALJiqB,IAAGvK,KACD1e,GAKF;AAAA,IAAC;AAAA,QAICw1B,WAAS;AAAA,UAAA31B;AAAAb,gBAAA+zB,YAETlzB,MAAAkP,MAAA;AAAA,QAAA/W,SACW+6B;AAAAA,QAAQ5d,SAAA4a;AAAAA,MAAAA,CAElB,GAAC/wB,QAAA+zB,UAAA/zB,QAAAa,OAAAA,MAAAb,EAAA,EAAA,GAJJiqB,IAAGvK,KACD7e,GAIF;AAAA,IAAC;AAKCizB,eACF7J,IAAGvK,KAAA2G,MAAY;AAKH,UAAAxlB,KAAAg1B,qBAAiBr6B;AAAa,QAAAwF;AAAAhB,cAAAa,MAD1CG,KAAAy2B,KAAA;AAAA,MAAAvF,UACYrxB;AAAAA,MAA8BsV,SAAA4a;AAAAA,MAAAoD,UAE9B;AAAA,IAAA,CACX,GAACn0B,QAAAa,IAAAb,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA,GALJiqB,IAAGvK,KACD1e,EAKF,GAAChB,OAAA8zB,SAAA9zB,OAAAw2B,WAAAx2B,OAAA+zB,UAAA/zB,OAAAsxB,eAAAtxB,OAAAw1B,oBAAAx1B,OAAAy1B,kBAAAz1B,OAAAuxB,SAAAvxB,OAAAwxB,qBAAAxxB,OAAAyxB,aAAAzxB,OAAAy2B,eAAAz2B,QAAA01B,mBAAA11B,QAAA21B,iBAAA31B,QAAA61B,mBAAA71B,QAAA0xB,mBAAA1xB,QAAAoyB,cAAApyB,QAAA2xB,mBAAA3xB,QAAA4xB,UAAA5xB,QAAAiqB;AAAAA,EAAA;AAAAA,UAAAjqB,EAAA,EAAA;AAAA,SAEMiqB;AAAG;ACpeP,SAASkO,iBAAyC;AACvD,SAAO7sB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAWT;AAEO,SAAS8sB,kBAAkBv8B,OAA2C;AAC3E,QAAM;AAAA,IAACoJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAASzP,YAAYL,MAAMD,KAAK,GACxCy8B,QAAQ1sB,MAAM2sB,MAAM76B,OAAOkO,MAAM2sB,MAAMC,YAAY;AAEzD,SAAOjtB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,qBAYY1Q,IAAI+Q,MAAM2sB,MAAM76B,OAAO,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAO9B7C,IAAI+Q,MAAM2sB,MAAM76B,IAAI,CAAC;AAAA,eACtB7C,IAAI+Q,MAAM2sB,MAAM76B,IAAI,CAAC;AAAA,uBACb7C,IAAI+Q,MAAM2sB,MAAM76B,OAAO,CAAC,CAAC;AAAA,oBAC5BwH,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,eAKOlH,IAAIy9B,IAAI,CAAC;AAAA,gBACRz9B,IAAIy9B,IAAI,CAAC;AAAA,kBACPz9B,IAAI+Q,MAAM2sB,MAAMC,QAAQ,CAAC;AAAA,iBAC1B39B,IAAI+Q,MAAM2sB,MAAMC,QAAQ,CAAC;AAAA,yBACjB39B,IAAI+Q,MAAM2sB,MAAMC,WAAW,CAAC,CAAC;AAAA,sBAChCtzB,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,MAAM2sB,MAAMlzB;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,MAAMg3B,cAAc/pB,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACupB,cAAc,GACvCpW,UAAQtT,uBAAO9C,MAAKgD,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACwpB,iBAAiB,GAO/BK,QAAQrpB,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAkiB,WAAAxE,gBAAA3R,UAAAE,UAAAsD,WAAAvV;AAAA+F,WAAAnE,SAI9B;AAAA,IAAAsmB;AAAAA,IAAAnW;AAAAA,IAAA/R;AAAAA,IAAA0jB;AAAAA,IAAAzR;AAAAA,IAAA,GAAAsD;AAAAA,EAAAA,IAA6E3T,OAAKmE,OAAAnE,OAAAmE,OAAAmiB,WAAAniB,OAAA2d,gBAAA3d,OAAAgM,UAAAhM,OAAAkM,UAAAlM,OAAAwP,WAAAxP,OAAA/F,UAAAkoB,YAAAniB,EAAA,CAAA,GAAA2d,iBAAA3d,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAAkM,WAAAlM,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAA/F,QAAA+F,EAAA,CAAA;AAClF,QAAAqP,MAAYgT,OAAA,IAAoC;AAAC,MAAA9hB;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI/Cc,KAAAA,MAAM8O,IAAGuO,SAAQ5d,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFnBsiB,oBACEL,cACA1hB,EACF,GAEAmd,kBAAkBrO,KAAKsO,cAAc;AAKf,QAAAld,MAACuL,YAAYE,WAAW,KAAE1Q,QAC9BqF,KAAA8c,iBAAiB,KAAEniB,QAErBwF,KAAAgL,YAAYE;AAAQ,MAAA0D;AAAA5P,IAAA,CAAA,MAAAkM,YAAAlM,EAAA,CAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAS,MAAAT,EAAA,EAAA,MAAAa,MAAAb,UAAAgB,MAJhC4O,yBAACmS,SAAA,EACiB,kBAAAthB,IACJ,cAAAI,IAA+B,GACvC2O,WACM,UAAAxO,IACAkL,UACLmD,KACA,MAAA,SAAO,GACZrP,OAAAkM,UAAAlM,OAAAwP,WAAAxP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAAA,MAAAsT;AAAAtT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACF6T,KAAA,oBAAA,QAAA,CAAA,CAAQ,GAAAtT,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA;AAAA,MAAAuT;AAAA,SAAAvT,EAAA,EAAA,MAAAmiB,aAAAniB,UAAA/F,SAAA+F,EAAA,EAAA,MAAA4P,MAVV2D,KAAA,qBAAC,eAAuB4O,WAAmB,WAAA,SAAeloB,OACxD2V,UAAAA;AAAAA,IAAAA;AAAAA,IASA0D;AAAAA,EAAAA,GACF,GAActT,QAAAmiB,WAAAniB,QAAA/F,OAAA+F,QAAA4P,IAAA5P,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GAXduT;AAWc,CAEjB;AACDklB,MAAM54B,cAAc;ACtCpB,SAAS00B,YAAoC;AAC3C,SAAOjpB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAUT;AAEA,SAASotB,eAAe78B,OAA2C;AACjE,QAAM;AAAA,IAACW;AAAAA,EAAAA,IAAQN,YAAYL,MAAMD,KAAK;AAEtC,SAAO0P;AAAAA;AAAAA;AAAAA;AAAAA,mBAIU9O,KAAKmO,KAAKlO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUnC;AAEA,SAASk8B,gBAAgB98B,OAAmB;AAC1C,QAAM;AAAA,IAACoJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAASzP,YAAYL,MAAMD,KAAK;AAE9C,SAAO0P;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,MAAMitB,OAAOxzB;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,SAAS+2B,SAASp7B,OAAqB;AACrC,SAAO;AAAA,IAACD,UAAU5C,IAAI6C,MAAKD,QAAQ;AAAA,IAAGM,YAAY,GAAGlD,IAAI6C,MAAKK,UAAU,CAAC;AAAA,EAAA;AAC3E;AAEA,SAASg7B,mBAAmBj9B,OAA2C;AACrE,QAAM;AAAA,IAACmO;AAAAA,EAAAA,IAAanO,OACd;AAAA,IAACW;AAAAA,IAAMzB;AAAAA,EAAAA,IAASmB,YAAYL,MAAMD,KAAK;AAE7C,SAAOd,YAAYC,OAAOiP,WAAYzM,CAAAA,cACpCs7B,SAASr8B,KAAKmO,KAAKjO,MAAMa,SAAS,KAAKf,KAAKmO,KAAKjO,MAAM,CAAC,CAAC,CAC3D;AACF;AAEA,SAASq8B,aASP;AACA,SAAO,CACLvrB,uBACAkrB,gBACAC,iBACAG,oBACA1tB,oCAAoC;AAExC;AAEA,SAAS4tB,aAAan9B,OAA2C;AAC/D,QAAM;AAAA,IAACoJ;AAAAA,EAAAA,IAAS/I,YAAYL,MAAMD,KAAK;AAEvC,SAAO0P;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,MAAMmtB,cAAc;AAAA,EACzB93B,MAAMozB;AAAAA,EACN5oB,OAAOotB;AAAAA,EACPG,SAASF;AACX,GC/IMG,eAAe1qB,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACqqB,YAAY93B,IAAI,GAE1C4gB,UAAQtT,uBAAOmqB,OAAMjqB,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAKxBqqB,YAAYttB,KAAK,GAEdytB,UAAU3qB,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACqqB,YAAYC,OAAO,GAOlCG,SAASjqB,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAtH,UAAAglB,gBAAA3R,UAAAE,UAAAsD,WAAAjP,IAAAE,IAAAI,IAAAG;AAAAhB,WAAAnE,SAI/B;AAAA,IAAAlD;AAAAA,IAAAglB;AAAAA,IAAA3R;AAAAA,IAAAxO,UAAA+C;AAAAA,IAAA4V,SAAA1V;AAAAA,IAAAgN,QAAA5M;AAAAA,IAAAqL;AAAAA,IAAAjQ,OAAA+E;AAAAA,IAAA,GAAAwO;AAAAA,EAAAA,IAUI3T,OAAKmE,OAAAnE,OAAAmE,OAAArH,UAAAqH,OAAA2d,gBAAA3d,OAAAgM,UAAAhM,OAAAkM,UAAAlM,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAAgB,OAAArI,WAAAqH,EAAA,CAAA,GAAA2d,iBAAA3d,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAAkM,WAAAlM,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAgB,KAAAhB,EAAA,CAAA;AANP,QAAAxC,YAAA+C,OAAY/E,aAAZ+E,IACA4V,UAAA1V,OAAWjF,aAAXiF,IACAgN,SAAA5M,OAAUrF,aAAVqF,IAEA5E,QAAA+E,OAASxF,aAATwF,IAIFqO,MAAYgT,OAAA,IAAqC;AAAC,MAAAzS;AAAA5P,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAIhDmQ,KAAAA,MAAMP,IAAGuO,SAAQ5d,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA,GAFnBsiB,oBACEL,cACArS,EACF,GAEA8N,kBAAkBrO,KAAKsO,cAAc;AAKf,QAAArK,MAACtH,YAAYE,WAAW,KAAE1Q;AAAY,MAAA+X;AAAAvT,YAAAxC,aAG3C+V,KAAAlY,cAAcmC,SAAQ,GAACwC,QAAAxC,WAAAwC,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAAmW,WACxB3C,KAAAnY,cAAc8a,OAAO,GAACnW,QAAAmW,SAAAnW,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA3T,YAAAyN,UACvBkG,KAAAtY,cAAcoS,MAAM,GAACzN,QAAAyN,QAAAzN,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA5T,YAAA/D,SACtB2X,KAAAvY,cAAcY,KAAK,GAAC+D,QAAA/D,OAAA+D,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAClB,QAAA6T,MAAA7H,YAAYE;AAAQ,MAAA4H;AAAA9T,IAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAA6T,OAAA7T,EAAA,EAAA,MAAAsT,MAAAtT,EAAA,EAAA,MAAAuT,MAAAvT,EAAA,EAAA,MAAAwT,MAAAxT,EAAA,EAAA,MAAA2T,MAAA3T,UAAA4T,MARhCE,MAAA,oBAACiO,WACiB,kBAAAzO,IACR,WAAA,aACJ9D,WACO,WAAA+D,IACD,UAAAC,IACD,SAAAG,IACD,QAAAC,IACE,UAAAC,KACLxE,KAEJ1W,UACH,GAAQqH,QAAArH,UAAAqH,QAAAwP,WAAAxP,QAAA6T,KAAA7T,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA4T,IAAA5T,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAIJsU,MAAA,oBAAC,iBAAA,CAAA,CAAe,GAAG/T,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAiU;AAAAjU,YAAAxC,aADrByW,MAAA,oBAAC,MAAA,EAAWzW,MAAAA,WACVuW,UAAAA,KACF,GAAO/T,QAAAxC,WAAAwC,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAAA,MAAAoW;AAAApW,IAAA,EAAA,MAAAmW,WAAAnW,UAAAiU,OAHTmC,MAAA,oBAAC,SAAA,EAAiBD,SAChBlC,UAAAA,IAAAA,CAGF,GAAUjU,QAAAmW,SAAAnW,QAAAiU,KAAAjU,QAAAoW,OAAAA,MAAApW,EAAA,EAAA;AAAA,MAAAqW;AAAA,SAAArW,EAAA,EAAA,MAAA8T,OAAA9T,UAAAoW,OAnBZC,MAAA,qBAAC,cAAA,EAAqB,WAAA,UACpBvC,UAAAA;AAAAA,IAAAA;AAAAA,IAcAsC;AAAAA,EAAAA,EAAAA,CAKF,GAAepW,QAAA8T,KAAA9T,QAAAoW,KAAApW,QAAAqW,OAAAA,MAAArW,EAAA,EAAA,GApBfqW;AAoBe,CAElB;AACDgjB,OAAOx5B,cAAc;AC/ErB,MAAMuC,aAAwB;AAAA,EAC5B,oBAAoB;AAAA,IAClBnF,SAAS;AAAA,EAAA;AAAA,EAEX,mCAAmC;AAAA,IACjCoF,WAAW;AAAA,EAAA;AAAA,EAEb,qBAAuB;AAAA,EACvB,cAAgB;AAClB;AAEO,SAASi3B,iBAA4B;AAC1C,SAAOl3B;AACT;AAEO,SAASm3B,0BACd19B,OACa;AACb,QAAM;AAAA,IAACd;AAAAA,IAAOkB;AAAAA,EAAAA,IAASC,YAAYL,MAAMD,KAAK;AAE9C,SAAOd,YAAYC,OAAOc,MAAMuO,QAASjO,CAAAA,gBAAgB;AAAA,IACvDqN,SAAS5O,IAAIqB,MAAME,UAAU,CAAC;AAAA,EAAA,EAC9B;AACJ;AChBA,MAAMq9B,cAAc/qB,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC7B0qB,gBACAC,yBAAyB,GAQdE,QAAQrqB,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAkS,IAAA3C,WAAAvT;AAAA+D,WAAAnE,SAI9B;AAAA,IAAAsW;AAAAA,IAAAlW;AAAAA,IAAA,GAAAuT;AAAAA,EAAAA,IAAkC3T,OAAKmE,OAAAnE,OAAAmE,OAAAmS,IAAAnS,OAAAwP,WAAAxP,OAAA/D,UAAAkW,KAAAnS,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAA/D,QAAA+D,EAAA,CAAA;AAI1B,QAAAO,YAAO4R,MAAO,WAAWA,KAAE3W;AAAY,MAAAiF;AAAAT,WAAA/D,SAGxCwE,KAAApF,cAAcY,KAAK,GAAC+D,OAAA/D,OAAA+D,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAmS,MAAAnS,EAAA,CAAA,MAAAqP,OAAArP,EAAA,CAAA,MAAAwP,aAAAxP,EAAA,CAAA,MAAAO,MAAAP,UAAAS,MAJ9BI,KAAA,oBAAC,aAAA,EACU,WAAAN,IACD,WAAA,YACJiP,WACI,QAAA/O,IACK0R,aAAAA,IACR9C,IAAAA,CAAG,GACRrP,OAAAmS,IAAAnS,OAAAqP,KAAArP,OAAAwP,WAAAxP,OAAAO,IAAAP,QAAAS,IAAAT,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAPFa;AAOE,CAEL;AACD44B,MAAM55B,cAAc;ACnCb,SAAS65B,mBAA2C;AACzD,SAAOpuB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAMT;AAGO,SAASquB,oBAA4C;AAE1D,SAAOruB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAgBT;AAGO,SAASsuB,2BAA2B/9B,OAA2C;AACpF,QAAM;AAAA,IAACoJ;AAAAA,IAAO0G;AAAAA,EAAAA,IAASzP,YAAYL,MAAMD,KAAK;AAE9C,SAAO0P;AAAAA,yBACgBrG,MAAM0G,MAAMC,QAAQC,QAAQrK,MAAM;AAAA,yBAClCyD,MAAM0G,MAAMC,QAAQC,QAAQpG,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO1C7K,IAAI+Q,MAAMkuB,OAAO/3B,KAAK,CAAC;AAAA,cACtBlH,IAAI+Q,MAAMkuB,OAAO38B,MAAM,CAAC;AAAA,qBACjBtC,IAAI+Q,MAAMkuB,OAAO38B,SAAS,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAoBpBgI,eAAe;AAAA,IAACE,WAAWuG,MAAMkuB,OAAOz0B;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,SAASq0B,kBAAkBj+B,OAA2C;AAC3E,QAAM;AAAA,IAAC8P;AAAAA,EAAAA,IAASzP,YAAYL,MAAMD,KAAK;AAEvC,SAAO0P;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,aAQI1Q,IAAI+Q,MAAMkuB,OAAO/3B,KAAK,CAAC;AAAA,cACtBlH,IAAI+Q,MAAMkuB,OAAO38B,MAAM,CAAC;AAAA,qBACjBtC,IAAI+Q,MAAMkuB,OAAO38B,SAAS,CAAC,CAAC;AAAA;AAEjD;AAGO,SAAS68B,kBACdl+B,OACwB;AACxB,QAAM;AAAA,IAACm+B;AAAAA,EAAAA,IAAkBn+B,OACnB;AAAA,IAAC8P;AAAAA,EAAAA,IAASzP,YAAYL,MAAMD,KAAK,GACjCq+B,aAAatuB,MAAMkuB,OAAO/3B,OAC1Bo4B,cAAcvuB,MAAMkuB,OAAO38B,QAC3Bi9B,eAAexuB,MAAMkuB,OAAO1jB,SAC5B1Y,QAAOy8B,cAAcvuB,MAAMkuB,OAAO1jB,UAAU,GAC5CikB,gBAAgBH,aAAaE,eAAe,IAAI18B,OAChD48B,sBAAsBJ,aAAa,IAAIx8B,QAAO,IAAI08B,cAClDjY,UAAU8X,mBAAmB,MAAQn+B,MAAMy+B,aAAa;AAE9D,SAAOhvB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAKG1Q,IAAIu/B,YAAY,CAAC;AAAA,WAClBv/B,IAAIu/B,YAAY,CAAC;AAAA,cACdv/B,IAAI6C,KAAI,CAAC;AAAA,aACV7C,IAAI6C,KAAI,CAAC;AAAA,qBACD7C,IAAI6C,QAAO,CAAC,CAAC;AAAA;AAAA,2BAEPkO,MAAMkuB,OAAOU,oBAAoB;AAAA,kCAC1B5uB,MAAMkuB,OAAOW,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjEtY,WACF5W;AAAAA,+BAC2B8uB,aAAa;AAAA,KACvC;AAAA;AAAA,MAECJ,kBACF1uB;AAAAA,+BAC2B+uB,mBAAmB;AAAA,KAC7C;AAAA;AAEL;AC1JA,MAAMI,eAAehsB,uBAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAC8qB,gBAAgB,GAC3C3X,UAAQtT,uBAAO9C,MAAKgD,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAC+qB,iBAAiB,GACtCe,iBAAiBjsB,uBAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACgrB,0BAA0B,GACvDe,QAAQlsB,uBAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACkrB,iBAAiB,GACrCc,QAAQnsB,uBAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAiDmrB,iBAAiB,GAS9Ec,SAASzrB,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAiiB,SAAAC,WAAAnW,UAAAoW,eAAAlW,UAAAsD,WAAAvV;AAAA+F,WAAAnE,SAI/B;AAAA,IAAAqmB;AAAAA,IAAAC;AAAAA,IAAAnW;AAAAA,IAAAoW;AAAAA,IAAAlW;AAAAA,IAAAjS;AAAAA,IAAA,GAAAuV;AAAAA,EAAAA,IAAqF3T,OAAKmE,OAAAnE,OAAAmE,OAAAkiB,SAAAliB,OAAAmiB,WAAAniB,OAAAgM,UAAAhM,OAAAoiB,eAAApiB,OAAAkM,UAAAlM,OAAAwP,WAAAxP,OAAA/F,UAAAioB,UAAAliB,EAAA,CAAA,GAAAmiB,YAAAniB,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAAoiB,gBAAApiB,EAAA,CAAA,GAAAkM,WAAAlM,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAA/F,QAAA+F,EAAA,CAAA;AAC1F,QAAAqP,MAAYgT,OAAA,IAAoC;AAAC,MAAA9hB;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI/Cc,KAAAA,MAAM8O,IAAGuO,SAAQ5d,OAAAO,MAAAA,KAAAP,EAAA,CAAA,GAFnBsiB,oBACEL,cACA1hB,EACF;AAAC,MAAAE,IAAAI;AAAAb,WAAAoiB,iBAES3hB,KAAAA,MAAA;AACJ4O,QAAGuO,YAELvO,IAAGuO,QAAAwE,gBAAyBA,iBAAa;AAAA,EAAS,GAEnDvhB,MAACuhB,aAAa,GAACpiB,OAAAoiB,eAAApiB,QAAAS,IAAAT,QAAAa,OAAAJ,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,IALlBqT,UAAU5S,IAKPI,EAAe;AAKI,QAAAG,MAACgL,YAAYE,WAAW,KAAE1Q,QAEjCoU,KAAAwS,kBAAa,MAAaF,SACzB5O,KAAAtH,YAAYE;AAAQ,MAAAqH;AAAAvT,IAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAgB,MAAAhB,EAAA,EAAA,MAAA4P,MAAA5P,UAAAsT,MAJhCC,KAAA,oBAACwO,SAAA,EACiB,kBAAA/gB,IAAsC,GAClDwO,WACK,SAAAI,IACC,UAAA0D,IACL,MAAA,YACAjE,KAAG,GACRrP,QAAAwP,WAAAxP,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEA+T,KAAA,oBAAC,OAAA,CAAA,CAAK,GAAGxT,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA3T,IAAA,EAAA,MAAAkiB,WAAAliB,UAAAoiB,iBADXzO,KAAA,qBAAC,gBAAA,EAAe,eAAA,IAAsB,aAAA,kBACpCH,UAAAA;AAAAA,IAAAA;AAAAA,IACA,oBAAC,OAAA,EAAgB0O,UAAAA,SAAyBE,gBAAAA,cAAAA,CAAa;AAAA,EAAA,EAAA,CACzD,GAAiBpiB,QAAAkiB,SAAAliB,QAAAoiB,eAAApiB,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA,SAAA5T,EAAA,EAAA,MAAAmiB,aAAAniB,EAAA,EAAA,MAAA/F,SAAA+F,EAAA,EAAA,MAAAuT,MAAAvT,UAAA2T,MAZnBC,0BAAC,cAAA,EAAwBuO,WAAmB,WAAA,UAAgBloB,OAC1DsZ,UAAAA;AAAAA,IAAAA;AAAAA,IAQAI;AAAAA,EAAAA,EAAAA,CAIF,GAAe3T,QAAAmiB,WAAAniB,QAAA/F,OAAA+F,QAAAuT,IAAAvT,QAAA2T,IAAA3T,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA,GAbf4T;AAae,CAElB;AACDinB,OAAOh7B,cAAc;AC/BrB,MAAMi7B,iBAAiBrsB,uBAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACrD,kBAAkB,GAE/CwvB,cAAYtsB,OAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,wDAOvBmT,UAAQtT,uBAAOusB,SAAQrsB,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC3B7E,6BACAyB,oBACAW,sBAAsB,GAGlB8uB,iBAAexsB,uBAAOS,IAAGP,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC7BpB,uBACApB,4BAA4B,GASjB8uB,WAAW9rB,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAk7B,6BAAAxd,gBAAAnO,WAAAjP,IAAAE,IAAAI,IAAAG,IAAA4O,IAAAF;AAAA1P,WAAAnE,SAIjC;AAAA,IAAA2F,QAAAjB;AAAAA,IAAAod;AAAAA,IAAA3R,UAAAvL;AAAAA,IAAAjD,UAAAqD;AAAAA,IAAAsV,SAAAnV;AAAAA,IAAAyM,QAAAmC;AAAAA,IAAAF;AAAAA,IAAAyrB;AAAAA,IAAA,GAAA3rB;AAAAA,EAAAA,IAUI3T,OAAKmE,OAAAnE,OAAAmE,OAAAm7B,6BAAAn7B,OAAA2d,gBAAA3d,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,OAAAgB,IAAAhB,OAAA4P,IAAA5P,OAAA0P,WAAAyrB,8BAAAn7B,EAAA,CAAA,GAAA2d,iBAAA3d,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAgB,KAAAhB,EAAA,CAAA,GAAA4P,KAAA5P,EAAA,CAAA,GAAA0P,SAAA1P,EAAA,CAAA;AATP,QAAAwB,UAAAjB,OAAa/E,cAAb+E,IAEAyL,WAAAvL,OAAgBjF,cAAhBiF,IACAjD,YAAAqD,OAAYrF,aAAZqF,IACAsV,UAAAnV,OAAWxF,aAAXwF,IACAyM,SAAAmC,OAAUpU,aAAVoU,IAMFP,MAAYgT,OAAA,IAAuC,GAEnDhiB,YAAkBY,aAAAA;AAAc,MAAAqS;AAAAtT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI9B6T,KAAAA,MAAMjE,IAAGuO,SAAQ5d,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA,GAFnBsiB,oBACEL,cACA3O,EACF,GAEAoK,kBAAkBrO,KAAKsO,cAAc;AAOhB,QAAApK,KAAAlT,UAASD,QACXoT,KAAAnT,UAASC;AAAK,MAAAqT;AAAA3T,YAAAxC,aAEdmW,KAAAtY,cAAcmC,SAAQ,GAACwC,QAAAxC,WAAAwC,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA5T,YAAAmW,WACxBvC,KAAAvY,cAAc8a,OAAO,GAACnW,QAAAmW,SAAAnW,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AACvB,QAAA6T,MAAAxT,UAASD;AAAO,MAAA0T;AAAA9T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACjBqU,MAAAzY,cAAA,CAAe,GAAC2E,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA/T,IAAA,EAAA,MAAAgM,YAAAhM,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,EAAA,EAAA,MAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAA2T,MAAA3T,EAAA,EAAA,MAAA4T,MAAA5T,UAAA0P,UAR1BqE,0BAACgO,SAAA,EACS,WAAA,YACK,eAAAxO,IACF,aAAAC,IAAc,GACrBhE,WACO,WAAAmE,IACD,UAAAC,IACD,SAAAC,KACD,QAAAC,KACD,OAAAzT,UAASC,MACPoP,SAAAA,QACC1D,UACLqD,KAAG,GACRrP,QAAAgM,UAAAhM,QAAAwP,WAAAxP,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAA2T,IAAA3T,QAAA4T,IAAA5T,QAAA0P,QAAA1P,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAAA,MAAAiU;AAAAjU,YAAAyN,UAESwG,MAAA5Y,cAAcoS,MAAM,GAACzN,QAAAyN,QAAAzN,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAIjB,QAAAoW,MAAA5U,UAAS,KAAEhG;AAAY,MAAA6a;AAAArW,YAAAm7B,+BAAAn7B,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,UAAAK,UAAAC,QAAAN,UAAAiU,OAAAjU,EAAA,EAAA,MAAAoW,OALtCC,0BAAC4kB,gBAAA,EACU,SAAAhnB,KACkBknB,wDAClB,SAAA96B,UAASD,QACX,OAAAC,UAASC,MACH,eAAA8V,KACA,eAAA/V,UAASD,QACX,aAAAC,UAASC,MAAK,GACzBN,QAAAm7B,6BAAAn7B,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAAiU,KAAAjU,QAAAoW,KAAApW,QAAAqW,OAAAA,MAAArW,EAAA,EAAA;AAAA,MAAAsW;AAAA,SAAAtW,EAAA,EAAA,MAAA+T,OAAA/T,UAAAqW,OAxBNC,MAAA,oBAAC,gBAAA,EAAuB,WAAA,YACtB,+BAACykB,aAAA,EACChnB,UAAAA;AAAAA,IAAAA;AAAAA,IAcAsC;AAAAA,EAAAA,EAAAA,CASF,GACF,GAAiBrW,QAAA+T,KAAA/T,QAAAqW,KAAArW,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA,GA1BjBsW;AA0BiB,CAEpB;AACD4kB,SAASr7B,cAAc;ACrCvB,MAAMu7B,yBAA8C;AAAA,EAAC/P,QAAQ;AAAC,GAExDgQ,kBAAkB5sB,uBAAO4N,IAAI,EAAEif,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC5sB,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAACrD,kBAAkB,GAE9EwvB,YAAYtsB,OAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,wDAOvB4sB,SAAS/sB,OAAO4N,IAAI,EAAEif,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC5sB,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,gGAUlD6sB,SAAShtB,OAAO4N,IAAI,EAAEif,MAAM;AAAA,EAACC,aAAa;AAAM,CAAC,EAAC5sB,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,8FAUlDmT,QAAQtT,uBAAO9C,MAAKgD,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EACxB7E,6BACAyB,oBACAW,sBAAsB,GAGlB8uB,eAAexsB,uBAAOC,KAAIC,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAC9BpB,uBACApB,4BAA4B,GAGxBsvB,UAAUjtB,OAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,oCAMrB+sB,WAAWltB,OAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,qCAMtBgtB,YAAYntB,OAAO4N,IAAI,EAAC1N,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,kEAOxBitB,uBAAuBptB,uBAAOkM,MAAM,EAAChM,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EAAC;AAAA,EAC1C,mBAAmB;AAAA,IACjB3R,SAAS;AAAA,EAAA;AAEb,CAAC,GAOY6+B,YAAY1sB,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAA2a,eAAAC,oBAAAsgB,6BAAAY,aAAApe,gBAAAqe,SAAAC,QAAA/vB,UAAAsD,WAAA0sB,QAAA37B,IAAAE,IAAAI,IAAAG,IAAA4O,IAAA0D,IAAAC,IAAA7D;AAAA1P,WAAAnE,SAIlC;AAAA,IAAAs/B;AAAAA,IAAA35B,QAAAjB;AAAAA,IAAAw7B;AAAAA,IAAA/vB,UAAAvL;AAAAA,IAAAjD,UAAAqD;AAAAA,IAAAsY,MAAAyB;AAAAA,IAAAW,WAAAV;AAAAA,IAAAmhB;AAAAA,IAAA7lB,SAAAnV;AAAAA,IAAAi7B;AAAAA,IAAAxuB,QAAAmC;AAAAA,IAAA1D;AAAAA,IAAAjQ,OAAAqX;AAAAA,IAAA4oB;AAAAA,IAAAve;AAAAA,IAAA/kB,MAAA2a;AAAAA,IAAA7D;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAmBI3T,OAAKmE,OAAAnE,OAAAmE,OAAA4a,eAAA5a,OAAA6a,oBAAA7a,OAAAm7B,6BAAAn7B,OAAA+7B,aAAA/7B,OAAA2d,gBAAA3d,OAAAg8B,SAAAh8B,OAAAi8B,QAAAj8B,OAAAkM,UAAAlM,OAAAwP,WAAAxP,QAAAk8B,QAAAl8B,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAA0P,WAAAkL,gBAAA5a,EAAA,CAAA,GAAA6a,qBAAA7a,EAAA,CAAA,GAAAm7B,8BAAAn7B,EAAA,CAAA,GAAA+7B,cAAA/7B,EAAA,CAAA,GAAA2d,iBAAA3d,EAAA,CAAA,GAAAg8B,UAAAh8B,EAAA,CAAA,GAAAi8B,SAAAj8B,EAAA,CAAA,GAAAkM,WAAAlM,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAk8B,SAAAl8B,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,GAAAsT,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,GAAA0P,SAAA1P,EAAA,EAAA;AAjBP,QAAAwB,UAAAjB,OAAa/E,cAAb+E,IAEAyL,WAAAvL,OAAgBjF,cAAhBiF,IACU07B,eAAAt7B,OAAgBrF,aAAhBqF,IAID4a,cAAAza,OAAexF,aAAfwF,IAED0a,aAAA9L,OAAcpU,aAAdoU,IAED+L,YAAArI,OAAa9X,aAAb8X,IAGP1a,OAAA2a,OAAa/X,SAAN,SAAP+X,IAIFlE,MAAYgT,OAAA,IAAoC,GAEhDhiB,YAAkBY,aAAAA;AAAc,MAAAuS;AAAAxT,YAAAm8B,gBAEf3oB,KAAAnY,cAAc8gC,YAAY,GAACn8B,QAAAm8B,cAAAn8B,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAA5C,QAAAxC,YAAiBgW;AAA2B,MAAAG;AAAA3T,YAAAyb,eAC5B9H,KAAAtY,cAAcogB,WAAW,GAACzb,QAAAyb,aAAAzb,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAA1C,QAAAmW,UAAgBxC;AAA0B,MAAAC;AAAA5T,YAAA0b,cAC3B9H,KAAAvY,cAAcqgB,UAAU,GAAC1b,QAAA0b,YAAA1b,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAAxC,QAAAyN,SAAemG;AAAyB,MAAAC;AAAA7T,YAAA2b,aAC1B9H,MAAAxY,cAAcsgB,SAAS,GAAC3b,QAAA2b,WAAA3b,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAAtC,QAAA/D,QAAc4X,KAGduoB,kBAAwBz2B,CAAAA,CAAQo2B,aAChCM,WAAiB12B,CAAAA,CAAQiV,eACzB0hB,gBAAsB32B,EAAQkV,oBAC9BvO,aAAmB3G,CAAAA,CAAQu2B,QAC3B7vB,aAAmB1G,CAAAA,CAAQs2B;AAAO,MAAAnoB;AAAA9T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAIhCqU,MAAAA,MAAMzE,IAAGuO,SAAQ5d,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA,GAFnBsiB,oBACEL,cACAnO,GACF,GAEA4J,kBAAkBrO,KAAKsO,cAAc;AAGrC,QAAA4e,uBAAAvoB;AAGM,MAAAD;AAAA/T,YAAAg8B,WAGJjoB,MAAAsM,CAAAA,YAAA;AACEH,YAAKsc,eAAAA,GACLtc,QAAKuc,gBAAAA,GAEDT,WAASA,WAGb3sB,IAAGuO,SAAA8e,MAAAA;AAAAA,EAAA,GACJ18B,QAAAg8B,SAAAh8B,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AATH,QAAA28B,mBAAyB5oB;AAWxB,MAAAE;AAAAjU,IAAA,EAAA,MAAAi8B,UAAAj8B,UAAAyN,UAKGwG,MAAAgoB,UACE,oBAAC,QAAA,EAAO,WAAA,IAAU,YAAA,IAAW,kBAAqBxuB,QAAe,QAAA,UAAc,MAAA,WAC7E,8BAAA,QAAA,oBAAc,GAChB,GACDzN,QAAAi8B,QAAAj8B,QAAAyN,QAAAzN,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AANL,QAAA48B,aAEI3oB,KAkBemC,MAAA5U,UAAS,KAAEhG;AAAY,MAAA6a;AAAArW,IAAA,EAAA,MAAA4a,iBAAA5a,UAAAxC,aAAAwC,EAAA,EAAA,MAAAmW,WAInCE,MAAAuE,iBACC,oBAAC,SAAA,EAAiBzE,SAChB,UAAA,qBAAC,MAAA,EAAW3Y,MAAAA,WACT2X,UAAAA;AAAAA,IAAAA,eAAeyF,aAAa,KAAKA;AAAAA,IACjCpI,mBAAmBoI,aAAa,KAAK,oBAAC,eAAA,CAAA;KACzC,EAAA,CACF,GACD5a,QAAA4a,eAAA5a,QAAAxC,WAAAwC,QAAAmW,SAAAnW,QAAAqW,OAAAA,MAAArW,EAAA,EAAA;AAAA,MAAAsW;AAAAtW,IAAA,EAAA,MAAAo8B,mBAAAp8B,EAAA,EAAA,MAAA6a,sBAAA7a,EAAA,EAAA,MAAAxC,aAAAwC,UAAAmW,WAEAG,MAAA,CAAC8lB,mBAAmBvhB,sBACnB,oBAAC,UAAA,EAAkB1E,SACjB,UAAA,qBAAC,MAAA,EAAW3Y,MAAAA,WACT2X,UAAAA;AAAAA,IAAAA,eAAe0F,kBAAkB,KAAKA;AAAAA,IACtCrI,mBAAmBqI,kBAAkB,KAAK,oBAAC,oBAAA,CAAA;KAC9C,EAAA,CACF,GACD7a,QAAAo8B,iBAAAp8B,QAAA6a,oBAAA7a,QAAAxC,WAAAwC,QAAAmW,SAAAnW,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA;AAAA,MAAAuW;AAAAvW,IAAA,EAAA,MAAAqM,cAAArM,UAAAsM,cAAAtM,EAAA,EAAA,MAAAm7B,+BAAAn7B,UAAAyN,UAAAzN,EAAA,EAAA,MAAAK,UAAAD,UAAAJ,EAAA,EAAA,MAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAAoW,OAAApW,EAAA,EAAA,MAAAqW,OAAArW,UAAAsW,OA3BHC,MAAA,qBAAC,cAAA,EACalK,YACe8uB,2BAAAA,6BACf7uB,YACHmB,SAAAA,QACA,SAAApN,UAASD,QACX,OAAAC,UAASC,MACH,eAAA8V,KACA,eAAA/V,UAASD,QACX,aAAAC,UAASC,MAEnB+V,UAAAA;AAAAA,IAAAA;AAAAA,IASAC;AAAAA,EAAAA,GAQH,GAAetW,QAAAqM,YAAArM,QAAAsM,YAAAtM,QAAAm7B,6BAAAn7B,QAAAyN,QAAAzN,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAAoW,KAAApW,QAAAqW,KAAArW,QAAAsW,KAAAtW,QAAAuW,OAAAA,MAAAvW,EAAA,EAAA;AA9BnB,QAAA68B,mBAEItmB;AA2CH,MAAAC;AAAAxW,YAAAmW,WAKGK,MAAAL,QAAOjb,IAAA8wB,MAMN,GAAChsB,QAAAmW,SAAAnW,QAAAwW,OAAAA,MAAAxW,EAAA,EAAA;AARN,QAAA88B,wBAEItmB;AAQH,MAAAC;AAAAzW,YAAAmW,WAGGM,MAAAN,QAAOjb,IAAA6hC,MAMN,GAAC/8B,QAAAmW,SAAAnW,QAAAyW,OAAAA,MAAAzW,EAAA,EAAA;AARN,QAAAg9B,qBAEIvmB,KASJwmB,mBACS,OAAOlB,eAAgB,WAAWA,cAAWnkC;AAErD,MAAA8e;AAAA1W,IAAA,EAAA,MAAA+7B,eAAA/7B,UAAA88B,yBAAA98B,EAAA,EAAA,MAAAg9B,sBAAAh9B,UAAAi9B,oBAAAj9B,EAAA,EAAA,MAAA2d,kBAAA3d,UAAAgM,YAAAhM,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAA28B,oBAAA38B,EAAA,EAAA,MAAAyN,UAAAzN,UAAAkM,YAGGwK,OAAC1K,YAAQ,CACRE,YACD6vB,eACE,oBAAC,WAAA,EACa,aAAA,QACHe,gCACF1B,+BACD,MAAAzd,iBAAiB,aAAa,WAEpC,UAAA,oBAAC,sBAAA,EACY,cAAA,SACH,WAAA,gBACEngB,UAAAA,WACJ0/B,MAAAA,WACD,MAAA,SACIF,SAAAA,oBACDvvB,WACJwvB,kBACKN,SAAAA,kBACIJ,aAAAA,qBAAAA,CAAoB,EAAA,CAErC,GACDv8B,QAAA+7B,aAAA/7B,QAAA88B,uBAAA98B,QAAAg9B,oBAAAh9B,QAAAi9B,kBAAAj9B,QAAA2d,gBAAA3d,QAAAgM,UAAAhM,QAAAxC,WAAAwC,QAAA28B,kBAAA38B,QAAAyN,QAAAzN,QAAAkM,UAAAlM,QAAA0W,OAAAA,MAAA1W,EAAA,EAAA;AAxBL,QAAAm9B,kBAEIzmB;AAoCH,MAAAC;AAAA3W,IAAA,EAAA,MAAAyN,UAAAzN,UAAAk8B,UAKGvlB,MAAAulB,UACE,oBAAC,QAAA,EAAO,WAAA,IAAU,aAAA,IAAY,kBAAqBzuB,QAAe,QAAA,UAAc,MAAA,WAC9E,8BAAA,QAAA,oBAAc,GAChB,GACDzN,QAAAyN,QAAAzN,QAAAk8B,QAAAl8B,QAAA2W,OAAAA,MAAA3W,EAAA,EAAA;AANL,QAAAo9B,aAEIzmB,KAoBgBC,MAAA0lB,iBAAiBF;AAAe,MAAAvlB;AAAA7W,YAAAq8B,YAAAr8B,EAAA,EAAA,MAAAgM,YAAAhM,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAAkM,YAAAlM,EAAA,EAAA,MAAAwP,aAAAxP,UAAAK,UAAAD,UAAAJ,UAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAA/D,SAAA+D,EAAA,EAAA,MAAA4W,OAAA5W,UAAApH,QAAAoH,EAAA,EAAA,MAAA0P,UAP9CmH,0BAAC,OAAA,EACS,WAAA,SACK,eAAAxW,UAASD,QACX,aAAAC,UAASC,MAAK,GACrBkP,WACOhS,sBACA6+B,WAAAA,UACC,YAAAzlB,KACFT,UAAAA,SACD,SAAA9V,UAASD,QACVnE,QAAAA,OACD,OAAAoE,UAASC,MACPoP,iBACC1D,UACAE,UACLmD,KACCzW,KAAAA,CAAI,GACVoH,QAAAq8B,UAAAr8B,QAAAgM,UAAAhM,QAAAxC,WAAAwC,QAAAmW,SAAAnW,QAAAkM,UAAAlM,QAAAwP,WAAAxP,EAAA,EAAA,IAAAK,UAAAD,QAAAJ,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAA/D,OAAA+D,QAAA4W,KAAA5W,QAAApH,MAAAoH,QAAA0P,QAAA1P,QAAA6W,OAAAA,MAAA7W,EAAA,EAAA;AAAA,MAAA8W;AAAA9W,IAAA,EAAA,MAAAm9B,mBAAAn9B,UAAA68B,oBAAA78B,EAAA,EAAA,MAAA6W,OAlBJC,2BAAC,WAAA,EACCD,UAAAA;AAAAA,IAAAA;AAAAA,IAmBCgmB;AAAAA,IACAM;AAAAA,EAAAA,GACH,GAAYn9B,QAAAm9B,iBAAAn9B,QAAA68B,kBAAA78B,QAAA6W,KAAA7W,QAAA8W,OAAAA,MAAA9W,EAAA,EAAA;AAAA,MAAA+W;AAAA,SAAA/W,EAAA,EAAA,MAAA48B,cAAA58B,UAAAK,UAAAC,QAAAN,EAAA,EAAA,MAAAo9B,cAAAp9B,UAAA8W,OAzBdC,MAAA,qBAAC,mBAAwB,WAAA,aAAkB,MAAA1W,UAASC,MACjDs8B,UAAAA;AAAAA,IAAAA;AAAAA,IAED9lB;AAAAA,IAwBCsmB;AAAAA,EAAAA,EAAAA,CACH,GAAkBp9B,QAAA48B,YAAA58B,EAAA,EAAA,IAAAK,UAAAC,MAAAN,QAAAo9B,YAAAp9B,QAAA8W,KAAA9W,QAAA+W,OAAAA,MAAA/W,EAAA,EAAA,GA5BlB+W;AA4BkB,CAErB;AACD+kB,UAAUj8B,cAAc;AA3OY,SAAAmU,QAAAkM,OAAA;AAiDhCA,QAAKsc,eAAAA,GACLtc,MAAKuc,gBAAAA;AAAkB;AAlDS,SAAAzQ,OAAAE,GAAA;AAAA,SAiIxBA,MAAC,IAAM,IACPA,MAAC,KACDA,MAAC,IAAM,IAEJA,IAAC;AAAI;AArIgB,SAAA6Q,OAAA9Q,KAAA;AA4IjB,SAAPC,QAAC,KACDA,QAAC,IAAM,IACPA,QAAC,IAAM,IAEJA,MAAC;AAAI;ACrSb,SAAAmR,gBAAAC,cAAA;AAAA,QAAAt9B,IAAAC,EAAA,CAAA,GAGL,CAAAyrB,OAAA6R,QAAA,IAA0BzqB,SAASwqB,YAAY,GAC/CE,gBAAsBnb,OAAA7mB,MAA4C;AAAC,MAAA+E;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEjCc,KAAAA,CAAAqrB,WAAA6R,UAAA;AAChC,UAAAC,SAAAA,MAAA;AACEH,eAAS3R,SAAS;AAAA,IAAC;AAMN,QAFX4R,cAAa5f,YACf+f,aAAaH,cAAa5f,OAAQ,GAClC4f,cAAa5f,UAAApiB,SAAA,CAGViiC;AAAK,aAASC,OAAAA;AACnBF,kBAAa5f,UAAWggB,WAAWF,QAAQD,KAAK;AAAA,EAAC,GAClDz9B,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAbD,QAAA69B,gBAAsBt9B;AAahB,MAAAE;AAAA,SAAAT,SAAA0rB,SAECjrB,KAAA,CAACirB,OAAOmS,aAAa,GAAC79B,OAAA0rB,OAAA1rB,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAtBS;AAAsB;ACxBxB,MAAMq9B,8BAA8B,IAC9BC,+BAA+B,GAC/BC,+BAA+B,GAE/BC,2BAA2B,GAC3BC,0BAA0B,GAE1B9M,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,GCPMqC,aAAahlB,OAAOilB,OAAOC,OAAOtX,IAAI,CAAC,EAAC1N,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,2BAOjCuvB,cAAc/uB,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAA6zB,SAAA/jB,QAAAgkB,UAAAC,QAAAC,QAAAt7B,UAAA2uB,SAAAC,SAAApR,SAAAsQ,WAAAhZ,QAAA+B,WAAApP,QAAAyN,QAAA5T;AAAA+F,WAAAnE,SAiBpC;AAAA,IAAAi4B;AAAAA,IAAA/jB,OAAAA;AAAAA,IAAAgkB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAt7B;AAAAA,IAAA2uB;AAAAA,IAAAC;AAAAA,IAAApR;AAAAA,IAAAsQ;AAAAA,IAAAhZ;AAAAA,IAAArN;AAAAA,IAAAyN;AAAAA,IAAA5T;AAAAA,IAAA,GAAAuV;AAAAA,EAAAA,IAgBI3T,OAAKmE,OAAAnE,OAAAmE,OAAA8zB,SAAA9zB,OAAA+P,QAAA/P,OAAA+zB,UAAA/zB,OAAAg0B,QAAAh0B,OAAAi0B,QAAAj0B,OAAArH,UAAAqH,OAAAsnB,SAAAtnB,OAAAunB,SAAAvnB,OAAAmW,SAAAnW,QAAAymB,WAAAzmB,QAAAyN,QAAAzN,QAAAwP,WAAAxP,QAAAI,QAAAJ,QAAA6N,QAAA7N,QAAA/F,UAAA65B,UAAA9zB,EAAA,CAAA,GAAA+P,SAAA/P,EAAA,CAAA,GAAA+zB,WAAA/zB,EAAA,CAAA,GAAAg0B,SAAAh0B,EAAA,CAAA,GAAAi0B,SAAAj0B,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAsnB,UAAAtnB,EAAA,CAAA,GAAAunB,UAAAvnB,EAAA,CAAA,GAAAmW,UAAAnW,EAAA,CAAA,GAAAymB,YAAAzmB,EAAA,EAAA,GAAAyN,SAAAzN,EAAA,EAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAA6N,SAAA7N,EAAA,EAAA,GAAA/F,QAAA+F,EAAA,EAAA;AAMO,QAAAO,KAAAuzB,UAAU,cAAWt4B;AAAY,MAAAiF;AAAAT,IAAA,EAAA,MAAAsnB,WAAAtnB,EAAA,EAAA,MAAAunB,WAAAvnB,EAAA,EAAA,MAAA/F,SAAA+F,UAAAO,MAHxCE,KAAA;AAAA,IAAA6mB;AAAAA,IAAAC;AAAAA,IAAAtvB,YAGOsI;AAAAA,IAAiC,GAC1CtG;AAAAA,EAAAA,GACJ+F,QAAAsnB,SAAAtnB,QAAAunB,SAAAvnB,QAAA/F,OAAA+F,QAAAO,IAAAP,QAAAS,MAAAA,KAAAT,EAAA,EAAA;AANH,QAAAu0B,aACS9zB,IAWCI,KAAAmzB,kBAAkBA,SAAMx4B,QACzBwF,KAAAizB,kBAAkBA,SAAMz4B;AAAY,MAAAoU;AAAA5P,IAAA,EAAA,MAAAa,MAAAb,UAAAgB,MAFpC4O,KAAA;AAAA,IAAA6iB,MACC5xB;AAAAA,IAAoC0vB,KACrCvvB;AAAAA,IAAoC0xB,OAAAl3B;AAAAA,IAAAm3B,QAAAn3B;AAAAA,EAAAA,GAG1CwE,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AANH,QAAAw0B,aACS5kB,IAYA0D,KAAA9D;AAAoC,MAAA+D;AAAAvT,YAAA8zB,WAUhCvgB,KAAAugB,UAAO,CAAI,UAAU,SAAS,IAAAt4B,QAAawE,QAAA8zB,SAAA9zB,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAA,MAAAwT;AAAAxT,YAAA8zB,WAC3CtgB,KAAAsgB,UAAO,CAAI,WAAW,SAAS,IAAAt4B,QAAawE,QAAA8zB,SAAA9zB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAAA,MAAA2T;AAAA3T,YAAA8zB,WAC/CngB,KAAAmgB,UAAO,CAAI,UAAU,UAAU,IAAAt4B,QAAawE,QAAA8zB,SAAA9zB,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAAA,MAAA4T;AAAA5T,IAAA,EAAA,MAAA+P,UAAA/P,UAAA+zB,YAAA/zB,EAAA,EAAA,MAAAw0B,cAIjD5gB,KAAA7D,UACC,oBAAC,OAAA,EACMgkB,KAAAA,UACES,OAAAA,YACAsJ,OAAAA,6BACCC,QAAAA,8BACAC,QAAAA,8BAA4B,GAEvCh+B,QAAA+P,QAAA/P,QAAA+zB,UAAA/zB,QAAAw0B,YAAAx0B,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAAA,MAAA6T;AAAA,SAAA7T,UAAArH,YAAAqH,EAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAAymB,aAAAzmB,EAAA,EAAA,MAAAyN,UAAAzN,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAu0B,cAAAv0B,UAAAI,UAAAJ,EAAA,EAAA,MAAA6N,UAAA7N,EAAA,EAAA,MAAAsT,MAAAtT,EAAA,EAAA,MAAAuT,MAAAvT,EAAA,EAAA,MAAAwT,MAAAxT,UAAA2T,MAAA3T,EAAA,EAAA,MAAA4T,MA1BHC,2BAAC,cACS,WAAA,oBACHP,IACWmT,6BACPtQ,SACD1I,QACH4B,KACGjP,QACAyN,QACD0mB,OAAAA,YACG,UAAA18B,qBAAAC,MACE,YAAAD,qBAAAQ,YACH,SAAAkb,IACA,SAAAC,IACH,MAAAG;;IAILC;AAAAA,EAAAA,EAAAA,CASH,GAAa5T,QAAArH,UAAAqH,QAAAmW,SAAAnW,QAAAymB,WAAAzmB,QAAAyN,QAAAzN,QAAAqP,KAAArP,QAAAu0B,YAAAv0B,QAAAI,QAAAJ,QAAA6N,QAAA7N,QAAAsT,IAAAtT,QAAAuT,IAAAvT,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA4T,IAAA5T,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA,GA3Bb6T;AA2Ba,CAEhB;AACDsqB,YAAYt+B,cAAc;ACtGnB,MAAMu+B,2BACX/+B,0BACE,wCACA,IACF;ACmBK,SAAAg/B,0BAAAxiC,OAAA;AAAA,QAAAmE,IAAAC,EAAA,CAAA,GAGL;AAAA,IAAAtH;AAAAA,IAAA8kC;AAAAA,EAAAA,IAA0B5hC,OAC1B,CAAAyiC,eAAAC,gBAAA,IAA0ClB,kBAAqB,GAC/D,CAAAmB,eAAAC,gBAAA,IAA0CpB,oBAAmC,GAE7EqB,YAAkB,OAAOjB,SAAU,WAAWA,QAAQA,OAAKpI,QAAA,GAC3DsJ,aAAmB,OAAOlB,SAAU,WAAWA,QAAQA,OAAKmB,SAAA,GAQ7Cr+B,KAAA+9B,gBAAa,IAAOI;AAAS,MAAAj+B;AAAAT,IAAA,CAAA,MAAA2+B,cAAA3+B,EAAA,CAAA,MAAAw+B,iBAAAx+B,EAAA,CAAA,MAAAu+B,oBAAAv+B,EAAA,CAAA,MAAAy+B,oBAAAz+B,SAAAO,MALnCE,KAAA;AAAA,IAAA89B;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC,WAKMn+B;AAAAA,IAA6Bo+B;AAAAA,EAAAA,GAEzC3+B,OAAA2+B,YAAA3+B,OAAAw+B,eAAAx+B,OAAAu+B,kBAAAv+B,OAAAy+B,kBAAAz+B,OAAAO,IAAAP,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AARH,QAAAvF,QACSgG;AASR,MAAAI;AAAA,SAAAb,EAAA,CAAA,MAAArH,YAAAqH,SAAAvF,SAGCoG,KAAA,oBAAA,yBAAA,UAAA,EAA0CpG,OAAQ9B,SAAAA,CAAS,GAAoCqH,OAAArH,UAAAqH,OAAAvF,OAAAuF,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAA/Fa;AAA+F;AAInGw9B,0BAA0Bx+B,cAAc;AChDjC,SAAAg/B,uBAAA;AAC6C,SAApC1+B,WAAAi+B,wBAAmC;AAErC;ACwEd,MAAMU,gBAAgBrwB,OAAOse,KAAK,EAACpe,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,yBAStBmwB,UAAU3vB,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,GAAA,GAIhC40B,yBAA+BjL,sBAC/B;AAAA,IAAAgL;AAAAA,EAAAA,IAAgBtzB,YAAAA;AAAa,MAAAwzB,kBAAAkK,yBAAAC,UAAA9J,WAAAn4B,SAAAygC,OAAAzxB,UAAAkzB,YAAA1vB,WAAApP,QAAAG,IAAAE,IAAAI,IAAAG,IAAA4O,IAAA0D;AAAAtT,WAAAnE,SAC7B;AAAA,IAAAi4B,SAAAvzB;AAAAA,IAAAwP,OAAAtP;AAAAA,IAAAkc,iBAAAmY;AAAAA,IAAAn8B,UAAAw8B;AAAAA,IAAAn4B;AAAAA,IAAAgP;AAAAA,IAAAwpB,oBAAAwJ;AAAAA,IAAA7oB,SAAAtV;AAAAA,IAAA4lB,WAAAzlB;AAAAA,IAAA0sB,QAAAwR;AAAAA,IAAAzxB,QAAAmC;AAAAA,IAAAxP;AAAAA,IAAAyN,QAAAyF;AAAAA,IAAAuX,SAAAoU;AAAAA,IAAAxB;AAAAA,IAAA,GAAAjuB;AAAAA,EAAAA,IAiBI3T,OAAKmE,OAAAnE,OAAAmE,OAAA80B,kBAAA90B,OAAAg/B,yBAAAh/B,OAAAi/B,UAAAj/B,OAAAm1B,WAAAn1B,OAAAhD,SAAAgD,OAAAy9B,OAAAz9B,OAAAgM,UAAAhM,OAAAk/B,YAAAl/B,OAAAwP,WAAAxP,QAAAI,QAAAJ,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,OAAAwhB,mBAAA90B,EAAA,CAAA,GAAAg/B,0BAAAh/B,EAAA,CAAA,GAAAi/B,WAAAj/B,EAAA,CAAA,GAAAm1B,YAAAn1B,EAAA,CAAA,GAAAhD,UAAAgD,EAAA,CAAA,GAAAy9B,QAAAz9B,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAAk/B,aAAAl/B,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAI,SAAAJ,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,GAAAsT,KAAAtT,EAAA,EAAA;AAhBE,QAAAu2B,WAAAh2B,OAAgB/E,cAAhB+E,IACFi2B,YAAA/1B,OAAiBjF,cAAjBiF,IAMP0V,UAAAtV,OAAWrF,aAAXqF,IACW41B,gBAAAz1B,OAAwBxF,SAAR,WAAhBwF,IAEXyM,SAAAmC,OAAUpU,aAAVoU,IAEA/B,SAAAyF,OAAU9X,aAAV8X,IAKFqJ,kBAAwBmY,oBAAoBD,wBAAsB77B,SAClEmmC,yBACEH,2BAAuB5N,4BAAgCv1B,MAAK4qB,aAAc,QAAQ,GACpFoE,UAAgBoU,YAAYrK,MAAKwK,QAAAvU,SAEjCiJ,UAD6BpS,wBAAAA,IACO,KAAW6U;AAAQ,MAAAhjB;AAAAvT,YAAAm/B,0BAC5B5rB,KAAAlY,cAAc8jC,sBAAsB,GAACn/B,QAAAm/B,wBAAAn/B,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AAAhE,QAAAw1B,qBAA2BjiB,IAC3BlE,MAAYgT,OAAA,IAAkC,GAC9C,CAAAiT,kBAAA+J,mBAAA,IAAgDvsB,aAAiC,GACjFihB,WAAiB1R,OAAA,IAAkC,GAEnD,CAAAid,iBAAAC,kBAAA,IAA8CzsB,UAAU;AAAC,MAAAU;AAAAxT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEuB+T,KAAAA,MAAMnE,IAAGuO,SAAQ5d,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GAAjGsiB,oBAAkEL,cAAczO,EAAiB;AAEjG,QAAAka,SAAeH,UAAAA,GACfI,gBACE,OAAOuR,cAAe,WAAWxR,OAAM1Q,WAAYkiB,UAAU,KAAA,OAAYxR,OAAM10B;AAAQ,MAAA2a;AAAA3T,IAAA,EAAA,MAAA8zB,WAAA9zB,EAAA,EAAA,MAAAw2B,aAAAx2B,EAAA,EAAA,MAAA2c,mBAAA3c,UAAAw1B,sBAExD7hB,KAAA;AAAA,IAAAmgB;AAAAA,IAAA0C;AAAAA,IAAAzC;AAAAA,IAAApX;AAAAA,IAAA6Y;AAAAA,IAAApD,cATE;AAAA,EAAA,GAgBlCpyB,QAAA8zB,SAAA9zB,QAAAw2B,WAAAx2B,QAAA2c,iBAAA3c,QAAAw1B,oBAAAx1B,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AAPD,QAAAi3B,aAAmBC,cAAcvjB,EAOhC;AAAC,MAAAC;AAAA5T,YAAAs1B,oBAMU1hB,KAAA;AAAA,IAAAme,WAAYuD;AAAAA,EAAAA,GAAiBt1B,QAAAs1B,kBAAAt1B,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAAA,MAAA6T;AAAA7T,IAAA,EAAA,MAAAi3B,cAAAj3B,UAAAy2B,iBAAAz2B,EAAA,EAAA,MAAA4T,MAJqCC,MAAA;AAAA,IAAAojB;AAAAA,IAAAxQ,WAEjEgQ;AAAAA,IAAaU,sBAAAC;AAAAA,IAAApa,UAEdpJ;AAAAA,EAAAA,GACX5T,QAAAi3B,YAAAj3B,QAAAy2B,eAAAz2B,QAAA4T,IAAA5T,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AALD,QAAA;AAAA,IAAAw/B;AAAAA,IAAA/Y;AAAAA,IAAAD;AAAAA,IAAA6Q;AAAAA,IAAAC;AAAAA,EAAAA,IAAkEC,YAAY1jB,GAK7E,GAEDmgB,SAAexN,eAAczW,OAAAmX,GAC7B+M,SAAezN,eAAczW,OAAAqX,GAE7BE,UAAgBd,eAAe,mBAAmB,GAAAc,SAClDC,UAAgBf,eAAe,mBAAmB,GAAAe,SAElDkY,YAAkB7sB,MAAAA,GAClB,CAAA8sB,QAAAC,SAAA,IAA4BtC,kBAAqB,GACjDuC,oBAA0Bf,qBAAAA;AAAsB,MAAA/qB;AAAA9T,YAAA4/B,qBACH9rB,MAAA8rB,qBAAiB,CAAA,GAAM5/B,QAAA4/B,mBAAA5/B,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAApE,QAAA;AAAA,IAAAu+B;AAAAA,IAAAE;AAAAA,EAAAA,IAA6C3qB,KAC7C+rB,cAAoBH,UAAUE,mBAAiBpB,kBAAoBiB,WAEnEK,gBAAsBF,sBAAiB,MACvCG,gBAAsB,OAAOtC,SAAU,WAAWA,QAAQA,OAAKpI,QAAA,GAC/D2K,iBAAuB,OAAOvC,SAAU,WAAWA,QAAQA,OAAKmB,SAAA,GAEhEF,YAAkBoB,gBAAgBF,kBAAiBlB,YAAaqB,eAChEpB,aAAmBmB,gBAAgBF,kBAAiBjB,aAAcqB;AAAc,MAAAjsB;AAAA/T,IAAA,EAAA,MAAA2+B,cAAA3+B,EAAA,EAAA,MAAA8/B,iBAAA9/B,EAAA,EAAA,MAAA0+B,aAAA1+B,UAAAu+B,oBAAAv+B,EAAA,EAAA,MAAA2/B,aAAA3/B,EAAA,EAAA,MAAAy+B,oBAAAz+B,EAAA,EAAA,MAAAy/B,aAG9E1rB,MAAAA,CAAAshB,MAAA4K,cAAA;AAAA,QACMH;AAAa,UAEXzK,MAAI;AACN,cAAA6K,mBAAyBD,YAAS,IAAOvB;AAEzCH,2BAAmBlJ,MAAM6K,gBAAgB,GACzCzB,mBAAmBgB,WAAWS,gBAAgB;AAAA,MAAA,OAAA;AAG9C,cAAAC,uBACExB,aAAU,MAAiCA,aAAU;AAEvDJ,2BAAmBlJ,MAAM8K,oBAAoB,GAC7C1B,mBAAgB,MAASwB,YAAS,IAAOtB,UAAU;AAAA,MAAA;AAAA;AAMrDgB,gBAAUtK,MAHc4K,YAAS,IAAO5K,OAAOqJ,YAAYC,UAG5B;AAAA,EAAC,GAEnC3+B,QAAA2+B,YAAA3+B,QAAA8/B,eAAA9/B,QAAA0+B,WAAA1+B,QAAAu+B,kBAAAv+B,QAAA2/B,WAAA3/B,QAAAy+B,kBAAAz+B,QAAAy/B,WAAAz/B,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAvBH,QAAAogC,qBAA2BrsB;AAiC1B,MAAAE;AAAAjU,YAAAm1B,WAAAt5B,SAAAmE,UAAAogC,sBAGCnsB,MAAAosB,CAAAA,MAAA;AACED,yBAAwB,GACxBjL,WAASt5B,OAAAykC,SAAkBD,CAAC;AAAA,EAAA,GAC7BrgC,EAAA,EAAA,IAAAm1B,WAAAt5B,OAAAmE,QAAAogC,oBAAApgC,QAAAiU,OAAAA,MAAAjU,EAAA,EAAA;AAJH,QAAAugC,aAAmBtsB;AAMlB,MAAAmC;AAAApW,YAAAm1B,WAAAt5B,SAAAmE,UAAAogC,sBAEChqB,MAAAoqB,CAAAA,QAAA;AACEJ,6BAA8B,GAC9BjL,WAASt5B,MAAA4kC,UAAkBJ,GAAC;AAAA,EAAA,GAC7BrgC,EAAA,EAAA,IAAAm1B,WAAAt5B,OAAAmE,QAAAogC,oBAAApgC,QAAAoW,OAAAA,MAAApW,EAAA,EAAA;AAJH,QAAA0gC,cAAoBtqB;AAMnB,MAAAC;AAAArW,YAAAm1B,WAAAt5B,SAAAmE,UAAAogC,sBAEC/pB,MAAAsqB,CAAAA,QAAA;AACEP,6BAA8B,GAC9BjL,WAASt5B,MAAA+kC,gBAAwBP,GAAC;AAAA,EAAA,GACnCrgC,EAAA,EAAA,IAAAm1B,WAAAt5B,OAAAmE,QAAAogC,oBAAApgC,QAAAqW,OAAAA,MAAArW,EAAA,EAAA;AAJH,QAAA6gC,oBAA0BxqB;AAMzB,MAAAC;AAAAtW,YAAAm1B,WAAAt5B,SAAAmE,UAAAogC,sBAEC9pB,MAAAwqB,CAAAA,QAAA;AACEV,yBAAuB,GACvBjL,WAASt5B,OAAA4wB,UAAmB4T,GAAC;AAAA,EAAA,GAC9BrgC,EAAA,EAAA,IAAAm1B,WAAAt5B,OAAAmE,QAAAogC,oBAAApgC,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA;AAJH,QAAA8sB,cAAoBxW;AAMnB,MAAAC;AAAAvW,YAAAm1B,WAAAt5B,SAAAmE,UAAAogC,sBAEC7pB,MAAAwqB,CAAAA,QAAA;AACEX,yBAAuB,GACvBjL,WAASt5B,OAAAmlC,eAAwBX,GAAC;AAAA,EAAA,GACnCrgC,EAAA,EAAA,IAAAm1B,WAAAt5B,OAAAmE,QAAAogC,oBAAApgC,QAAAuW,OAAAA,MAAAvW,EAAA,EAAA;AAJH,QAAAihC,mBAAyB1qB;AAMxB,MAAAC;AAAAxW,YAAAm1B,WAAAt5B,SAAAmE,UAAAogC,sBAEC5pB,MAAA0qB,CAAAA,QAAA;AACEd,yBAAwB,GACxBjL,WAASt5B,OAAAslC,eAAwBd,GAAC;AAAA,EAAA,GACnCrgC,EAAA,EAAA,IAAAm1B,WAAAt5B,OAAAmE,QAAAogC,oBAAApgC,QAAAwW,OAAAA,MAAAxW,EAAA,EAAA;AAJH,QAAAohC,mBAAyB5qB;AAMxB,MAAAC;AAAAzW,IAAA,EAAA,MAAAogC,sBAAApgC,EAAA,EAAA,MAAA8/B,iBAAA9/B,EAAA,EAAA,MAAAs1B,oBAAAt1B,UAAA6/B,eAGoBppB,MAAA;AAAA,IAAA2pB;AAAAA,IAAA9K;AAAAA,IAAAuK;AAAAA,IAAAC;AAAAA,EAAAA,GAAkE9/B,QAAAogC,oBAAApgC,QAAA8/B,eAAA9/B,QAAAs1B,kBAAAt1B,QAAA6/B,aAAA7/B,QAAAyW,OAAAA,MAAAzW,EAAA,EAAA,GAAvFqhC,qBAAqB5qB,GAAkE;AAAC,MAAAC,KAAAC;AAAA3W,IAAA,EAAA,MAAAgM,YAAAhM,UAAAogC,sBAAApgC,EAAA,EAAA,MAAA6/B,eAG9EnpB,MAAAA,MAAA;AACJ1K,gBAAY6zB,eAAaO,qBAAwB;AAAA,EAAC,GACrDzpB,MAAA,CAAC3K,UAAUo0B,oBAAoBP,WAAW,GAAC7/B,QAAAgM,UAAAhM,QAAAogC,oBAAApgC,QAAA6/B,aAAA7/B,QAAA0W,KAAA1W,QAAA2W,QAAAD,MAAA1W,EAAA,EAAA,GAAA2W,MAAA3W,EAAA,EAAA,IAF9CqT,UAAUqD,KAEPC,GAA2C;AAAC,MAAAC,KAAAC;AAAA7W,IAAA,EAAA,MAAAhD,WAAAgD,UAAAogC,sBAAApgC,EAAA,EAAA,MAAA6/B,eAGrCjpB,MAAAA,MAAA;AACJ,KAAC5Z,WAAW6iC,eAAaO,qBAAwB;AAAA,EAAC,GACrDvpB,MAAA,CAAC7Z,SAASojC,oBAAoBP,WAAW,GAAC7/B,QAAAhD,SAAAgD,QAAAogC,oBAAApgC,QAAA6/B,aAAA7/B,QAAA4W,KAAA5W,QAAA6W,QAAAD,MAAA5W,EAAA,EAAA,GAAA6W,MAAA7W,EAAA,EAAA,IAF7CqT,UAAUuD,KAEPC,GAA0C;AAAC,MAAAC,KAAAC;AAAA/W,IAAA,EAAA,MAAAogC,sBAAApgC,UAAA6/B,eAEpC/oB,MAAAA,MAAA;AAAA,QAAA,CAEH+oB;AAAW;AAEhB,UAAAyB,sBAAA,SAAAphB,OAAA;AACMA,YAAKvlB,QAAS,YAChBylC,yBAA8B;AAAA,IAAC;AAInClmC,WAAAA,OAAAqjB,iBAAwB,WAAW+jB,mBAAmB,GAAC,MAAA;AAGrDpnC,aAAAsjB,oBAA2B,WAAW8jB,mBAAmB;AAAA,IAAC;AAAA,EAAA,GAE3DvqB,MAAA,CAACqpB,oBAAoBP,WAAW,GAAC7/B,QAAAogC,oBAAApgC,QAAA6/B,aAAA7/B,QAAA8W,KAAA9W,QAAA+W,QAAAD,MAAA9W,EAAA,EAAA,GAAA+W,MAAA/W,EAAA,EAAA,IAfpCqT,UAAUyD,KAePC,GAAiC;AAAC,MAAAC;AAAAhX,YAAA2c,mBAAA3c,EAAA,EAAA,MAAA2tB,eAAA4T,eAGrBvqB,MAAAA,MAAA;AAId,UAAAwqB,kBAAA,CAAA,GACM7kB,kBAAe,CAAIA,gBAAe4kB,WAAA,IAAA,CAAA,GACtC5T,eAAa4T,eAAA7hC,SAAA0tB,KAAAmU,WAA0C;AAIzDhC,uBAAmBphC,KAAAyJ,IAAA,GAAY45B,eAAe,IAAItD,0BAAA,CAA2B;AAAA,EAAC,GAC/El+B,QAAA2c,iBAAA3c,EAAA,EAAA,IAAA2tB,eAAA4T,aAAAvhC,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAAA,MAAAiX;AAAAjX,IAAA,EAAA,MAAA2c,mBAAA3c,UAAA2tB,iBAAE1W,MAAA,CAAC0F,iBAAiBgR,aAAa,GAAC3tB,QAAA2c,iBAAA3c,QAAA2tB,eAAA3tB,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA,GAXnCyhC,gBAAgBzqB,KAWbC,GAAgC;AAAC,MAAAC;AAAAlX,YAAAs3B,UAGlCpgB,MAAAwgB,CAAAA,YAAA;AACE3D,aAAQnW,UAAW8Z,SACnBJ,OAAAA;AAAAA,EAAQ,GACTt3B,QAAAs3B,QAAAt3B,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAJH,QAAA23B,WAAiBzgB;AAMhB,MAAAC;AAAAnX,YAAAq3B,QAGClgB,MAAA/d,CAAAA,SAAA;AACEiW,QAAGuO,UAAWxkB,MACdi+B,KAAIO,YAAax+B,IAAI;AAAA,EAAC,GACvB4G,QAAAq3B,MAAAr3B,QAAAmX,OAAAA,MAAAnX,EAAA,EAAA;AAJH,QAAA43B,cAAoBzgB;AAMnB,MAAAC;AAAA5W,OAAA;AAAA,QAAA,CAGM20B,WAAS;AAAE/d,YAAA;AAAW,YAAA5W;AAAAA,IAAA;AAAA,QAAAo1B;AAAA51B,MAAA,EAAA,MAAAm1B,aAAAn1B,EAAA,EAAA,MAAAugC,cAAAvgC,EAAA,EAAA,MAAA0gC,eAAA1gC,UAAA6gC,qBAAA7gC,EAAA,EAAA,MAAA8sB,eAAA9sB,EAAA,EAAA,MAAAihC,oBAAAjhC,EAAA,EAAA,MAAAohC,oBAEpBxL,OAAAlgB,aAAayf,WAAS;AAAA,MAAAmL,QACnBC;AAAAA,MAAU9T,SACTK;AAAAA,MAAWkU,cACNC;AAAAA,MAAgBE,cAChBC;AAAAA,MAAgBX,SACrBC;AAAAA,MAAWE,eACLC;AAAAA,MAAiBxxB,KAC3BgwB;AAAAA,IAAAA,CACN,GAACr/B,QAAAm1B,WAAAn1B,QAAAugC,YAAAvgC,QAAA0gC,aAAA1gC,QAAA6gC,mBAAA7gC,QAAA8sB,aAAA9sB,QAAAihC,kBAAAjhC,QAAAohC,kBAAAphC,QAAA41B,QAAAA,OAAA51B,EAAA,EAAA,GARFoX,MAAOwe;AAAAA,EAQL;AAXJ,QAAApgB,QAAc4B;AAoBZ,MAAAwe;AAAA51B,YAAAm1B,aAIkBS,MAAAT,YAAY1E,cAAc0E,SAAS,IAAC,MAAOn1B,QAAAm1B,WAAAn1B,QAAA41B,OAAAA,MAAA51B,EAAA,EAAA;AAAA,MAAA81B,KAAAC;AAE7D,MAF6D/1B,UAAAs1B,oBAAEQ,MAAAA,MAAMR,kBAAkBS,OACvFT,gBAAgB,GACjBt1B,QAAAs1B,kBAAAt1B,QAAA81B,KAAA91B,SAAA+1B,QAAAD,MAAA91B,EAAA,EAAA,GAAA+1B,MAAA/1B,EAAA,GAAA,IAFDsiB,oBAAoBsT,KAA6CE,KAAwBC,GAExF,GAAC,CAEGvgB,OAAK;AAAA,QAAAwgB;AAAA,WAAAh2B,EAAA,GAAA,MAAAR,OAAAC,IAAA,2BAAA,KAASu2B,OAAA,oBAAA,UAAA,CAAA,CAAA,GAAKh2B,SAAAg2B,QAAAA,OAAAh2B,EAAA,GAAA,GAALg2B;AAAAA,EAAK;AAAA,MAEpBhqB;AAAQ,WAASwJ;AASL,QAAAwgB,MAAAsJ,kBAAe,IAAO,GAAGA,eAAe,OAAI9jC;AAAY,MAAAy6B;AAAAj2B,IAAA,GAAA,MAAAw/B,kBAAAx/B,WAAAg2B,OAF7DC,MAAA;AAAA,IAAA,GACFuJ;AAAAA,IAAcna,UACP2Q;AAAAA,EAAAA,GACXh2B,SAAAw/B,gBAAAx/B,SAAAg2B,KAAAh2B,SAAAi2B,OAAAA,MAAAj2B,EAAA,GAAA;AAAA,MAAAk2B;AAAAl2B,IAAA,GAAA,MAAA8zB,WAAA9zB,EAAA,GAAA,MAAAw2B,aAAAx2B,EAAA,GAAA,MAAAg0B,UAAAh0B,EAAA,GAAA,MAAAi0B,UAAAj0B,EAAA,GAAA,MAAAhD,WAAAgD,EAAA,GAAA,MAAAsnB,WAAAtnB,EAAA,GAAA,MAAAunB,WAAAvnB,WAAAmW,WAAAnW,EAAA,GAAA,MAAAymB,aAAAzmB,EAAA,GAAA,MAAAyN,UAAAzN,EAAA,GAAA,MAAAwP,aAAAxP,EAAA,GAAA,MAAAI,UAAAJ,EAAA,GAAA,MAAA23B,YAAA33B,EAAA,GAAA,MAAA43B,eAAA53B,EAAA,GAAA,MAAA6N,UAGDqoB,0BAAC,aAAA,EAAW,GACN1mB,WACKskB,SACF0C,OAAAA,WACGmB,UAAAA,UACF3D,QACAC,QACC3M,SACAC,SACApR,SACEsQ,WACHhZ,QACHmqB,KAAAA,aACGx3B,QACAyN,QAEP7Q,UAAAA,QAAAA,CACH,GAAcgD,SAAA8zB,SAAA9zB,SAAAw2B,WAAAx2B,SAAAg0B,QAAAh0B,SAAAi0B,QAAAj0B,SAAAhD,SAAAgD,SAAAsnB,SAAAtnB,SAAAunB,SAAAvnB,SAAAmW,SAAAnW,SAAAymB,WAAAzmB,SAAAyN,QAAAzN,SAAAwP,WAAAxP,SAAAI,QAAAJ,SAAA23B,UAAA33B,SAAA43B,aAAA53B,SAAA6N,QAAA7N,SAAAk2B,OAAAA,MAAAl2B,EAAA,GAAA;AAAA,MAAAm2B;AAAAn2B,IAAA,GAAA,MAAAwP,aAAAxP,EAAA,GAAA,MAAA43B,eAAA53B,EAAA,GAAA,MAAAi2B,OAAAj2B,EAAA,GAAA,MAAAk2B,OAAAl2B,WAAA6qB,WA3BhBsL,MAAA,oBAAC,eAAA,EACS,WAAA,WAAS,GACb3mB,WACCooB,KAAAA,aACE,OAAA3B,KAIEpL,SAETqL,UAAAA,IAAAA,CAkBF,GAAgBl2B,SAAAwP,WAAAxP,SAAA43B,aAAA53B,SAAAi2B,KAAAj2B,SAAAk2B,KAAAl2B,SAAA6qB,SAAA7qB,SAAAm2B,OAAAA,MAAAn2B,EAAA,GAAA;AA7BlB,QAAAo/B,UACEjJ;AA6BD,MAAAC;AAAAp2B,IAAA,GAAA,MAAAk/B,cAAAl/B,WAAA6/B,eAAA7/B,EAAA,GAAA,MAAAo/B,WAGChJ,MAAAyJ,gBACCX,aACC,oBAAC,UAAwB,iBAAA,OAAOA,cAAe,WAAWA,aAAU1jC,QACjE4jC,UAAAA,QAAAA,CACH,IAEAA,UACAp/B,SAAAk/B,YAAAl/B,SAAA6/B,aAAA7/B,SAAAo/B,SAAAp/B,SAAAo2B,OAAAA,MAAAp2B,EAAA,GAAA;AARJ,QAAArH,WACEy9B;AAOE,MAAAC;AAAAr2B,IAAA,GAAA,MAAA8zB,WAAA9zB,WAAArH,YAKC09B,MAAAvC,UAAU,oBAAC,iBAAA,EAAiBn7B,SAAAA,CAAS,IAAqBA,UAAQqH,SAAA8zB,SAAA9zB,SAAArH,UAAAqH,SAAAq2B,OAAAA,MAAAr2B,EAAA,GAAA;AAAA,MAAAs2B;AAAA,SAAAt2B,EAAA,GAAA,MAAAwV,SAAAxV,WAAAq2B,OAFrEC,MAAA,qBAAA,UAAA,EAEGD,UAAAA;AAAAA,IAAAA;AAAAA;KAGK,GACLr2B,SAAAwV,OAAAxV,SAAAq2B,KAAAr2B,SAAAs2B,OAAAA,MAAAt2B,EAAA,GAAA,GANHs2B;AAMG,CAEN;AACDyI,QAAQl/B,cAAc;AAEtB,SAAAq3B,cAAA32B,IAAA;AAAA,QAAAP,IAAAC,EAAA,EAAA,GAAuB;AAAA,IAAA6zB;AAAAA,IAAA0C;AAAAA,IAAAzC;AAAAA,IAAApX;AAAAA,IAAA6Y;AAAAA,IAAApD;AAAAA,EAAAA,IAAA7xB;AActB,MAAA0pB;AAAA,MAAAjqB,SAAA8zB,WAAA9zB,EAAA,CAAA,MAAAw2B,aAAAx2B,EAAA,CAAA,MAAA+zB,YAAA/zB,EAAA,CAAA,MAAA2c,mBAAA3c,SAAAw1B,sBAAAx1B,EAAA,CAAA,MAAAoyB,cAAA;AAEGnI,UAAA,CAAA;AAKc,UAAAxpB,KAAAkc,mBAAenhB;AAAa,QAAAqF;AAAAb,MAAA,CAAA,MAAAw1B,sBAAAx1B,SAAAoyB,gBAAApyB,EAAA,CAAA,MAAAS,MADxCI,KAAAo3B,KAAA;AAAA,MAAA/F,UACYzxB;AAAAA,MAA4B+0B;AAAAA,MAAArf,SAAA+nB;AAAAA,MAAA9L;AAAAA,IAAAA,CAIvC,GAACpyB,OAAAw1B,oBAAAx1B,OAAAoyB,cAAApyB,OAAAS,IAAAT,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GANJiqB,IAAGvK,KACD7e,EAMF;AAAC,QAAAG;AAAAhB,MAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGQuB,KAAAsE,OAAA;AAAA,MAAA4yB,UAAA+F;AAAAA,IAAAA,CAA2C,GAACj+B,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA,GAArDiqB,IAAGvK,KAAM1e,EAA4C;AAKvC,UAAA4O,KAAA+M,mBAAenhB;AAAa,QAAA8X;AAIzC,QAJyCtT,EAAA,EAAA,MAAAoyB,gBAAApyB,UAAA4P,MADxC0D,KAAA2T,MAAA;AAAA,MAAAiL,UACYtiB;AAAAA,MAA4BwiB;AAAAA,MAAAjc,SAAA+nB;AAAAA,IAAAA,CAGvC,GAACl+B,QAAAoyB,cAAApyB,QAAA4P,IAAA5P,QAAAsT,MAAAA,KAAAtT,EAAA,EAAA,GALJiqB,IAAGvK,KACDpM,EAKF,GAGIkjB,WAAS;AAAA,UAAAjjB;AAAAvT,gBAAA+zB,YACFxgB,KAAAxD,MAAA;AAAA,QAAA/W,SAAgB+6B;AAAAA,QAAQ5d,SAAA+nB;AAAAA,MAAAA,CAAmC,GAACl+B,QAAA+zB,UAAA/zB,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GAArEiqB,IAAGvK,KAAMnM,EAA4D;AAAA,IAAC;AAKpEugB,eACF7J,IAAGvK,KAAA2G,MAAY,GAACrmB,OAAA8zB,SAAA9zB,OAAAw2B,WAAAx2B,OAAA+zB,UAAA/zB,OAAA2c,iBAAA3c,OAAAw1B,oBAAAx1B,OAAAoyB,cAAApyB,OAAAiqB;AAAAA,EAAA;AAAAA,UAAAjqB,EAAA,CAAA;AAAA,SAGXiqB;AAAG;AAQd,SAAAoX,qBAAA9gC,IAAA;AAAA,QAAAP,IAAAC,EAAA,EAAA,GAA8B;AAAA,IAAAmgC;AAAAA,IAAA9K;AAAAA,IAAAuK;AAAAA,IAAAC;AAAAA,EAAAA,IAAAv/B;AAU7B,MAAAE;AAAAT,IAAA,CAAA,MAAAogC,sBAAApgC,SAAAs1B,oBAIoC70B,KAAAA,CAAAqc,QAAA4kB,aAAA;AAAA,IAC5BpM,qBAGHA,qBAAqBxY,UAAWA,kBAAMzjB,QAAoBi8B,iBAAgBz7B,SAAUijB,MAAM,MAG1FsjB,qBAAwB,GAExBsB,SAAAA;AAAAA,EAAU,GAEb1hC,OAAAogC,oBAAApgC,OAAAs1B,kBAAAt1B,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAXD,QAAA2hC,cAAoBxkB,eAAe1c,EAWlC;AAAC,MAAAI;AAAAb,IAAA,CAAA,MAAA8/B,iBAAA9/B,SAAA2hC,eAAA3hC,EAAA,CAAA,MAAA6/B,eAKQh/B,KAAAA,MAAA;AAAA,QACJ,CAACg/B,eAAeC;AAAa;AAEjC,UAAA8B,kBAAA1hB,CAAAA,UAAA;AACEyhB,kBAAYzhB,MAAKpD,QAAA,MAAe5iB,OAAAsjB,oBAA2B,aAAaokB,eAAe,CAAC;AAAA,IAAC;AAG3F1nC,WAAAA,OAAAqjB,iBAAwB,aAAaqkB,eAAe,GAAC,MAExC1nC,OAAAsjB,oBAA2B,aAAaokB,eAAe;AAAA,EAAC,GACtE5hC,OAAA8/B,eAAA9/B,OAAA2hC,aAAA3hC,OAAA6/B,aAAA7/B,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAA,MAAAgB;AAAAhB,IAAA,CAAA,MAAA8/B,iBAAA9/B,SAAA6/B,eAAE7+B,KAAA,CAAC8+B,eAAeD,WAAW,GAAC7/B,OAAA8/B,eAAA9/B,OAAA6/B,aAAA7/B,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA,GAV/BqT,UAAUxS,IAUPG,EAA4B;AAAC;AC3dlC,MAAM6gC,gBAAgBpzB,OAAOiL,IAAG/K,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,6DAS1BkzB,MAAMrzB,OAAO2X,GAAG,EAACzX,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,oCAWVmzB,UAAU3yB,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAzC,WAAAhD,MAAA2b,SAAA1I,QAAA+B,WAAAjP;AAAAP,WAAAnE,SAIhC;AAAA,IAAA2B,UAAAA;AAAAA,IAAAhD;AAAAA,IAAA2b;AAAAA,IAAA1I;AAAAA,IAAAxR,OAAAsE;AAAAA,IAAA,GAAAiP;AAAAA,EAAAA,IAAgF3T,OAAKmE,OAAAnE,OAAAmE,OAAAxC,WAAAwC,OAAAxF,MAAAwF,OAAAmW,SAAAnW,OAAAyN,QAAAzN,OAAAwP,WAAAxP,OAAAO,OAAA/C,YAAAwC,EAAA,CAAA,GAAAxF,OAAAwF,EAAA,CAAA,GAAAmW,UAAAnW,EAAA,CAAA,GAAAyN,SAAAzN,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA;AAAtC,QAAA2b,YAAApb,OAAe/E,eAAf+E;AAAe,MAAAE;AAAAT,WAAA2b,aAChDlb,KAAApF,cAAcsgB,SAAS,GAAC3b,OAAA2b,WAAA3b,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAtC,QAAA/D,QAAcwE;AAAwB,MAElC,CAACjG,QAAQA,KAAIwB,WAAA,GAAa;AAAA,QAAA6E;AAAA,WAAAb,EAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KACrBoB,MAAA,oBAAA,UAAA,CAAA,CAAA,GAAKb,OAAAa,OAAAA,MAAAb,EAAA,CAAA,GAALa;AAAAA,EAAK;AAAA,MAAAA;AAAA,MAAAb,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAAxF,QAAAwF,EAAA,EAAA,MAAAmW,WAAAnW,UAAAyN,QAAA;AAAA,QAAAzM;AAAAhB,MAAA,EAAA,MAAAxC,aAAAwC,UAAAmW,WAAAnW,EAAA,EAAA,MAAAyN,UAMEzM,MAAAA,CAAArG,MAAA8P,MACR,oBAAC,KAAA,EAAcjN,UAAAA,WAA2B2Y,SAAiB1I,QACxD9S,kBAD2B8P,CAE9B,GACDzK,QAAAxC,WAAAwC,QAAAmW,SAAAnW,QAAAyN,QAAAzN,QAAAgB,OAAAA,MAAAhB,EAAA,EAAA,GAJAa,KAAArG,KAAIU,IAAK8F,GAIT,GAAChB,QAAAxC,WAAAwC,QAAAxF,MAAAwF,QAAAmW,SAAAnW,QAAAyN,QAAAzN,QAAAa;AAAAA,EAAA;AAAAA,SAAAb,EAAA,EAAA;AAAA,MAAAgB;AAAAhB,IAAA,EAAA,MAAA/D,SAAA+D,UAAAa,MALJG,yBAAC,QAAA,EAAU,IAAA,QAAc/E,OACtB4E,UAAAA,GAAAA,CAKH,GAASb,QAAA/D,OAAA+D,QAAAa,IAAAb,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAAA,MAAA4P;AAAA,SAAA5P,EAAA,EAAA,MAAAqP,OAAArP,UAAAwP,aAAAxP,EAAA,EAAA,MAAAgB,MAPX4O,yBAAC,iBAAsB,WAAA,cAAcJ,WAAgBH,KACnDrO,UAAAA,IAOF,GAAgBhB,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAAgB,IAAAhB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA,GARhB4P;AAQgB,CAEnB;AACDmyB,QAAQliC,cAAc;AC/Cf,MAAMmiC,cAAc3iC,0BACzB,2BACA,IACF;ACZA,SAAS4iC,aAAajpC,SAAsB;AAC1C,SACGC,oBAAoBD,OAAO,KAAKA,QAAQkpC,aAAa,eAAe,MAAM,UAC1EhpC,oBAAoBF,OAAO,KAAK,CAACA,QAAQgT;AAE9C;AAKO,SAASm2B,sBAAsBnlB,UAAwC;AAC5E,SAAOA,SAAStX,OAAOu8B,YAAY;AACrC;AAKO,SAASG,YAAYvV,aAA0B9yB,IAA2B;AAC/E,QAAMmvB,OAAiB,CAAA;AAEvB,MAAImX,IAAItmC;AAER,SAAOsmC,MAAMxT,eAAa;AACxB,UAAMwV,gBAAgBhC,EAAEgC;AAExB,QAAI,CAACA,cAAe,QAAOnZ;AAG3B,UAAM3a,QADW9S,MAAMoe,KAAKwoB,cAAcC,UAAU,EAC7B1iB,QAAQygB,CAAC;AAIhC,QAFAnX,KAAKqZ,QAAQh0B,KAAK,GAEd8zB,kBAAkBxV;AACpB,aAAO3D;AAGTmX,QAAIgC;AAAAA,EACN;AAEA,SAAOnZ;AACT;AAEA,MAAMsZ,aAAuB,CAAA;AAKtB,SAASC,cAAc5V,aAAiC7P,UAA+B;AAC5F,MAAI,CAAC6P,YAAa;AAElB,QAAM3xB,0BAAU+jB,QAAAA;AAEhB,aAAWllB,MAAMijB;AACf9hB,QAAIqkB,IAAIxlB,IAAIqoC,YAAYvV,aAAa9yB,EAAE,CAAC;AAG1C,QAAM2oC,QAAQA,CAACC,GAAgBC,MAAmB;AAChD,UAAMC,KAAK3nC,IAAIkkB,IAAIujB,CAAC,KAAKH,YACnBM,KAAK5nC,IAAIkkB,IAAIwjB,CAAC,KAAKJ,YAEnBn4B,MAAMlM,KAAK0J,IAAIg7B,GAAG7mC,QAAQ8mC,GAAG9mC,MAAM;AAGzC,aAASyO,IAAI,GAAGA,IAAIJ,KAAKI,KAAK,GAAG;AAC/B,YAAMs4B,SAASF,GAAGp4B,CAAC,KAAK,IAClBu4B,SAASF,GAAGr4B,CAAC,KAAK;AAExB,UAAIs4B,WAAWC;AACb,eAAOD,SAASC;AAAAA,IAEpB;AAEA,WAAO;AAAA,EACT;AAEAhmB,WAASimB,KAAKP,KAAK;AACrB;AC5DO,SAAAQ,kBAAArnC,OAAA;AAAA,QAAAmE,IAAAC,EAAA,EAAA,GAML;AAAA,IAAAggB;AAAAA,IAAAkjB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAgExnC;AAAK,MAAA0E;AAAAP,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAC3Bc,KAAA,CAAA,GAAEP,OAAAO,MAAAA,KAAAP,EAAA,CAAA;AAA5C,QAAAsjC,cAAoBjhB,OAAsB9hB,EAAE,GAC5C,CAAAgjC,aAAAC,eAAA,IAAuC1wB,WAAW,GAClD2wB,iBAAuBphB,OAAOkhB,WAAW,GACzC,CAAA3W,eAAA8W,gBAAA,IAA0C5wB,aAAiC;AAAC,MAAArS;AAAAT,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEzCgB,KAAAkjC,CAAAA,oBAAA;AACjCH,oBAAgBG,eAAe,GAC/BF,eAAc7lB,UAAW+lB,iBACzBD,iBAAiBJ,YAAW1lB,QAAS+lB,eAAe,SAAS;AAAA,EAAC,GAC/D3jC,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAJD,QAAA4jC,iBAAuBnjC;AAIjB,MAAAI;AAAAb,WAAAqjC,kBAGJxiC,KAAAA,CAAA7H,SAAAqiB,aAAA;AAAA,QAAA,CACOriB;AAAO,aAAAgb;AAIgD,QAFxDsvB,YAAW1lB,QAAAgC,QAAiB5mB,OAAO,MAAC,OACtCsqC,YAAW1lB,QAAA8B,KAAc1mB,OAAO,GAChCypC,cAAcY,eAAczlB,SAAU0lB,YAAW1lB,OAAQ,IAGvDvC,UAAQ;AACV,YAAAwoB,gBAAsBP,YAAW1lB,QAAAgC,QAAiB5mB,OAAO;AAEzD4qC,qBAAeC,aAAa;AAAA,IAAC;AAAA,WAAA,MAAA;AAI7B,YAAAlkB,MAAY2jB,YAAW1lB,QAAAgC,QAAiB5mB,OAAO;AAE3C2mB,YAAG,MACL2jB,YAAW1lB,QAAAiC,OAAgBF,MAAM;AAAA,IAAC;AAAA,EAAA,GAGvC3f,OAAAqjC,gBAAArjC,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAtBH,QAAA8jC,QAAcjjC;AAwBb,MAAAG;AAAAhB,IAAA,CAAA,MAAAigB,aAAAjgB,SAAAmjC,iBAGCniC,KAAAkf,CAAAA,UAAA;AAAA,QAEMA,MAAKvlB,QAAS,OAAK;AACjBwoC,uBACFA,cAAazG,MAAAA;AAAQ;AAAA,IAAA;AAAA,QAOrBxc,MAAKvlB,QAAS,QAAM;AACtBulB,YAAKsc,eAAAA,GACLtc,MAAKuc,gBAAAA;AAGL,YAAA1iC,KAD0BooC,sBAAsBmB,YAAW1lB,OAAQ,EACvC,CAAA;AAAG,UAAA,CAE1B7jB;AAAE;AAEP,YAAAgqC,eAAqBT,YAAW1lB,QAAAgC,QAAiB7lB,EAAE;AAEnD6pC,qBAAeG,YAAY;AAAC;AAAA,IAAA;AAAA,QAM1B7jB,MAAKvlB,QAAS,OAAK;AACrBulB,YAAKsc,eAAAA,GACLtc,MAAKuc,gBAAAA;AAEL,YAAAuH,sBAA0B7B,sBAAsBmB,YAAW1lB,OAAQ,GACnEqmB,OAAWC,oBAAkBA,oBAAiBloC,SAAA,CAAW;AAAC,UAAA,CAErDjC;AAAE;AAEP,YAAAoqC,iBAAqBb,YAAW1lB,QAAAgC,QAAiB7lB,IAAE;AAEnD6pC,qBAAeG,cAAY;AAAC;AAAA,IAAA;AAAA,QAK1B7jB,MAAKvlB,QAAS,WAAS;AACzBulB,YAAKsc,eAAAA,GACLtc,MAAKuc,gBAAAA;AAEL,YAAA2H,sBAA0BjC,sBAAsBmB,YAAW1lB,OAAQ,GACnEymB,eAAqBH,oBAAiBloC;AAAO,UAEzCqoC,iBAAY;AAAM;AAEtB,YAAAC,iBAAuBhB,YAAW1lB,QAAS6lB,eAAc7lB,OAAA;AAEzD,UAAA2mB,eAAmBL,oBAAiBtkB,QAAS0kB,cAAc;AAE3DC,sBAAgBA,eAAY,IAAOF,gBAAgBA;AAEnD,YAAAG,OAAWN,oBAAkBK,YAAY,GACzCE,iBAAqBnB,YAAW1lB,QAAAgC,QAAiB7lB,IAAE;AAEnD6pC,qBAAeG,cAAY;AAAC;AAAA,IAAA;AAAA,QAK1B7jB,MAAKvlB,QAAS,aAAW;AAC3BulB,YAAKsc,eAAAA,GACLtc,MAAKuc,gBAAAA;AAEL,YAAAiI,sBAA0BvC,sBAAsBmB,YAAW1lB,OAAQ,GACnE+mB,iBAAqBT,oBAAiBloC;AAAO,UAEzCqoC,mBAAY;AAAM;AAEtB,YAAAO,mBAAuBtB,YAAW1lB,QAAS6lB,eAAc7lB,OAAA;AAEzD,UAAAinB,iBAAmBX,oBAAiBtkB,QAAS0kB,gBAAc;AAE3DC,wBAAgBA,iBAAY,KAAQF;AAEpC,YAAAS,OAAWZ,oBAAkBK,cAAY,GACzCQ,iBAAqBzB,YAAW1lB,QAAAgC,QAAiB7lB,IAAE;AAEnD6pC,qBAAeG,cAAY;AAAC;AAAA,IAAA;AAK1B9jB,iBACFA,UAAUC,KAAK;AAAA,EAAC,GAEnBlgB,OAAAigB,WAAAjgB,OAAAmjC,eAAAnjC,OAAAgB,MAAAA,KAAAhB,EAAA,CAAA;AA9FH,QAAAmgB,gBAAsBnf;AAgGrB,MAAA4O;AAAA5P,IAAA,CAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGCmQ,KAAAyQ,CAAAA,YAAA;AACE,UAAA2kB,YAAgB9kB,QAAK+kB,eACrBC,iBAAqB5B,YAAW1lB,QAAAgC,QAAiB5mB,SAAO;AAExD4qC,mBAAeG,cAAY;AAAA,EAAC,GAC7B/jC,OAAA4P,MAAAA,KAAA5P,EAAA,CAAA;AANH,QAAAmlC,uBAA6Bv1B;AAQ5B,MAAA0D;AAAAtT,WAAAqjC,kBAEwC/vB,KAAAA,MAAA;AAMvCswB,qBAAiB,GACjBP,eAAczlB,SAAA8e,MAAAA;AAAAA,EAAA,GACf18B,OAAAqjC,gBAAArjC,OAAAsT,MAAAA,KAAAtT,EAAA,CAAA;AARD,QAAAolC,uBAA6B9xB;AAQO,MAAAC,IAAAC;AAAAxT,IAAA,EAAA,MAAAujC,eAAAvjC,UAAAqjC,kBAAArjC,EAAA,EAAA,MAAAojC,eAG1B7vB,KAAAA,MAAA;AAAA,QAAA,CACH8vB,eAAczlB;AAAA;AAEnB,UAAAynB,QAAclyB,sBAAA,MAAA;AAAA,UACRowB,gBAAW,IAAO;AAAA,YAChBH,gBAAgB,SAAO;AAEzB,gBAAAkC,OAD0BnD,sBAAsBmB,YAAW1lB,OAAQ,EACvC,CAAA;AAAG,cAE3B7jB,MAAE;AACJ,kBAAAwrC,iBAAqBjC,YAAW1lB,QAAAgC,QAAiB7lB,IAAE;AAEnD6pC,2BAAeG,cAAY;AAAA,UAAC;AAAA,QAAA;AAAA,YAI5BX,gBAAgB,QAAM;AACxB,gBAAAoC,sBAA0BrD,sBAAsBmB,YAAW1lB,OAAQ,GACnE6nB,OAAWvB,oBAAkBA,oBAAiBloC,SAAA,CAAW;AAAC,cAEtDjC,MAAE;AACJ,kBAAA2rC,iBAAqBpC,YAAW1lB,QAAAgC,QAAiB7lB,IAAE;AAEnD6pC,2BAAeG,cAAY;AAAA,UAAC;AAAA,QAAA;AAAA;AAAA,MAAA;AASlC/qC,OAFgBsqC,YAAW1lB,QAAS2lB,WAAW,KAAA,OAExC7G,MAAAA;AAAAA,IAAA,CACR;AAAC,WAAA,MAEWtpB,qBAAqBiyB,KAAK;AAAA,EAAC,GACvC7xB,MAAC+vB,aAAaF,gBAAgBO,gBAAgBR,WAAW,GAACpjC,QAAAujC,aAAAvjC,QAAAqjC,gBAAArjC,QAAAojC,aAAApjC,QAAAuT,IAAAvT,QAAAwT,OAAAD,KAAAvT,EAAA,EAAA,GAAAwT,KAAAxT,EAAA,EAAA,IApC7DqT,UAAUE,IAoCPC,EAA0D;AAAC,MAAAG;AAAA,SAAA3T,EAAA,EAAA,MAAA4sB,iBAAA5sB,EAAA,EAAA,MAAAujC,eAAAvjC,EAAA,EAAA,MAAAolC,wBAAAplC,EAAA,EAAA,MAAAmgB,iBAAAngB,UAAA8jC,SAEvDnwB,KAAA;AAAA,IAAAiZ;AAAAA,IAAA2W;AAAAA,IAAA4B;AAAAA,IAAAC;AAAAA,IAAAjlB;AAAAA,IAAA2jB;AAAAA,EAAAA,GAON9jC,QAAA4sB,eAAA5sB,QAAAujC,aAAAvjC,QAAAolC,sBAAAplC,QAAAmgB,eAAAngB,QAAA8jC,OAAA9jC,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA,GAPM2T;AAON;AAhNI,SAAAK,UAAA;AAAA;ACaP,MAAM2xB,aAAal3B,OAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,gCAUjBg3B,OAAOx2B,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAA4lC,cAAAltC,UAAAmtC,gBAAAC,UAAAC,aAAAC,cAAAhmB,WAAAkjB,eAAA+C,iBAAA12B,WAAAjP,IAAAE;AAAA,MAAAT,SAAAnE,OAAA;AAI7B,UAAA;AAAA,MAAAlD,UAAAkI;AAAAA,MAAAslC;AAAAA,MAAAC;AAAAA,MAAAN,gBAAA9kC;AAAAA,MAAA+kC,UAAAn2B;AAAAA,MAAAo2B,aAAA1yB;AAAAA,MAAA2yB,cAAA1yB;AAAAA,MAAA0M,WAAAzM;AAAAA,MAAA2vB,eAAAxvB;AAAAA,MAAAwC,SAAAvC;AAAAA,MAAAsyB,iBAAAryB;AAAAA,MAAAuvB,aAAAtvB;AAAAA,MAAA7X,OAAA8X;AAAAA,MAAA,GAAAE;AAAAA,IAAAA,IAiBIpY;AAjBJlD,eAAAkI,KAAAilC,iBAAA9kC,KAAA+kC,WAAAn2B,KAAAo2B,cAAA1yB,KAAA2yB,eAAA1yB,KAAA0M,YAAAzM,KAAA2vB,gBAAAxvB,KAAApT,KAAAqT,KAAAsyB,kBAAAryB,MAAAgyB,eAAA/xB,MAAArT,KAAAsT,MAAAvE,YAAAyE,KAiBSjU,OAAAnE,OAAAmE,OAAA6lC,cAAA7lC,OAAArH,UAAAqH,OAAA8lC,gBAAA9lC,OAAA+lC,UAAA/lC,OAAAgmC,aAAAhmC,OAAAimC,cAAAjmC,OAAAigB,WAAAjgB,OAAAmjC,eAAAnjC,OAAAkmC,iBAAAlmC,QAAAwP,WAAAxP,QAAAO,IAAAP,QAAAS;AAAAA,EAAA;AAAAolC,mBAAA7lC,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAA8lC,iBAAA9lC,EAAA,CAAA,GAAA+lC,WAAA/lC,EAAA,CAAA,GAAAgmC,cAAAhmC,EAAA,CAAA,GAAAimC,eAAAjmC,EAAA,CAAA,GAAAigB,YAAAjgB,EAAA,CAAA,GAAAmjC,gBAAAnjC,EAAA,CAAA,GAAAkmC,kBAAAlmC,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA;AALP,QAAAmW,UAAA5V,OAAW/E,aAAX+E,IAGAtE,QAAAwE,OAASjF,aAATiF,IAGF2iC,cACEyC,iBAAkBhqC,MAAKsqC,cAAe,WAAatqC,MAAKuqC,aAAc,iBAExE/2B,MAAYgT,OAAA,IAAkC;AAAC,MAAAxhB;AAAAb,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEiCoB,KAAAA,MAAMwO,IAAGuO,SAAQ5d,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAAjGsiB,oBAAkEL,cAAcphB,EAAiB;AAEjG,QAAA;AAAA,IAAA0qB;AAAAA,EAAAA,IAAqBY,SAAAA;AAAU,MAAAnrB;AAAAhB,IAAA,EAAA,MAAAigB,aAAAjgB,UAAAmjC,iBAAAnjC,EAAA,EAAA,MAAAojC,eASTpiC,KAAA;AAAA,IAAAif;AAAAA,IAAAkjB;AAAAA,IAAAC;AAAAA,IAAAC,gBAAwDh0B;AAAAA,EAAAA,GAAIrP,QAAAigB,WAAAjgB,QAAAmjC,eAAAnjC,QAAAojC,aAAApjC,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAPlF,QAAA;AAAA,IAAA4sB;AAAAA,IAAA2W;AAAAA,IAAA4B;AAAAA,IAAAC;AAAAA,IAAAjlB;AAAAA,IAAA2jB;AAAAA,EAAAA,IAOIZ,kBAAkBliC,EAA4D,GAElFqlC,uBAA6BhkB,OAAA,IAAgC;AAAC,MAAAzS;AAAA5P,YAAAkmC,mBAE5Dt2B,KAAA7V,CAAAA,OAAA;AAEMssC,yBAAoBzoB,YAKtByoB,qBAAoBzoB,WACpByoB,qBAAoBzoB,UAAA,OAGtBvO,IAAGuO,UAAW7jB,IAGVsV,IAAGuO,WAAYsoB,oBACjBG,qBAAoBzoB,UAAWsoB,gBAAgB72B,IAAGuO,OAAQ;AAAA,EAAC,GAE9D5d,QAAAkmC,iBAAAlmC,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAlBH,QAAAsmC,kBAAwB12B;AAoBvB,MAAA0D,IAAAC;AAAAvT,IAAA,EAAA,MAAAujC,eAAAvjC,UAAAimC,gBAGS3yB,KAAAA,MAAA;AACJ2yB,oBAAcA,aAAa1C,WAAW;AAAA,EAAC,GAC1ChwB,KAAA,CAACgwB,aAAa0C,YAAY,GAACjmC,QAAAujC,aAAAvjC,QAAAimC,cAAAjmC,QAAAsT,IAAAtT,QAAAuT,OAAAD,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,IAF9BqT,UAAUC,IAEPC,EAA2B;AAAC,MAAAC;AAAAxT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGoB+T,KAAAA,MAAA,CAAOnE,IAAGuO,OAAA,GAAS5d,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA,GAAtEyc,qBAAqB8O,cAAcua,gBAAgBtyB,EAAmB;AAAC,MAAAG;AAAA3T,IAAA,EAAA,MAAAurB,cAAAvrB,UAAA+lC,YAKnEpyB,KAAAuM,CAAAA,UAAA;AACOqL,kBAEDrL,MAAKvlB,QAAS,aAChBulB,MAAKuc,gBAAAA,GACDsJ,YAAUA;EAAU,GAE3B/lC,QAAAurB,YAAAvrB,QAAA+lC,UAAA/lC,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA,GATLggB,iBACErM,EAWF;AAAC,MAAAC;AAAA5T,IAAA,EAAA,MAAA4sB,iBAAA5sB,EAAA,EAAA,MAAAmlC,wBAAAnlC,EAAA,EAAA,MAAAolC,wBAAAplC,EAAA,EAAA,MAAA8jC,SAAA9jC,EAAA,EAAA,MAAA8lC,kBAAA9lC,EAAA,EAAA,MAAA+lC,YAAA/lC,EAAA,EAAA,MAAAgmC,eAAAhmC,UAAAkmC,mBAIItyB,KAAA;AAAA,IAAAlT,SAAA;AAAA,IAAAksB;AAAAA,IAAAkX;AAAAA,IAAAgC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAO,kBAOmBpB;AAAAA,IAAoBqB,kBACpBpB;AAAAA,IAAoBc;AAAAA,EAAAA,GAEvClmC,QAAA4sB,eAAA5sB,QAAAmlC,sBAAAnlC,QAAAolC,sBAAAplC,QAAA8jC,OAAA9jC,QAAA8lC,gBAAA9lC,QAAA+lC,UAAA/lC,QAAAgmC,aAAAhmC,QAAAkmC,iBAAAlmC,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAZL,QAAAvF,QAEKmZ;AAqBJ,MAAAC;AAAA7T,IAAA,EAAA,MAAArH,YAAAqH,UAAA/D,SAaK4X,MAAA,oBAAC,OAAA,EAAa5X,OAAQtD,SAAAA,CAAS,GAAQqH,QAAArH,UAAAqH,QAAA/D,OAAA+D,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAAA,MAAA8T;AAAA9T,IAAA,EAAA,MAAAmgB,iBAAAngB,EAAA,EAAA,MAAAsmC,mBAAAtmC,EAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAAwP,aAAAxP,UAAA6T,OATzCC,0BAAC,YAAA,EACS,WAAA,QAAM,GACVtE,WACO2Q,WAAAA,eACFhK,SACJmwB,sBACA,MAAA,QACK,UAAA,IAEVzyB,UAAAA,IAAAA,CACF,GAAa7T,QAAAmgB,eAAAngB,QAAAsmC,iBAAAtmC,QAAAmW,SAAAnW,QAAAwP,WAAAxP,QAAA6T,KAAA7T,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAAA,MAAA+T;AAAA,SAAA/T,EAAA,EAAA,MAAA8T,OAAA9T,UAAAvF,SAXfsZ,MAAA,oBAAA,YAAA,UAAA,EAA6BtZ,OAC3BqZ,UAAAA,IAAAA,CAWF,GAAuB9T,QAAA8T,KAAA9T,QAAAvF,OAAAuF,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA,GAZvB+T;AAYuB,CAE1B;AACD6xB,KAAK/lC,cAAc;ACtKZ,MAAM4mC,cAAch4B,OAAOi4B,GAAE/3B,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA;AAMpC63B,YAAY5mC,cAAc;ACGnB,SAAS8mC,sBAA8C;AAC5D,SAAOr7B;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAqBT;AAEO,SAASs7B,qBACd/qC,OACwB;AACxB,QAAM;AAAA,IAAC6P;AAAAA,EAAAA,IAAS7P,OACV;AAAA,IAACoJ;AAAAA,IAAOhL;AAAAA,EAAAA,IAASiC,YAAYL,MAAMD,KAAK,GACxC0E,OAAO2E,MAAMkX,WAAWzQ,KAAK;AAEnC,SAAOJ;AAAAA,MACH+M,gBAAgBpT,OAAO3E,KAAKuL,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAShCwM,gBAAgBpT,OAAO3E,KAAK0L,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnCqM,gBAAgBpT,OAAO3E,KAAKka,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKpCnC,gBAAgBpT,OAAO3E,KAAK+a,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjChD,gBAAgBpT,OAAO3E,KAAKkM,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,gBAIpC6L,gBAAgBpT,OAAO3E,KAAKka,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAU1CnC,gBAAgBpT,OAAO3E,KAAK0L,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnCqM,gBAAgBpT,OAAO3E,KAAKka,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpCnC,gBAAgBpT,OAAO3E,KAAK+a,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOjChD,gBAAgBpT,OAAO3E,KAAKkM,OAAO,CAAC;AAAA;AAAA;AAAA,gBAGpC6L,gBAAgBpT,OAAO3E,KAAKka,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO9CvgB,OAAOnC,MAAMqJ,IAAI;AAAA;AAEvB;ACzGO,MAAM0lC,aAAap4B,uBAAOoH,GAAG,EAAClH,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,EACnCpB,uBACAm5B,qBACAC,oBAAoB;AAEtBC,WAAWhnC,cAAc;ACTlB,SAAAinC,UAAA;AACL,QAAArsC,QAAc0F,WAAA6hC,WAAsB;AAAC,MAAA,CAEhCvnC;AAAK,UAAA,IAAAsB,MACQ,kCAAkC;AAAA,MAMhD,CAAC2tB,SAASjvB,KAAK,KAAKA,MAAKiG,YAAA;AAAc,UAAA,IAAA3E,MACzB,gDAAgD;AAAA,SAG3DtB;AAAK;ACsBP,SAAAssC,UAAAlrC,OAAA;AAAA,QAAAmE,IAAAC,EAAA,EAAA;AAAA,MAAA2a,eAAAjiB,UAAAquC,WAAAvG,SAAA7J,SAAApnB,WAAAjP,IAAAE,IAAAI,IAAAG,IAAA4O,IAAA0D,IAAA3I;AAAA3K,WAAAnE,SAIL;AAAA,IAAAsW,IAAA5R;AAAAA,IAAA5H;AAAAA,IAAA6E,UAAAiD;AAAAA,IAAA0Y,MAAAyB;AAAAA,IAAAqsB,MAAAD;AAAAA,IAAAvG;AAAAA,IAAAtqB,SAAAtV;AAAAA,IAAA+1B;AAAAA,IAAAnpB,QAAAzM;AAAAA,IAAA/E,OAAA2T;AAAAA,IAAAjF;AAAAA,IAAArK,MAAAgT;AAAAA,IAAA,GAAA9D;AAAAA,EAAAA,IAcI3T,OAAKmE,OAAAnE,OAAAmE,OAAA4a,eAAA5a,OAAArH,UAAAqH,OAAAgnC,WAAAhnC,OAAAygC,SAAAzgC,OAAA42B,SAAA52B,OAAAwP,WAAAxP,OAAAO,IAAAP,OAAAS,IAAAT,OAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAA2K,SAAAiQ,gBAAA5a,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAgnC,YAAAhnC,EAAA,CAAA,GAAAygC,UAAAzgC,EAAA,CAAA,GAAA42B,UAAA52B,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,GAAAgB,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,GAAAsT,KAAAtT,EAAA,EAAA,GAAA2K,OAAA3K,EAAA,EAAA;AAbP,QAAAmS,KAAA5R,OAAa/E,SAAR,WAAL+E,IAEA/C,YAAAiD,OAAYjF,aAAZiF,IAIA0V,UAAAtV,OAAWrF,aAAXqF,IAEA4M,SAAAzM,OAAUxF,aAAVwF,IACA/E,QAAA2T,OAASpU,aAAToU,IAEAtP,OAAAgT,OAAgB9X,SAAT,YAAP8X,IAGF2zB,OAAaH,WACb;AAAA,IAAA1mC;AAAAA,EAAAA,IAAiBa,gBACjB;AAAA,IAAA2rB;AAAAA,IAAAkX;AAAAA,IAAAgC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAO,kBAAAW;AAAAA,IAAAhB;AAAAA,EAAAA,IAQIe,MACJV,mBAAyBW,qBAAqBD,KAAIV,kBAClD,CAAA1Z,aAAAsa,cAAA,IAAsCr0B,aAAwD,GAC9F,CAAAuiB,MAAA+R,OAAA,IAAwBt0B,WAAc,GACtC,CAAAswB,aAAAiE,cAAA,IAAsCv0B,aAAsC,GAC5Ew0B,SAAe3hC,CAAAA,CAAQinB,iBAAkBA,kBAAkBC,aAC3D,CAAA0a,YAAAC,aAAA,IAAoC10B,WAAc;AAAC,MAAAS;AAAAvT,YAAAumC,oBAGjDhzB,KAAA2M,CAAAA,UAAA;AACEsnB,oBAAmB,GACnBjB,iBAAiBrmB,KAAK,GACtBknB,UAAY;AAAA,EAAC,GACdpnC,QAAAumC,kBAAAvmC,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA;AALH,QAAAihC,mBAAyB1tB;AAOxB,MAAAC;AAAAxT,YAAA6sB,eAGCrZ,KAAA6M,CAAAA,YAAA;AACMH,YAAKvlB,QAAS,gBAChBulB,QAAKuc,gBAAAA,GAEL2K,UAAa,GAEbj0B,sBAAA,MAAA;AACE0Z,mBAAW6P,MAAAA;AAAAA,IAAA,CACZ;AAAA,EAAC,GAEL18B,QAAA6sB,aAAA7sB,QAAAwT,MAAAA,KAAAxT,EAAA,EAAA;AAXH,QAAAynC,oBAA0Bj0B;AAazB,MAAAG;AAAA3T,YAAAygC,WAGC9sB,KAAA+zB,CAAAA,YAAA;AACEjH,cAAUvgB,OAAK,GAEfmnB,eAAe,OAAO,GACtBD,UAAY;AAAA,EAAC,GACdpnC,QAAAygC,SAAAzgC,QAAA2T,MAAAA,KAAA3T,EAAA,EAAA;AANH,QAAA0gC,cAAoB/sB;AAQnB,MAAAC;AAAA5T,YAAAgmC,eAEwCpyB,KAAAA,MAAA;AACvCwzB,cAAa,GACbpB,cAAAA;AAAAA,EAAW,GACZhmC,QAAAgmC,aAAAhmC,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AAHD,QAAA2nC,uBAA6B/zB;AAGZ,MAAAC;AAAA7T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEwBoU,MAAAA,MAAM2zB,gBAAkB,GAACxnC,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AAAlE,QAAA4nC,uBAA6B/zB;AAA0C,MAAAC,KAAAC;AAAA/T,IAAA,EAAA,MAAA8jC,SAAA9jC,UAAA6sB,eAG7D/Y,MAAAA,MAAMgwB,MAAMjX,WAAW,GAAG9Y,MAAA,CAAC+vB,OAAOjX,WAAW,GAAC7sB,QAAA8jC,OAAA9jC,QAAA6sB,aAAA7sB,QAAA8T,KAAA9T,QAAA+T,QAAAD,MAAA9T,EAAA,EAAA,GAAA+T,MAAA/T,EAAA,EAAA,IAAxDqT,UAAUS,KAA0BC,GAAoB;AAAC,MAAAE,KAAAmC;AAAApW,YAAAsnC,UAG/CrzB,MAAAA,MAAA;AAEHqzB,cAAQF,UAAa;AAAA,EAAC,GAC1BhxB,OAACkxB,MAAM,GAACtnC,QAAAsnC,QAAAtnC,QAAAiU,KAAAjU,QAAAoW,QAAAnC,MAAAjU,EAAA,EAAA,GAAAoW,MAAApW,EAAA,EAAA,IAHXqT,UAAUY,KAGPmC,GAAQ;AAAC,MAAAC,KAAAC;AAAAtW,YAAAq1B,QAGFhf,MAAAA,MAAA;AAEHgf,YAAMmS,gBAAmB;AAAA,EAAC,GAC9BlxB,OAAC+e,IAAI,GAACr1B,QAAAq1B,MAAAr1B,QAAAqW,KAAArW,QAAAsW,QAAAD,MAAArW,EAAA,EAAA,GAAAsW,MAAAtW,EAAA,EAAA,IAHTqT,UAAUgD,KAGPC,GAAM;AAAC,MAAAC,KAAAC;AAAAxW,YAAAojC,eAGA7sB,MAAAA,MAAA;AAAA,QAAA,CACH6sB;AAAW;AAGhB,UAAAiC,QAAclyB,4BAA4Bk0B,eAAc,IAAK,CAAC;AAAC,WAAA,MAElDj0B,qBAAqBiyB,KAAK;AAAA,EAAC,GACvC7uB,OAAC4sB,WAAW,GAACpjC,QAAAojC,aAAApjC,QAAAuW,KAAAvW,QAAAwW,QAAAD,MAAAvW,EAAA,EAAA,GAAAwW,MAAAxW,EAAA,EAAA,IAPhBqT,UAAUkD,KAOPC,GAAa;AAAC,MAAAC;AAAAzW,IAAA,EAAA,MAAArH,YAAAqH,EAAA,EAAA,MAAA2nC,wBAAA3nC,EAAA,EAAA,MAAAynC,qBAAAznC,EAAA,EAAA,MAAAgnC,aAAAhnC,EAAA,EAAA,MAAA8lC,kBAAA9lC,EAAA,EAAA,MAAA+lC,YAAA/lC,EAAA,EAAA,MAAAkmC,mBAAAlmC,UAAAojC,eAGf3sB,MAAA,oBAAC,QAAI,GACCuwB,WACYlB,gBACNC,UACG4B,aAAAA,sBACFF,8BACGG,cAAAA,sBACG1B,iBACJ9C,uBAGf,GAAOpjC,QAAArH,UAAAqH,QAAA2nC,sBAAA3nC,QAAAynC,mBAAAznC,QAAAgnC,WAAAhnC,QAAA8lC,gBAAA9lC,QAAA+lC,UAAA/lC,QAAAkmC,iBAAAlmC,QAAAojC,aAAApjC,QAAAyW,OAAAA,MAAAzW,EAAA,EAAA;AAZT,QAAA6nC,YACEpxB;AAYD,MAAAC;AAAA1W,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEiCiX,MAAAoxB,CAAAA,YAAA;AAChC,UAAAhrB,SAAeoD,QAAK+kB;AAAc,QAE9BvlC,SAAAktB,kBAA2B9P,UAI3BoD,QAAKvlB,QAAS,cAAY;AAC5B0sC,qBAAe,OAAO,GACtBD,UAAY,GACZI,gBAAkB;AAAC;AAAA,IAAA;AAAA,EAAA,GAItBxnC,QAAA0W,OAAAA,MAAA1W,EAAA,EAAA;AAdD,QAAAmgB,gBAAsBzJ,KAuBFC,MAAAxE,OAAO,WAAWo1B,aAAU/rC,QAC5Bob,MAAAzE,OAAO,WAAWo1B,aAAU/rC,QAC3Bqb,OAAC0wB,cAAcD,SAAS,KAAE9rC;AAAY,MAAAsb;AAAA9W,YAAAyN,UAC5CqJ,MAAAzb,cAAcoS,MAAM,GAACzN,QAAAyN,QAAAzN,QAAA8W,OAAAA,MAAA9W,EAAA,EAAA;AAQxB,QAAA+W,MAAA5E,OAAO,WAAW,WAAQ3W;AAAY,MAAAwb;AAAAhX,IAAA,EAAA,MAAA4a,iBAAA5a,UAAAxC,aAGzCwZ,MAAA4D,iBACC,qBAAC,MAAA,EAAWpd,MAAAA,WACT2X,UAAAA;AAAAA,IAAAA,eAAeyF,aAAa,KAAKA;AAAAA,IACjCpI,mBAAmBoI,aAAa,KAAK,oBAAC,eAAA,CAAA,CAAa;AAAA,EAAA,EAAA,CACtD,GACD5a,QAAA4a,eAAA5a,QAAAxC,WAAAwC,QAAAgX,OAAAA,MAAAhX,EAAA,EAAA;AAAA,MAAAiX;AAAAjX,IAAA,EAAA,MAAAxC,aAAAwC,UAAA2K,QAEDsM,MAAA,oBAAC,OAAU,MAAA,GACT,8BAAC,MAAA,EAAWzZ,iBAAuB,cAAA,YAAkB,QAAA,UAClDmN,gBACH,EAAA,CACF,GAAM3K,QAAAxC,WAAAwC,QAAA2K,MAAA3K,QAAAiX,OAAAA,MAAAjX,EAAA,EAAA;AAAA,MAAAkX;AAAAlX,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAGJyX,MAAA,oBAAC,kBAAA,CAAA,CAAgB,GAAGlX,QAAAkX,OAAAA,MAAAlX,EAAA,EAAA;AAAA,MAAAmX;AAAAnX,YAAAxC,aADtB2Z,MAAA,oBAAC,MAAA,EAAW3Z,MAAAA,WACV0Z,UAAAA,KACF,GAAOlX,QAAAxC,WAAAwC,QAAAmX,OAAAA,MAAAnX,EAAA,EAAA;AAAA,MAAAoX;AAAApX,IAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAA/D,SAAA+D,EAAA,EAAA,MAAAgX,OAAAhX,EAAA,EAAA,MAAAiX,OAAAjX,UAAAmX,OAhBTC,MAAA,qBAAC,MAAA,EAAUnb,YAAgBka,SACxBa,UAAAA;AAAAA,IAAAA;AAAAA,IAODC;AAAAA,IAMAE;AAAAA,EAAAA,EAAAA,CAGF,GAAOnX,QAAAmW,SAAAnW,QAAA/D,OAAA+D,QAAAgX,KAAAhX,QAAAiX,KAAAjX,QAAAmX,KAAAnX,QAAAoX,OAAAA,MAAApX,EAAA,EAAA;AAAA,MAAA41B;AAAA51B,YAAAmS,MAAAnS,EAAA,EAAA,MAAA0gC,eAAA1gC,EAAA,EAAA,MAAAihC,oBAAAjhC,UAAAwP,aAAAxP,EAAA,EAAA,MAAAI,UAAAJ,EAAA,EAAA,MAAA2W,OAAA3W,EAAA,EAAA,MAAA4W,OAAA5W,UAAA6W,OAAA7W,EAAA,EAAA,MAAA8W,OAAA9W,EAAA,EAAA,MAAA+W,OAAA/W,UAAAoX,OAAApX,EAAA,EAAA,MAAAM,QAnCTs1B,0BAAC,YAAA,EACUzjB,WAAAA,IACD,WAAA,aACKA,aAAAA,IAAE,GACX3C,WACU,gBAAAmH,KACA,gBAAAC,KACC,iBAAAC,KACN,SAAAC,KACFxW,OAAAA,MACEF,SAAAA,QACAsgC,sBACEvgB,WAAAA,eACG8gB,cAAAA,kBACTkG,qBACK,UAAA,IACJ,MAAApwB,KAENK,UAAAA,IAAAA,CAkBF,GAAapX,QAAAmS,IAAAnS,QAAA0gC,aAAA1gC,QAAAihC,kBAAAjhC,QAAAwP,WAAAxP,QAAAI,QAAAJ,QAAA2W,KAAA3W,QAAA4W,KAAA5W,QAAA6W,KAAA7W,QAAA8W,KAAA9W,QAAA+W,KAAA/W,QAAAoX,KAAApX,QAAAM,MAAAN,QAAA41B,OAAAA,MAAA51B,EAAA,EAAA;AAAA,MAAA81B;AAAA,SAAA91B,EAAA,EAAA,MAAA6nC,aAAA7nC,EAAA,EAAA,MAAAq1B,QAAAr1B,EAAA,EAAA,MAAA42B,WAAA52B,UAAA41B,OArCfE,MAAA,oBAAC,WAAO,GAAKc,SAAkBiR,SAAAA,WAAmB,WAAA,sBAA2BxS,MAC3EO,UAAAA,IAAAA,CAqCF,GAAU51B,QAAA6nC,WAAA7nC,QAAAq1B,MAAAr1B,QAAA42B,SAAA52B,QAAA41B,KAAA51B,QAAA81B,OAAAA,MAAA91B,EAAA,EAAA,GAtCV81B;AAsCU;AAIdiR,UAAUlnC,cAAc;AClLjB,MAAMkoC,WAAW34B,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAA2a,eAAAC,oBAAAliB,UAAAqT,UAAAg8B,SAAAvH,SAAAv1B,eAAAC,aAAAF,cAAAD,YAAAiL,UAAAC,UAAAsE,SAAAhL,WAAAy4B,cAAA1nC,IAAAE,IAAAI,IAAAG,IAAA4O,IAAA0D,IAAA3I;AAAA3K,WAAAnE,SAKjC;AAAA,IAAAsW,IAAA5R;AAAAA,IAAA5H;AAAAA,IAAAqT;AAAAA,IAAAxO,UAAAiD;AAAAA,IAAAunC;AAAAA,IAAA7uB,MAAAyB;AAAAA,IAAAW,WAAAV;AAAAA,IAAA4lB;AAAAA,IAAAtqB,SAAAtV;AAAAA,IAAAoV;AAAAA,IAAAC;AAAAA,IAAAlL;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAqP;AAAAA,IAAA/M,QAAAzM;AAAAA,IAAAqa,UAAA4sB;AAAAA,IAAAhsC,OAAA2T;AAAAA,IAAAjF;AAAAA,IAAArK,MAAAgT;AAAAA,IAAA,GAAA9D;AAAAA,EAAAA,IAuBI3T,OAAKmE,OAAAnE,OAAAmE,OAAA4a,eAAA5a,OAAA6a,oBAAA7a,OAAArH,UAAAqH,OAAAgM,UAAAhM,OAAAgoC,SAAAhoC,OAAAygC,SAAAzgC,OAAAkL,eAAAlL,OAAAmL,aAAAnL,OAAAiL,cAAAjL,QAAAgL,YAAAhL,QAAAiW,UAAAjW,QAAAkW,UAAAlW,QAAAwa,SAAAxa,QAAAwP,WAAAxP,QAAAioC,cAAAjoC,QAAAO,IAAAP,QAAAS,IAAAT,QAAAa,IAAAb,QAAAgB,IAAAhB,QAAA4P,IAAA5P,QAAAsT,IAAAtT,QAAA2K,SAAAiQ,gBAAA5a,EAAA,CAAA,GAAA6a,qBAAA7a,EAAA,CAAA,GAAArH,WAAAqH,EAAA,CAAA,GAAAgM,WAAAhM,EAAA,CAAA,GAAAgoC,UAAAhoC,EAAA,CAAA,GAAAygC,UAAAzgC,EAAA,CAAA,GAAAkL,gBAAAlL,EAAA,CAAA,GAAAmL,cAAAnL,EAAA,CAAA,GAAAiL,eAAAjL,EAAA,CAAA,GAAAgL,aAAAhL,EAAA,EAAA,GAAAiW,WAAAjW,EAAA,EAAA,GAAAkW,WAAAlW,EAAA,EAAA,GAAAwa,UAAAxa,EAAA,EAAA,GAAAwP,YAAAxP,EAAA,EAAA,GAAAioC,eAAAjoC,EAAA,EAAA,GAAAO,KAAAP,EAAA,EAAA,GAAAS,KAAAT,EAAA,EAAA,GAAAa,KAAAb,EAAA,EAAA,GAAAgB,KAAAhB,EAAA,EAAA,GAAA4P,KAAA5P,EAAA,EAAA,GAAAsT,KAAAtT,EAAA,EAAA,GAAA2K,OAAA3K,EAAA,EAAA;AAtBP,QAAAmS,KAAA5R,OAAa/E,SAAR,WAAL+E,IAGA/C,YAAAiD,OAAYjF,aAAZiF,IAKA0V,UAAAtV,OAAWrF,aAAXqF,IAQA4M,SAAAzM,OAAUxF,aAAVwF,IAEA/E,QAAA2T,OAASpU,aAAToU,IAEAtP,OAAAgT,OAAgB9X,SAAT,YAAP8X,IAGF;AAAA,IAAAlT;AAAAA,EAAAA,IAAiBa,aAAAA,GACjBgmC,OAAaH,WACb;AAAA,IAAAla;AAAAA,IAAAkX;AAAAA,IAAAkC;AAAAA,IAAAO,kBAAAW;AAAAA,IAAAV,kBAAA0B;AAAAA,EAAAA,IAMIjB,MACJV,mBAAyBW,qBAAqBD,KAAIV,kBAClDC,mBAAyB0B,qBAAqBjB,KAAIT,kBAClD,CAAA3Z,aAAAsa,cAAA,IAAsCr0B,aAAoC,GAC1Ew0B,SAAe3hC,CAAAA,CAAQinB,iBAAkBA,kBAAkBC,aAC3Dxd,MAAYgT,OAAA,IAAkC;AAAC,MAAA9O;AAAAvT,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEiC8T,KAAAA,MAAMlE,IAAGuO,SAAQ5d,QAAAuT,MAAAA,KAAAvT,EAAA,EAAA,GAAjGsiB,oBAAkEL,cAAc1O,EAAiB;AAAC,MAAAC,IAAAG;AAAA3T,IAAA,EAAA,MAAA8jC,SAAA9jC,UAAA6sB,eAAA7sB,EAAA,EAAA,MAAAioC,gBAExFz0B,KAAAA,MAAMswB,MAAMjX,aAAaob,YAAY,GAAGt0B,KAAA,CAACmwB,OAAOjX,aAAaob,YAAY,GAACjoC,QAAA8jC,OAAA9jC,QAAA6sB,aAAA7sB,QAAAioC,cAAAjoC,QAAAwT,IAAAxT,QAAA2T,OAAAH,KAAAxT,EAAA,EAAA,GAAA2T,KAAA3T,EAAA,EAAA,IAApFqT,UAAUG,IAAwCG,EAAkC;AAAC,MAAAC;AAAA5T,IAAA,EAAA,MAAAgM,YAAAhM,UAAAygC,WAAAzgC,EAAA,EAAA,MAAAgmC,eAGnFpyB,KAAAsM,CAAAA,UAAA;AACMlU,iBACAy0B,WAASA,QAAQvgB,KAAK,GACtB8lB,eAAaA;EAAa,GAC/BhmC,QAAAgM,UAAAhM,QAAAygC,SAAAzgC,QAAAgmC,aAAAhmC,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA;AALH,QAAA0gC,cAAoB9sB;AAOnB,MAAAC;AAAA7T,IAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAAkL,iBAAAlL,EAAA,EAAA,MAAAmL,eAAAnL,UAAAiL,gBAAAjL,EAAA,EAAA,MAAAgL,cAAAhL,EAAA,EAAA,MAAAiW,YAAAjW,EAAA,EAAA,MAAAkW,YAGQrC,MAAA;AAAA,IAAAsC;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAAlL;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,GAQNnL,QAAAmW,SAAAnW,QAAAkL,eAAAlL,QAAAmL,aAAAnL,QAAAiL,cAAAjL,QAAAgL,YAAAhL,QAAAiW,UAAAjW,QAAAkW,UAAAlW,QAAA6T,OAAAA,MAAA7T,EAAA,EAAA;AATH,QAAAmoC,eACSt0B;AAUR,MAAAC;AAAA9T,YAAAxC,aAEuBsW,MAAAzY,cAAcmC,SAAQ,EAACtC,IAAA8Y,KAAiB,GAAChU,QAAAxC,WAAAwC,QAAA8T,OAAAA,MAAA9T,EAAA,EAAA;AAAjE,QAAAooC,kBAAwBt0B;AAAyC,MAAAC;AAAA/T,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAEtCsU,MAAAha,CAAAA,OAAA;AACzBsV,QAAGuO,UAAW7jB,IACdotC,eAAeptC,EAAE;AAAA,EAAC,GACnBiG,QAAA+T,OAAAA,MAAA/T,EAAA,EAAA;AAHD,QAAAqoC,SAAet0B,KAUGE,MAAA9B,OAAO,YAAYqI,UAAU,KAAEhf,QAC9B4a,MAAAkxB,SAAS,KAAE9rC,QACX6a,MAAArK,WAAW,KAAExQ;AAAY,MAAA8a;AAAAtW,YAAAyN,UAE/B6I,MAAAjb,cAAcoS,MAAM,GAACzN,QAAAyN,QAAAzN,QAAAsW,OAAAA,MAAAtW,EAAA,EAAA;AAAA,MAAAuW;AAAAvW,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KACpB8W,MAAAlb,cAAA,CAAe,GAAC2E,QAAAuW,OAAAA,MAAAvW,EAAA,EAAA;AACnB,QAAAwW,MAAAxK,WAAW,YAAY1L,MAQxBmW,MAAAtE,OAAO,WAAW,WAAQ3W;AAAY,MAAAkb;AAAA1W,IAAA,EAAA,MAAA4a,iBAAA5a,EAAA,EAAA,MAAA6a,sBAAA7a,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAAgoC,WAAAhoC,EAAA,EAAA,MAAAooC,mBAAApoC,EAAA,EAAA,MAAAmoC,gBAAAnoC,EAAA,EAAA,MAAA/D,SAAA+D,UAAA2K,QAE3C+L,OAACkE,iBAAiBjQ,QAAQkQ,uBACzB,qBAAC,QAAQ,IAAA,QAAY5e,KAAAA,OAAa,OAAA,UAAQ,GAAKksC,cAC5CvtB,UAAAA;AAAAA,IAAAA,iBACC,qBAAC,MAAA,EAAWpd,iBACT2X,UAAAA;AAAAA,MAAAA,eAAeyF,aAAa,KAAKA;AAAAA,MACjCpI,mBAAmBoI,aAAa,KAAK,oBAAC,eAAA,CAAA,CAAa;AAAA,IAAA,GACtD;AAAA,IAGDjQ,QACC,oBAAC,KAAA,EAAU,MAAA,GACT,UAAA,oBAAC,MAAA,EAAWnN,MAAAA,WAAuB,cAAA,YAAkB,QAAA,UAClDmN,gBACH,GACF;AAAA,IAGDq9B,WACC,oBAAC,SAAA,EACWI,UAAAA,iBACJJ,MAAAA,SACC,OAAA;AAAA,MAAA1pC,WAAA;AAAA,MAAAC,cAAA;AAAA,IAAA,GAAiC;AAAA,IAI3Csc,sBACC,qBAAC,MAAA,EAAWrd,MAAAA,WACT2X,UAAAA;AAAAA,MAAAA,eAAe0F,kBAAkB,KAAKA;AAAAA,MACtCrI,mBAAmBqI,kBAAkB,KAAK,oBAAC,oBAAA,CAAA,CAAkB;AAAA,IAAA,EAAA,CAChE;AAAA,EAAA,EAAA,CAEJ,GACD7a,QAAA4a,eAAA5a,QAAA6a,oBAAA7a,QAAAxC,WAAAwC,QAAAgoC,SAAAhoC,QAAAooC,iBAAApoC,QAAAmoC,cAAAnoC,QAAA/D,OAAA+D,QAAA2K,MAAA3K,QAAA0W,OAAAA,MAAA1W,EAAA,EAAA;AAAA,MAAA2W;AAAA3W,IAAA,EAAA,MAAArH,YAAAqH,UAAAmoC,gBACAxxB,MAAAhe,YACC,oBAAC,KAAA,EAAO,IAAA,QAAM,GAAKwvC,cAChBxvC,SAAAA,CACH,GACDqH,QAAArH,UAAAqH,QAAAmoC,cAAAnoC,QAAA2W,OAAAA,MAAA3W,EAAA,EAAA;AAAA,MAAA4W;AAAA,SAAA5W,EAAA,EAAA,MAAAmS,MAAAnS,EAAA,EAAA,MAAAgM,YAAAhM,EAAA,EAAA,MAAA0gC,eAAA1gC,EAAA,EAAA,MAAAumC,oBAAAvmC,EAAA,EAAA,MAAAwmC,oBAAAxmC,EAAA,EAAA,MAAAwP,aAAAxP,EAAA,EAAA,MAAAI,UAAAJ,UAAAiU,OAAAjU,EAAA,EAAA,MAAAoW,OAAApW,EAAA,EAAA,MAAAqW,OAAArW,EAAA,EAAA,MAAAsW,OAAAtW,EAAA,EAAA,MAAAwW,OAAAxW,EAAA,EAAA,MAAAyW,OAAAzW,EAAA,EAAA,MAAA0W,OAAA1W,EAAA,EAAA,MAAA2W,OAzDHC,MAAA,qBAAC,YAAA,EACS,WAAA,YACH,MAAA,YAAU,GACXpH,WACU,gBAAAyE,KACC,iBAAAmC,KACA,iBAAAC,KACFlE,aAAAA,IACJ,SAAAmE,KACC,UAAAC,KACH,OAAAC,KACEpW,SAAAA,QACC4L,UACD00B,SAAAA,aACK6F,gCACAC,cAAAA,kBACT6B,aACK,UAAA,IACJ,MAAA5xB,KAELC,UAAAA;AAAAA,IAAAA;AAAAA,IAiCAC;AAAAA,EAAAA,EAAAA,CAKH,GAAa3W,QAAAmS,IAAAnS,QAAAgM,UAAAhM,QAAA0gC,aAAA1gC,QAAAumC,kBAAAvmC,QAAAwmC,kBAAAxmC,QAAAwP,WAAAxP,QAAAI,QAAAJ,QAAAiU,KAAAjU,QAAAoW,KAAApW,QAAAqW,KAAArW,QAAAsW,KAAAtW,QAAAwW,KAAAxW,QAAAyW,KAAAzW,QAAA0W,KAAA1W,QAAA2W,KAAA3W,QAAA4W,OAAAA,MAAA5W,EAAA,EAAA,GA1Db4W;AA0Da,CAEhB;AACDmxB,SAASloC,cAAc;AA3IY,SAAAmU,MAAAlJ,GAAA;AAAA,SAsE0BA,IAAC;AAAI;ACtFlE,MAAMw9B,eAAe75B,OAAOkM,MAAM,EAAChM,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,oBAOtB25B,MAAMn5B,WAAW,SAAAvT,OAAAomB,cAAA;AAAA,QAAAjiB,IAAAC,EAAA,EAAA;AAAA,MAAAuoC,SAAArvB,MAAAsK,IAAAglB,OAAAhI,SAAAhU,SAAAjd,WAAA6L,UAAA9a,IAAAE;AAAAT,WAAAnE,SAQ5B;AAAA,IAAAsd;AAAAA,IAAAsK;AAAAA,IAAA+kB;AAAAA,IAAAhrC,UAAA+C;AAAAA,IAAAkoC;AAAAA,IAAAhI;AAAAA,IAAAhU;AAAAA,IAAAtW,SAAA1V;AAAAA,IAAA4a;AAAAA,IAAA,GAAA7L;AAAAA,EAAAA,IAWI3T,OAAKmE,OAAAnE,OAAAmE,OAAAwoC,SAAAxoC,OAAAmZ,MAAAnZ,OAAAyjB,IAAAzjB,OAAAyoC,OAAAzoC,OAAAygC,SAAAzgC,OAAAysB,SAAAzsB,OAAAwP,WAAAxP,OAAAqb,UAAArb,OAAAO,IAAAP,QAAAS,OAAA+nC,UAAAxoC,EAAA,CAAA,GAAAmZ,OAAAnZ,EAAA,CAAA,GAAAyjB,KAAAzjB,EAAA,CAAA,GAAAyoC,QAAAzoC,EAAA,CAAA,GAAAygC,UAAAzgC,EAAA,CAAA,GAAAysB,UAAAzsB,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA,GAAAqb,WAAArb,EAAA,CAAA,GAAAO,KAAAP,EAAA,CAAA,GAAAS,KAAAT,EAAA,EAAA;AAPP,QAAAxC,YAAA+C,OAAY/E,aAAZ+E,IAIA4V,UAAA1V,OAAWjF,aAAXiF,IAIF4O,MAAYgT,OAAA,IAAqC,GACjDqmB,aAAmBrmB,OAAA,EAAY;AAAC,MAAAxhB;AAAAb,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAI9BoB,KAAAA,MAAMwO,IAAGuO,SAAQ5d,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GAFnBsiB,oBACEL,cACAphB,EACF;AAAC,MAAAG;AAAAhB,IAAA,EAAA,MAAAR,OAAAC,IAAA,2BAAA,KAE8BuB,KAAAA,MAAA;AAC7B0nC,eAAU9qB,UAAA;AAAA,EAAA,GACX5d,QAAAgB,MAAAA,KAAAhB,EAAA,EAAA;AAFD,QAAAugC,aAAmBv/B;AAEb,MAAA4O;AAAA5P,YAAAysB,WAGJ7c,KAAAsQ,CAAAA,UAAA;AACEwoB,eAAU9qB,UAAA,IACN6O,WAASA,QAAQvM,KAAK;AAAA,EAAC,GAC5BlgB,QAAAysB,SAAAzsB,QAAA4P,MAAAA,KAAA5P,EAAA,EAAA;AAJH,QAAA8sB,cAAoBld;AAMnB,MAAA0D,IAAAC;AAAAvT,YAAAwoC,WAESl1B,KAAAA,MAAA;AACJk1B,eAAO,CAAKE,WAAU9qB,YACpBvO,IAAGuO,WAAUvO,IAAGuO,QAAA8e,MAAAA,GACpBgM,WAAU9qB,UAAA;AAAA,EAAA,GAEXrK,MAACi1B,OAAO,GAACxoC,QAAAwoC,SAAAxoC,QAAAsT,IAAAtT,QAAAuT,OAAAD,KAAAtT,EAAA,EAAA,GAAAuT,KAAAvT,EAAA,EAAA,IALZqT,UAAUC,IAKPC,EAAS;AAMO,QAAAC,KAAA6H,WAAW,SAAS,SAYzB1H,KAAA0H,WAAQ,IAAA;AAAS,MAAAzH;AAAA,SAAA5T,EAAA,EAAA,MAAAxC,aAAAwC,EAAA,EAAA,MAAA8sB,eAAA9sB,UAAAmZ,QAAAnZ,EAAA,EAAA,MAAAyjB,MAAAzjB,EAAA,EAAA,MAAAyoC,SAAAzoC,EAAA,EAAA,MAAAygC,WAAAzgC,EAAA,EAAA,MAAAmW,WAAAnW,UAAAwP,aAAAxP,EAAA,EAAA,MAAAqb,YAAArb,EAAA,EAAA,MAAAwT,MAAAxT,UAAA2T,MAf7BC,yBAAC,cAAA,EACS,WAAA,OAAK,GACTpE,WACW,iBAAAgE,IACLhW,UAAAA,WACJ2b,MACFsK,IACC,MAAA,SACIgd,SACDF,QAAAA,YACCzT,SAAAA,aACA3W,SACJ9G,KACA,MAAA,OACKgM,UACA,UAAA1H,IACJ80B,MAAAA,OACD,MAAA,SAAA,CAAQ,GACbzoC,QAAAxC,WAAAwC,QAAA8sB,aAAA9sB,QAAAmZ,MAAAnZ,QAAAyjB,IAAAzjB,QAAAyoC,OAAAzoC,QAAAygC,SAAAzgC,QAAAmW,SAAAnW,QAAAwP,WAAAxP,QAAAqb,UAAArb,QAAAwT,IAAAxT,QAAA2T,IAAA3T,QAAA4T,MAAAA,KAAA5T,EAAA,EAAA,GAlBF4T;AAkBE,CAEL;AACD20B,IAAI1oC,cAAc;ACvFlB,MAAM8oC,eAAel6B,OAAOwX,MAAM,EAACtX,WAAA;AAAA,EAAA9O,aAAA;AAAA,EAAA+O,aAAA;AAAA,CAAA,8FAYtBg6B,UAAUx5B,WAAW,SAAAvT,OAAAwT,KAAA;AAAA,QAAArP,IAAAC,EAAA,EAAA;AAAA,MAAAsP,cAAAC;AAAAxP,WAAAnE,SAIhC;AAAA,IAAAlD,UAAA4W;AAAAA,IAAA,GAAAC;AAAAA,EAAAA,IAA+C3T,OAAKmE,OAAAnE,OAAAmE,OAAAuP,cAAAvP,OAAAwP,cAAAD,eAAAvP,EAAA,CAAA,GAAAwP,YAAAxP,EAAA,CAAA;AACpD,QAAA,CAAAukC,cAAAsE,eAAA,IAAwC/1B,WAAW;AAAC,MAAAvS;AAAA,MAAAP,EAAA,CAAA,MAAAuP,gBAAAvP,SAAAukC,cAAA;AAEpD,UAAA5rC,WAAsCsc,SAAAC,QAAiB3F,YAAY,EAAC7J,OAAAyP,cAAsB;AAAC,QAAA1U;AAAAT,aAAAukC,gBAEjE9jC,MAAAA,CAAA+U,OAAAC,eACxBC,aAAaF,OAAK;AAAA,MAAAgzB,SACPjE,iBAAiB9uB;AAAAA,MAAU9a,KAC/B8a;AAAAA,MAAUgX,SAAAA,MACAoc,gBAAgBpzB,UAAU;AAAA,IAAA,CAC1C,GAACzV,OAAAukC,cAAAvkC,OAAAS,OAAAA,MAAAT,EAAA,CAAA,GALSO,KAAA5H,SAAQuC,IAAKuF,GAM1B,GAACT,OAAAuP,cAAAvP,OAAAukC,cAAAvkC,OAAAO;AAAAA,EAAA;AAAAA,SAAAP,EAAA,CAAA;AAND,QAAA8oC,OAAavoC,IAQbwoC,UAAgBD,KAAI9sC;AAAO,MAAAyE;AAAAT,WAAA+oC,WAGzBtoC,KAAAyf,CAAAA,UAAA;AACMA,UAAKvlB,QAAS,eAChBkuC,gBAAeG,CAAAA,eAAiBA,YAAYD,UAAO,KAAQA,OAAO,GAGhE7oB,MAAKvlB,QAAS,gBAChBkuC,gBAAeI,CAAAA,iBAAiBD,cAAS,KAAQD,OAAO;AAAA,EAAC,GAE5D/oC,OAAA+oC,SAAA/oC,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AATH,QAAAmgB,gBAAsB1f;AAWrB,MAAAI;AAAA,SAAAb,EAAA,EAAA,MAAAmgB,iBAAAngB,EAAA,EAAA,MAAAqP,OAAArP,EAAA,EAAA,MAAAwP,aAAAxP,UAAA8oC,QAGCjoC,KAAA,oBAAC,cAAA,EACS,WAAA,WAAS,GACb2O,WACO2Q,WAAAA,eACN9Q,KACA,MAAA,WAEJy5B,UAAAA,MACH,GAAe9oC,QAAAmgB,eAAAngB,QAAAqP,KAAArP,QAAAwP,WAAAxP,QAAA8oC,MAAA9oC,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GARfa;AAQe,CAElB;AACD+nC,QAAQ/oC,cAAc;"}
|