@sanity/ui 1.0.0 → 1.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/constants.ts","../src/styles/helpers.ts","../src/styles/font/responsiveFont.ts","../src/styles/font/codeFontStyle.ts","../src/styles/font/headingFontStyle.ts","../src/styles/font/labelFontStyle.ts","../src/styles/font/textAlignStyle.ts","../src/styles/font/textFontStyle.ts","../src/hooks/useArrayProp.ts","../src/hooks/useClickOutside.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/observers/resizeObserver.ts","../src/observers/elementSizeObserver.ts","../src/hooks/useElementSize.ts","../src/hooks/useElementRect/useElementRect.ts","../src/hooks/useGlobalKeyDown.ts","../src/theme/lib/color-fns/blend/multiply.ts","../src/theme/lib/color-fns/blend/screen.ts","../src/theme/lib/color-fns/convert.ts","../src/theme/lib/color-fns/parse.ts","../src/theme/lib/color-fns/helpers/rgba.ts","../src/theme/lib/theme/color/button/createButtonTones.ts","../src/theme/lib/theme/color/button/createButtonModes.ts","../src/theme/lib/theme/color/card/createCardStates.ts","../src/theme/lib/theme/color/defaults.ts","../src/theme/lib/theme/color/input/createInputModes.ts","../src/theme/lib/theme/color/muted/createMuted.ts","../src/theme/lib/theme/color/selectable/createSelectableTones.ts","../src/theme/lib/theme/color/solid/createSolidTones.ts","../src/theme/lib/theme/color/spot/createSpot.ts","../src/theme/lib/theme/color/factory.ts","../src/theme/studioTheme/helpers.ts","../src/theme/studioTheme/color.ts","../src/theme/studioTheme/fonts.ts","../src/theme/studioTheme/theme.ts","../src/theme/defaults.ts","../src/lib/globalScope.ts","../src/theme/themeContext.ts","../src/theme/themeProvider.tsx","../src/lib/isRecord.ts","../src/theme/useRootTheme.ts","../src/theme/themeColorProvider.tsx","../src/theme/useTheme.ts","../src/hooks/useMediaIndex/lib/media.ts","../src/hooks/useMediaIndex/useMediaIndex.ts","../src/hooks/usePrefersDark.ts","../src/hooks/useIsomorphicEffect.ts","../src/hooks/useForwardedRef.ts","../src/hooks/useCustomValidity.ts","../src/styles/border/borderStyle.ts","../src/styles/box/boxStyle.ts","../src/styles/flex/flexStyle.ts","../src/styles/flex/flexItemStyle.ts","../src/styles/focusRing/index.ts","../src/styles/grid/gridStyle.ts","../src/styles/grid/gridItemStyle.ts","../src/styles/input/responsiveInputPaddingStyle.ts","../src/styles/input/textInputStyle.ts","../src/styles/margin/marginStyle.ts","../src/styles/padding/paddingStyle.ts","../src/styles/radius/radiusStyle.ts","../src/styles/shadow/shadowStyle.ts","../src/primitives/text/styles.ts","../src/primitives/text/text.tsx","../src/primitives/avatar/styles.ts","../src/primitives/avatar/avatar.tsx","../src/primitives/avatar/avatarCounter.tsx","../src/primitives/helpers.ts","../src/primitives/avatar/avatarStack.tsx","../src/primitives/box/box.tsx","../src/primitives/label/styles.ts","../src/primitives/label/label.tsx","../src/primitives/badge/styles.ts","../src/primitives/badge/badge.tsx","../src/primitives/flex/flex.tsx","../src/primitives/spinner/spinner.tsx","../src/styles/colorVars/colorVarsStyle.ts","../src/primitives/button/styles.ts","../src/primitives/button/button.tsx","../src/primitives/card/styles.ts","../src/primitives/card/card.tsx","../src/primitives/checkbox/styles.ts","../src/primitives/checkbox/checkbox.tsx","../src/primitives/code/styles.ts","../src/primitives/code/code.tsx","../src/primitives/container/styles.ts","../src/primitives/container/container.tsx","../src/primitives/grid/grid.tsx","../src/primitives/heading/styles.ts","../src/primitives/heading/heading.tsx","../src/primitives/inline/styles.ts","../src/primitives/inline/inline.tsx","../src/primitives/kbd/kbd.tsx","../src/utils/boundaryElement/boundaryElementContext.ts","../src/utils/boundaryElement/boundaryElementProvider.tsx","../src/utils/boundaryElement/useBoundaryElement.ts","../src/utils/elementQuery/helpers.ts","../src/utils/elementQuery/elementQuery.tsx","../src/utils/errorBoundary.tsx","../src/utils/layer/layerContext.ts","../src/utils/layer/useLayer.ts","../src/utils/layer/layerProvider.tsx","../src/utils/layer/layer.tsx","../src/utils/portal/portalContext.ts","../src/utils/portal/usePortal.ts","../src/utils/portal/portal.ts","../src/hooks/_internal/useUnique.ts","../src/utils/portal/portalProvider.tsx","../src/utils/srOnly/srOnly.tsx","../src/helpers/animation.ts","../src/helpers/element.ts","../src/helpers/focus.ts","../src/helpers/scroll.ts","../src/utils/virtualList/virtualList.tsx","../src/primitives/popover/constants.ts","../src/primitives/popover/floating-ui/size.ts","../src/primitives/popover/popoverArrow.tsx","../src/primitives/popover/popoverCard.tsx","../src/primitives/popover/popover.tsx","../src/primitives/radio/styles.ts","../src/primitives/radio/radio.tsx","../src/primitives/select/styles.ts","../src/primitives/select/select.tsx","../src/primitives/stack/styles.ts","../src/primitives/stack/stack.tsx","../src/primitives/switch/styles.ts","../src/primitives/switch/switch.tsx","../src/primitives/textArea/textArea.tsx","../src/primitives/textInput/textInput.tsx","../src/primitives/tooltip/tooltipArrow.tsx","../src/primitives/tooltip/tooltip.tsx","../src/components/autocomplete/autocomplete.styles.tsx","../src/components/autocomplete/autocompleteOption.tsx","../src/components/autocomplete/autocompleteReducer.ts","../src/components/autocomplete/constants.ts","../src/components/autocomplete/autocomplete.tsx","../src/components/breadcrumbs/breadcrumbs.styles.ts","../src/components/breadcrumbs/breadcrumbs.tsx","../src/components/dialog/styles.ts","../src/components/dialog/dialogContext.ts","../src/components/dialog/useDialog.ts","../src/components/dialog/dialog.tsx","../src/components/dialog/dialogProvider.tsx","../src/components/hotkeys/hotkeys.tsx","../src/components/menu/menuContext.ts","../src/components/menu/helpers.ts","../src/components/menu/useMenuController.ts","../src/components/menu/menu.tsx","../src/components/menu/menuButton.tsx","../src/components/menu/menuDivider.ts","../src/primitives/_selectable/style.ts","../src/primitives/_selectable/selectable.tsx","../src/components/menu/useMenu.ts","../src/components/menu/menuGroup.tsx","../src/components/menu/menuItem.tsx","../src/components/skeleton/styles.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/textSkeleton.tsx","../src/components/tab/tab.tsx","../src/components/tab/tabList.tsx","../src/components/tab/tabPanel.tsx","../src/components/toast/toast.tsx","../src/components/toast/toastContext.ts","../src/components/toast/toastProvider.tsx","../src/components/toast/useToast.ts","../src/components/tree/helpers.ts","../src/components/tree/treeContext.ts","../src/components/tree/tree.tsx","../src/components/tree/style.ts","../src/components/tree/useTree.ts","../src/components/tree/treeGroup.tsx","../src/components/tree/treeItem.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport const EMPTY_ARRAY: any[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, any> = {}\n\n/**\n * @internal\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {CSSObject} from 'styled-components'\nimport {EMPTY_ARRAY} from '../constants'\nimport {Theme} from '../theme'\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 return _responsive(theme.sanity.media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(theme.sanity.space[spaceIndex]))\n )\n}\n","import {CSSObject} from 'styled-components'\nimport {ThemeFontSize, ThemeFontKey} from '../../theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps\n): CSSObject[] {\n const {$size, $weight, theme} = props\n const {fonts, media} = theme.sanity\n const {family, sizes, weights} = fonts[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n position: 'relative',\n fontFamily: family,\n fontWeight,\n padding: '1px 0',\n margin: 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n fontSize: rem(fontSize),\n lineHeight: `calc(${lineHeight} / ${fontSize})`,\n letterSpacing: rem(letterSpacing),\n transform: `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from 'styled-components'\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 'styled-components'\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 'styled-components'\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} from 'styled-components'\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 {theme} = props\n\n return _responsive(theme.sanity.media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from 'styled-components'\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 {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[]\n): T[] {\n const __perf_hash__ = JSON.stringify(val ?? defaultVal)\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__]\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","import {RGB} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB, s: RGB): RGB {\n return {\n r: Math.round(clamp(multiplyChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(multiplyChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(multiplyChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {RGB} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB, s: RGB): RGB {\n return {\n r: Math.round(clamp(screenChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(screenChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(screenChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {HSL, RGB} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex({r, g, b}: RGB): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb} from './convert'\nimport {HSL, RGB} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from '../parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorButtonModeKey, ThemeColorButtonTones} from './types'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {createButtonTones} from './createButtonTones'\nimport {ThemeColorButton} from './types'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorCard} from './types'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorInput} from './types'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorMuted} from './types'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorSelectable, ThemeColorSelectableStates} from './types'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorSolid} from './types'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorSpot} from './types'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {ThemeColorGenericState} from './_generic'\nimport {ThemeColorBase} from './base'\nimport {ThemeColorButtonModeKey, ThemeColorButtonStates} from './button'\nimport {createButtonModes} from './button/createButtonModes'\nimport {ThemeColorCardState} from './card'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {ThemeColorInputState} from './input'\nimport {createInputModes} from './input/createInputModes'\nimport {ThemeColorMuted, ThemeColorMutedTone} from './muted'\nimport {createMutedTones} from './muted/createMuted'\nimport {ThemeColorSelectableState} from './selectable'\nimport {createSelectableTones} from './selectable/createSelectableTones'\nimport {ThemeColorSolid, ThemeColorSolidTone} from './solid'\nimport {createSolidTones} from './solid/createSolidTones'\nimport {ThemeColorSpotKey} from './spot'\nimport {createSpot} from './spot/createSpot'\nimport {ThemeColorSyntax} from './syntax'\nimport {\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n} from './types'\n\n/**\n * @public\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorCardState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorSelectableState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {}\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","import {parseColor, rgbToHex, screen as _screen, multiply as _multiply} from '../lib/color-fns'\n\nexport function multiply(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_multiply(b, s))\n\n return hex\n}\n\nexport function screen(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_screen(b, s))\n\n return hex\n}\n","import {black, ColorTints, hues, white} from '@sanity/color'\nimport {rgba} from '../lib/color-fns'\nimport {createColorTheme} from '../lib/theme'\nimport {multiply, screen} from './helpers'\n\nconst tones: {[key: string]: ColorTints} = {\n default: hues.gray,\n transparent: hues.gray,\n primary: hues.blue,\n positive: hues.green,\n caution: hues.yellow,\n critical: hues.red,\n}\n\nconst NEUTRAL_TONES = ['default', 'transparent']\n\nexport const color = createColorTheme({\n base: ({dark, name}) => {\n if (name === 'default') {\n const tints = hues.gray\n const skeletonFrom = dark ? tints[900].hex : tints[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: dark ? black.hex : white.hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: hues.blue[dark ? 500 : 500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[950].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[950].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[950].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (name === 'transparent') {\n const tints = tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 300].hex,\n focusRing: hues.blue[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const tints = tones[name] || tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: tints[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n solid: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const mix2 = dark ? multiply : screen\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = mix(base.bg, tints[dark ? 800 : 200].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n accent: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n link: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n code: {\n bg,\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = mix(base.bg, tints[dark ? 300 : 600].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 300 : 600].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg: mix(base.bg, tints[dark ? 200 : 800].hex),\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n // state: \"enabled\" | unknown\n const bg = mix(base.bg, tints[dark ? 400 : 500].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 400 : 500].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 900 : 100].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n muted: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(bg, tints[dark ? 800 : 200].hex),\n muted: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n code: {\n bg,\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: rgba(skeletonFrom, 0.5),\n to: rgba(skeletonFrom, 0.25),\n },\n }\n }\n\n if (state === 'hovered') {\n // if (isNeutral) {\n // tints = tones.primary\n // }\n\n const bg = mix(base.bg, tints[dark ? 950 : 50].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 300 : 700].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n enabled: {\n ...muted.enabled,\n border: muted.enabled.bg,\n },\n hovered: {\n ...muted.hovered,\n border: muted.hovered.bg,\n },\n pressed: {\n ...muted.pressed,\n border: muted.pressed.bg,\n },\n selected: {\n ...muted.selected,\n border: muted.selected.bg,\n },\n disabled: {\n ...muted.disabled,\n border: muted.disabled.bg,\n },\n }\n }\n\n if (mode === 'ghost') {\n return {\n ...solid,\n enabled: {\n ...muted.enabled,\n border: base.border,\n },\n disabled: muted.disabled,\n }\n }\n\n return solid\n },\n\n card: ({base, dark, muted, name, solid, state}) => {\n if (state === 'hovered') {\n return muted[name].hovered\n }\n\n if (state === 'disabled') {\n return muted[name].disabled\n }\n\n const isNeutral = NEUTRAL_TONES.includes(name)\n const tints = tones[name] || tones.default\n const mix = dark ? screen : multiply\n\n if (state === 'pressed') {\n if (isNeutral) {\n return muted.primary.pressed\n }\n\n return muted[name].pressed\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n return solid.primary.enabled\n }\n\n return solid[name].enabled\n }\n\n const bg = base.bg\n const skeletonFrom = mix(base.bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n fg: base.fg,\n border: base.border,\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: tints[dark ? 400 : 600].hex,\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n input: ({base, dark, mode, state}) => {\n const mix = dark ? screen : multiply\n\n if (mode === 'invalid') {\n const tints = tones.critical\n\n return {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, tints[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'hovered') {\n return {\n bg: base.bg,\n fg: base.fg,\n border: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'disabled') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n fg: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n border: mix(base.bg, hues.gray[dark ? 900 : 100].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n }\n }\n\n if (state === 'readOnly') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n fg: mix(base.bg, hues.gray[dark ? 200 : 800].hex),\n border: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n return {\n bg: base.bg,\n fg: base.fg,\n border: base.border,\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n },\n\n selectable: ({base, muted, tone, solid, state}) => {\n if (state === 'enabled') {\n return {\n ...muted[tone].enabled,\n bg: base.bg,\n }\n }\n\n if (state === 'pressed') {\n if (tone === 'default') {\n return muted.primary.pressed\n }\n\n return muted[tone].pressed\n }\n\n if (state === 'selected') {\n if (tone === 'default') {\n return solid.primary.enabled\n }\n\n return solid[tone].enabled\n }\n\n if (state === 'disabled') {\n return {\n ...muted[tone].disabled,\n bg: base.bg,\n }\n }\n\n return muted[tone][state]\n },\n\n spot: ({base, dark, key}) => {\n const mix = dark ? screen : multiply\n\n return mix(base.bg, hues[key][dark ? 400 : 500].hex)\n },\n\n syntax: ({base, dark}) => {\n const mix = dark ? screen : multiply\n const mainShade = dark ? 400 : 600\n const secondaryShade = dark ? 600 : 400\n\n return {\n atrule: mix(base.bg, hues.purple[mainShade].hex),\n attrName: mix(base.bg, hues.green[mainShade].hex),\n attrValue: mix(base.bg, hues.yellow[mainShade].hex),\n attribute: mix(base.bg, hues.yellow[mainShade].hex),\n boolean: mix(base.bg, hues.purple[mainShade].hex),\n builtin: mix(base.bg, hues.purple[mainShade].hex),\n cdata: mix(base.bg, hues.yellow[mainShade].hex),\n char: mix(base.bg, hues.yellow[mainShade].hex),\n class: mix(base.bg, hues.orange[mainShade].hex),\n className: mix(base.bg, hues.cyan[mainShade].hex),\n comment: mix(base.bg, hues.gray[secondaryShade].hex),\n constant: mix(base.bg, hues.purple[mainShade].hex),\n deleted: mix(base.bg, hues.red[mainShade].hex),\n doctype: mix(base.bg, hues.gray[secondaryShade].hex),\n entity: mix(base.bg, hues.red[mainShade].hex),\n function: mix(base.bg, hues.green[mainShade].hex),\n hexcode: mix(base.bg, hues.blue[mainShade].hex),\n id: mix(base.bg, hues.purple[mainShade].hex),\n important: mix(base.bg, hues.purple[mainShade].hex),\n inserted: mix(base.bg, hues.yellow[mainShade].hex),\n keyword: mix(base.bg, hues.magenta[mainShade].hex),\n number: mix(base.bg, hues.purple[mainShade].hex),\n operator: mix(base.bg, hues.magenta[mainShade].hex),\n prolog: mix(base.bg, hues.gray[secondaryShade].hex),\n property: mix(base.bg, hues.blue[mainShade].hex),\n pseudoClass: mix(base.bg, hues.yellow[mainShade].hex),\n pseudoElement: mix(base.bg, hues.yellow[mainShade].hex),\n punctuation: mix(base.bg, hues.gray[mainShade].hex),\n regex: mix(base.bg, hues.blue[mainShade].hex),\n selector: mix(base.bg, hues.red[mainShade].hex),\n string: mix(base.bg, hues.yellow[mainShade].hex),\n symbol: mix(base.bg, hues.purple[mainShade].hex),\n tag: mix(base.bg, hues.red[mainShade].hex),\n unit: mix(base.bg, hues.orange[mainShade].hex),\n url: mix(base.bg, hues.red[mainShade].hex),\n variable: mix(base.bg, hues.red[mainShade].hex),\n }\n },\n})\n","import {ThemeFonts} from '../lib/theme'\n\nexport const fonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 12,\n iconSize: 17,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 33,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 39,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9,\n descenderHeight: 9,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 45,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.8,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 11.25,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.75,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 14,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15.5,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {RootTheme} from '../types'\nimport {color} from './color'\nimport {fonts} from './fonts'\n\n/**\n * @public\n */\nexport const studioTheme: RootTheme = {\n avatar: {\n sizes: [\n {distance: -3, size: 25},\n {distance: -6, size: 35},\n {distance: -9, size: 55},\n ],\n },\n button: {\n textWeight: 'medium',\n },\n color,\n container: [320, 640, 960, 1280, 1600, 1920],\n focusRing: {\n offset: 1,\n width: 2,\n },\n fonts,\n media: [360, 600, 900, 1200, 1800, 2400],\n radius: [0, 1, 3, 6, 9, 12, 21],\n shadows: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -1], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 0]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n checkbox: {\n size: 17,\n },\n radio: {\n size: 17,\n markSize: 9,\n },\n switch: {\n width: 33,\n height: 17,\n padding: 4,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n },\n border: {\n width: 1,\n },\n },\n // styles: {\n // button: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // },\n}\n","import {ThemeLayer} from './lib/theme/layer'\n\nexport const DEFAULT_THEME_LAYER: ThemeLayer = {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\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","import {createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: React.Context<ThemeContextValue | null> = globalScope[key]\n","import {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {DEFAULT_THEME_LAYER} from './defaults'\nimport {ThemeColorSchemeKey, ThemeColorName} from './lib/theme'\nimport {ThemeContext} from './themeContext'\nimport {RootTheme, Theme, ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorName\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: themeProp = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\n\n const theme: Theme | null = useMemo(() => {\n if (!themeProp) return null\n\n const {color: rootColor, layer: rootLayer, ...restTheme} = themeProp\n const colorScheme = rootColor[scheme] || rootColor.light\n const color = colorScheme[tone] || colorScheme.default\n const layer = rootLayer || DEFAULT_THEME_LAYER\n\n return {sanity: {...restTheme, color, layer}}\n }, [scheme, themeProp, tone])\n\n const value: ThemeContextValue | null = useMemo(\n () =>\n themeProp && {\n version: 0.0,\n theme: themeProp,\n scheme,\n tone,\n },\n [themeProp, scheme, tone]\n )\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={value}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object')\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../lib/isRecord'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value: unknown = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): 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('useRootTheme(): the context value is not compatible')\n }\n\n return value as any as ThemeContextValue\n}\n","import {ThemeColorName, ThemeColorSchemeKey} from './lib/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorName\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\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","import {useTheme as useStyledTheme} from 'styled-components'\n\nimport {Theme} from './types'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n","/**\n * @internal\n */\nexport interface _MediaManager {\n getCurrentIndex: () => number\n subscribe: (subscriber: (index: number) => void) => () => void\n}\n\nconst MEDIA_MANAGER_CACHE = new WeakMap<number[], _MediaManager>()\n\nfunction _getMediaQuery(media: number[], index: number) {\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 _createMediaManager(media: number[]): _MediaManager {\n const mediaLen = media.length\n const sizes: {mq: MediaQueryList; index: number}[] = []\n\n if (typeof window !== 'undefined') {\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 const getCurrentIndex = () => {\n for (const {index, mq} of sizes) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (subscriber: (index: number) => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {index, mq} of sizes) {\n const handleChange = () => {\n if (mq.matches) subscriber(index)\n }\n\n if (mq.addEventListener) {\n mq.addEventListener('change', handleChange)\n } else {\n mq.addListener(handleChange)\n }\n\n disposeFns.push(() => {\n if (mq.removeEventListener) {\n mq.removeEventListener('change', handleChange)\n } else {\n mq.removeListener(handleChange)\n }\n })\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getCurrentIndex, subscribe}\n}\n\n/**\n * @internal\n */\nexport function _getMediaManager(media: number[]): _MediaManager {\n let manager = MEDIA_MANAGER_CACHE.get(media)\n\n if (!manager) {\n manager = _createMediaManager(media)\n MEDIA_MANAGER_CACHE.set(media, manager)\n }\n\n return manager\n}\n","import {useEffect, useMemo, useState} from 'react'\nimport {useTheme} from '../../theme'\nimport {_getMediaManager} from './lib/media'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const theme = useTheme()\n const {media} = theme.sanity\n const manager = useMemo(() => _getMediaManager(media), [media])\n const [index, setIndex] = useState(manager.getCurrentIndex)\n\n useEffect(() => manager.subscribe(setIndex), [manager])\n\n return index\n}\n","import {useEffect, useMemo, useState} from 'react'\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n const mq = useMemo(() => {\n if (typeof window === 'undefined') return undefined\n\n return window.matchMedia('(prefers-color-scheme: dark)')\n }, [])\n\n const [dark, setDark] = useState(mq?.matches || false)\n\n useEffect(() => {\n if (!mq) return undefined\n\n setDark(mq.matches)\n\n const handleChange = () => setDark(mq.matches)\n\n mq.addEventListener('change', handleChange)\n\n return () => mq.removeEventListener('change', handleChange)\n }, [mq])\n\n return dark\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\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 if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject} from 'styled-components'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nconst BORDER_VALUE = '1px solid var(--card-border-color)'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: BORDER_VALUE}} : {'&&': {border: 0}}\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: BORDER_VALUE}} : {'&&': {borderTop: 0}}\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: BORDER_VALUE}} : {'&&': {borderRight: 0}}\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: BORDER_VALUE}} : {'&&': {borderBottom: 0}}\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: BORDER_VALUE}} : {'&&': {borderLeft: 0}}\n )\n}\n","import {Property} from 'csstype'\nimport {CSSObject} from 'styled-components'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject} from 'styled-components'\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 {theme} = props\n const {media} = theme.sanity\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","export 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: {offset: number; width: number}\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} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject} from 'styled-components'\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space, theme} = props\n const {fonts, media, space: spaceScale} = theme.sanity\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 = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = spaceScale[_padding[i]]\n const s = spaceScale[_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 {css, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeColorSchemeKey, ThemeFontWeightKey} from '../../theme'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): FlattenSimpleInterpolation {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {theme, $scheme, $tone, $weight} = props\n const font = theme.sanity.fonts.text\n const color = theme.sanity.color.input\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.family};\n font-weight: ${($weight && font.weights[$weight]) || font.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.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.default.disabled.fg};\n --input-placeholder-color: ${color.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.invalid.enabled.fg};\n --input-placeholder-color: ${color.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.default.readOnly.fg};\n --input-placeholder-color: ${color.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {fonts, media} = theme.sanity\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = fonts.text.sizes[sizeIndex] || fonts.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): FlattenSimpleInterpolation {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\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.default.enabled.bg};\n --card-fg-color: ${color.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.invalid.enabled.bg};\n --card-fg-color: ${color.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.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: ${focusRingStyle({\n border: {color: color.default.enabled.border, width: input.border.width},\n focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${focusRingStyle({focusRing})};\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ${color.default.disabled.bg} !important;\n --card-fg-color: ${color.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ${color.default.readOnly.bg} !important;\n --card-fg-color: ${color.default.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.default.hovered.bg};\n --card-fg-color: ${color.default.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.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from 'styled-components'\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 'styled-components'\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} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {media, radius} = theme.sanity\n\n return _responsive(media, props.$radius, (radiusIndex) => ({\n borderRadius: rem(radius[radiusIndex]),\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {BoxShadow, ThemeShadow} from '../../theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: BoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(1)} 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 {theme} = props\n const {media, shadows} = theme.sanity\n\n return _responsive(media, props.$shadow, (shadow) => shadowStyle(shadows[shadow]))\n}\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps\n): FlattenSimpleInterpolation {\n const {$accent, $muted, theme} = props\n const {weights} = theme.sanity.fonts.text\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: ${theme.sanity.fonts.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: 0 0 0 1px var(--card-bg-color), 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: ${weights.bold};\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n}\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, theme} = props\n const {focusRing} = theme.sanity\n\n return {\n backgroundColor: $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 '-webkit-font-smoothing': '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}),\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 {theme} = props\n const {avatar, media} = theme.sanity\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 avatarInitialsStyle(props: ThemeProps): CSSObject {\n const {theme} = props\n const {base} = theme.sanity.color\n\n return {\n width: '100%',\n height: '100%',\n color: base.fg,\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: '3px',\n\n '[data-status=\"editing\"] &': {\n strokeSasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeColorSpotKey, useTheme} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Text} from '../text'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorSpotKey\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 Root = styled.div<{$color: string; $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\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 as: asProp,\n color: colorKey = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 0,\n ...restProps\n } = props\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n const theme = useTheme()\n const color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray\n\n // @todo: remove this\n const avatarSize = theme.sanity.avatar.sizes[size[0]] || theme.sanity.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(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $size={size}\n $color={color}\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 <svg viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n stroke={color}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <Text as=\"span\" size={initialsSize}>\n <strong>{initials}</strong>\n </Text>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Text} from '../text'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {theme} = props\n const {avatar, media} = theme.sanity\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 {theme} = props\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: 0 0 0 1px var(--card-bg-color), inset 0 0 0 1.5px var(--card-hairline-hard-color);\n padding: 0 ${rem(theme.sanity.space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = 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 = 0} = props\n const size = useArrayProp(sizeProp)\n const counterSize = useMemo(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Text as=\"span\" size={counterSize}>\n <strong>{count}</strong>\n </Text>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string'\n ) as Array<React.ReactElement | string>\n}\n","import {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\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 {theme} = props\n const {avatar, media} = theme.sanity\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 Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\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 = 0,\n ...restProps\n } = props\n const children = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string'\n ) as React.ReactElement[]\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 <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} />\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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = 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 * @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 <Root\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 </Root>\n )\n})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps\n): FlattenSimpleInterpolation {\n const {$accent, $muted, theme} = props\n const {fonts} = theme.sanity\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: ${fonts.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps & ThemeProps): CSSObject {\n const {$mode, $tone, theme} = props\n const palette = theme.sanity.color[$mode === 'outline' ? 'muted' : 'solid']\n const color = palette[$tone] || palette.default\n\n return {\n backgroundColor: color.enabled.bg,\n color: color.enabled.fg,\n boxShadow: `inset 0 0 0 1px ${color.enabled.border}`,\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Label} from '../label'\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 JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle\n)\n\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,\n mode = 'default',\n padding = 1,\n radius = 2,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $mode={mode}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Label size={fontSize}>{children}</Label>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle\n)\n\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 <Root\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})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\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 <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {ThemeColorBase, ThemeColorGenericState} from '../../theme'\n\n/**\n * @internal\n */\nexport function _colorVarsStyle(\n base: ThemeColorBase,\n color: ThemeColorGenericState,\n checkered = false\n): CSSObject {\n return {\n // Base\n // @todo: rename to \"--base-\"?\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 '--card-focus-ring-color': base.focusRing,\n\n // Card\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.bg2 || color.bg} 0% 50%)`\n : undefined,\n '--card-fg-color': color.fg,\n '--card-border-color': color.border,\n '--card-muted-fg-color': color.muted?.fg,\n '--card-accent-fg-color': color.accent?.fg,\n '--card-link-fg-color': color.link?.fg,\n '--card-code-bg-color': color.code?.bg,\n '--card-code-fg-color': color.code?.fg,\n '--card-skeleton-color-from': color.skeleton?.from,\n '--card-skeleton-color-to': color.skeleton?.to,\n\n // @todo: deprecate\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 {css, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(): FlattenSimpleInterpolation {\n return css`\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\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\nconst buttonTheme = {border: {width: 1}}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps\n): CSSObject[] {\n const {$mode, theme} = props\n const {focusRing} = theme.sanity\n const base = theme.sanity.color.base\n const mode = theme.sanity.color.button[$mode] || theme.sanity.color.button.default\n const color = mode[props.$tone] || mode.default\n const border = {width: buttonTheme.border.width, color: 'var(--card-border-color)'}\n\n return [\n _colorVarsStyle(base, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _colorVarsStyle(base, color.disabled),\n \"&:not([data-disabled='true'])\": {\n '&:focus': {\n boxShadow: focusRingStyle({base, border, focusRing}),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: focusRingBorderStyle(border),\n },\n '@media (hover: hover)': {\n '&:hover': _colorVarsStyle(base, color.hovered),\n '&:active': _colorVarsStyle(base, color.pressed),\n },\n '&[data-selected]': _colorVarsStyle(base, color.pressed),\n },\n },\n theme.sanity.styles?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, 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 JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone} & ResponsiveRadiusStyleProps & 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'>,\n ref: React.ForwardedRef<HTMLButtonElement>\n) {\n const {\n children,\n disabled,\n fontSize,\n icon,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n ...restProps\n } = props\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 theme = useTheme()\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 <Root\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 >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box\n flex={iconRight ? 1 : undefined}\n marginLeft={icon ? space : undefined}\n marginRight={iconRight ? space : undefined}\n >\n <Text\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={theme.sanity.button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps\n): Array<FlattenSimpleInterpolation | (() => FlattenSimpleInterpolation)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): FlattenSimpleInterpolation {\n const {$checkered, theme} = props\n const space = theme.sanity.space\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: 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): FlattenSimpleInterpolation {\n const {$checkered, $focusRing, theme} = props\n const {focusRing} = theme.sanity\n const {base, card, dark} = theme.sanity.color\n const border = {width: 0, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${dark ? 'dark' : 'light'};\n\n ${_colorVarsStyle(base, card.enabled, $checkered)}\n\n background-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 ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : 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 ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : undefined};\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, ThemeColorSchemeKey, 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 pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\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 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 return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\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 $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})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const color = theme.sanity.color.input\n const {focusRing, input, radius} = theme.sanity\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.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.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: 2 !important;\n }\n }\n }\n\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.default.enabled.border},\n focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n\n &[data-read-only] + span {\n background-color: ${color.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.readOnly.border,\n })};\n color: ${color.default.readOnly.fg};\n }\n\n &:not([data-read-only]):disabled + span {\n background-color: ${color.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.disabled.border,\n })};\n color: ${color.default.disabled.fg};\n }\n\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, 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 Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : 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 </Root>\n )\n})\n","import {css, FlattenInterpolation, ThemeProps as StyledThemeProps} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {Theme} from '../../theme'\n\nfunction codeSyntaxHighlightingStyle({theme}: ThemeProps) {\n const color = theme.sanity.color.syntax\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(): FlattenInterpolation<StyledThemeProps<Theme>> {\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 & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {container, media} = theme.sanity\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle\n)\n\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 <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\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 <Root\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 </Root>\n )\n})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(\n props: HeadingStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {$accent, $muted, theme} = props\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: ${theme.sanity.fonts.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: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\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 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 Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n\n return _responsive(theme.sanity.media, props.$space, (spaceIndex) => {\n const space = rem(theme.sanity.space[spaceIndex])\n\n return {\n margin: `-${space} 0 0 -${space}`,\n '& > div': {padding: `${space} 0 0 ${space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\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 () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp]\n )\n\n return (\n <Root data-ui=\"Inline\" {...restProps} $space={useArrayProp(space)} forwardedAs={as} ref={ref}>\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Box} from '../box'\nimport {Code} from '../code'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: number | number[]\n}\n\nfunction kbdStyle() {\n return css`\n background: var(--card-bg-color);\n font: inherit;\n box-shadow: inset 0 0 0 1px var(--card-hairline-hard-color);\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst Root = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\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 = 1, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Code as=\"span\" muted size={fontSize}>\n {children}\n </Code>\n </Box>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","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, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} from '../../hooks'\nimport {useTheme} 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 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 ref: React.ForwardedRef<HTMLDivElement>\n) {\n const theme = useTheme()\n const {children, media = theme.sanity.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\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(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef]\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: React.Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\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 // 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('useLayer(): the context value is not compatible')\n }\n\n return value\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\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.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n const parent = useContext(LayerContext)\n const zOffset = useArrayProp(zOffsetProp)\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n const [size, setSize] = useState(0)\n\n const registerChild = useCallback(() => {\n setSize((v) => v + 1)\n\n return () => setSize((v) => v - 1)\n }, [])\n\n const parentRegisterChild = parent?.registerChild\n\n useEffect(() => {\n if (!parentRegisterChild) return\n\n return parentRegisterChild()\n }, [parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({version: 0.0, isTopLayer: size === 0, registerChild, size, zIndex}),\n [size, registerChild, zIndex]\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {children, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex} = useLayer()\n\n return (\n <Root {...restProps} data-ui=\"Layer\" ref={ref} style={{...style, zIndex}}>\n {children}\n </Root>\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})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/element')\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof window === '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\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\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\nconst __BROWSER__ = typeof window !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\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 <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme} 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 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 Root = 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 ref: React.ForwardedRef<HTMLDivElement>\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme().sanity\n const forwardedRef = useForwardedRef(ref)\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 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(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\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 }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 27\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 11\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {DEFAULT_POPOVER_ARROW_HEIGHT, DEFAULT_POPOVER_ARROW_WIDTH} from './constants'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n height: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n }\n\n [data-placement^='right'] > & {\n left: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst BorderPath = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\nexport const PopoverArrow = forwardRef(function PopoverArrow(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n return (\n <Root data-ui=\"Popover__arrow\" {...props} ref={ref}>\n <svg\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n viewBox=\"0 0 27 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <BorderPath d=\"M1.18708 1C3.29803 1.0011 5.29585 1.95479 6.62414 3.59561L11.1683 9.20895C12.369 10.6922 14.631 10.6922 15.8317 9.20894L20.3759 3.59561C21.7042 1.95478 23.702 1.0011 25.8129 1H21.9436C21.0533 1.49255 20.2545 2.15618 19.5986 2.96641L15.0545 8.57975C14.254 9.56855 12.746 9.56855 11.9455 8.57975L7.40139 2.96642C6.74548 2.15618 5.94673 1.49255 5.05643 1H1.18708Z\" />\n <ShapePath d=\"M1.18342 0C3.59749 0 5.88246 1.0901 7.40138 2.96642L11.9455 8.57975C12.746 9.56855 14.254 9.56855 15.0545 8.57975L19.5986 2.96641C21.1175 1.0901 23.4025 0 25.8166 0H27H0H1.18342Z\" />\n </svg>\n </Root>\n )\n})\n","import {Strategy} from '@floating-ui/react-dom'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled, {CSSObject} from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {ThemeProps} from '../../styles'\nimport {ThemeColorSchemeKey} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {useLayer} from '../../utils'\nimport {Card} from '../card'\nimport {Container} from '../container'\nimport {\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {PopoverArrow} from './popoverArrow'\n\nfunction popoverCardStyle(props: {$boundaryWidth?: number} & ThemeProps): CSSObject {\n const {$boundaryWidth} = props\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n flexDirection: 'column',\n\n width: 'max-content',\n minWidth: 'min-content',\n maxWidth:\n typeof $boundaryWidth === 'number'\n ? `${$boundaryWidth - DEFAULT_POPOVER_PADDING * 2}px`\n : undefined,\n }\n}\n\nconst Root = memo(styled(Card)(popoverCardStyle))\n\nconst PopoverContainer = memo(styled(Container)`\n max-height: inherit;\n max-width: inherit;\n`)\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n boundaryWidth?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width?: number | 'auto' | (number | 'auto')[]\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 arrow,\n arrowRef,\n arrowX,\n arrowY,\n boundaryWidth,\n children,\n padding,\n placement,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width = 'auto',\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 position: strategy,\n top: y,\n left: x,\n zIndex,\n ...style,\n }),\n [strategy, style, x, y, zIndex]\n )\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = 0 - DEFAULT_POPOVER_ARROW_WIDTH\n\n return style\n }, [arrowX, arrowY, staticSide])\n\n return (\n <Root\n {...restProps}\n $boundaryWidth={boundaryWidth}\n data-placement={placement}\n data-ui=\"Popover\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n >\n <PopoverContainer\n data-ui=\"Popover__wrapper\"\n flex={1}\n overflow={overflow}\n padding={padding}\n sizing=\"border\"\n width={width}\n >\n {children}\n </PopoverContainer>\n\n {arrow && <PopoverArrow ref={arrowRef} style={arrowStyle} />}\n </Root>\n )\n })\n)\n\nPopoverCard.displayName = 'PopoverCard'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n UseFloatingProps,\n} from '@floating-ui/react-dom'\nimport {cloneElement, forwardRef, memo, useCallback, useEffect, useMemo, useRef} from 'react'\nimport {useForwardedRef, useArrayProp, useElementSize} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps, ResponsiveWidthProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {PopoverCard} from './popoverCard'\n\n/**\n * @public\n */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps,\n ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_margins?: PopoverMargins\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n portal?: boolean | string\n preventOverflow?: boolean\n referenceElement?: HTMLElement | null\n matchReferenceWidth?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\n/** @public */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>\n ): React.ReactElement {\n const theme = useTheme()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n arrow: arrowProp = true,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements,\n matchReferenceWidth: matchReferenceWidthProp,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = theme.sanity.layer?.popover.zOffset,\n ...restProps\n } = props\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n })\n )\n }\n\n // Define distance between reference and floating element\n ret.push(\n offset({\n mainAxis: arrowProp ? DEFAULT_POPOVER_DISTANCE : 0,\n })\n )\n\n // Track sizes\n if (constrainSize || matchReferenceWidthProp) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n if (matchReferenceWidthProp) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${availableWidth}px`\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement,\n constrainSize,\n margins,\n matchReferenceWidth: matchReferenceWidthProp,\n padding: DEFAULT_POPOVER_PADDING,\n })\n )\n }\n\n // Shift the popover so its sits within the boundary eleement\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: boundaryElement || 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 ret.push(\n hide({\n boundary: boundaryElement || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n })\n )\n\n return ret\n }, [\n arrowProp,\n boundaryElement,\n constrainSize,\n fallbackPlacements,\n margins,\n matchReferenceWidthProp,\n preventOverflow,\n ])\n\n const floatingProps: UseFloatingProps = useMemo(\n () => ({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n }),\n [middleware, placementProp]\n )\n\n const {\n x,\n y,\n placement,\n reference: referenceRef,\n floating: floatingRef,\n middlewareData,\n strategy,\n } = useFloating(floatingProps)\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n floatingRef(node)\n },\n [floatingRef, forwardedRef]\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n referenceRef(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, referenceRef]\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n referenceRef(referenceElement || null)\n }, [referenceRef, referenceElement])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n boundaryWidth={preventOverflow ? boundarySize?.width : undefined}\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 strategy={strategy}\n tone={tone}\n x={x}\n y={y}\n width={width}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n return (\n <>\n {/* the popover */}\n {open && (\n <>\n {portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {popover}\n </Portal>\n ) : (\n popover\n )}\n </>\n )}\n\n {/* the referred element */}\n {child}\n </>\n )\n })\n)\n\nPopover.displayName = 'Popover'\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\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.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.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.default.enabled.border},\n focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.default.readOnly.border};\n background: ${color.default.readOnly.bg};\n\n &::after {\n background: ${color.default.readOnly.fg};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.default.disabled.border};\n background: ${color.default.disabled.bg};\n\n &::after {\n background: ${color.default.disabled.fg};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {css, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\nimport {ThemeFontSize} from '../../theme'\n\nfunction rootStyle(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const font = theme.sanity.fonts.text\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.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 {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\n\n return css`\n /* enabled */\n background-color: ${color.default.enabled.bg};\n color: ${color.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.default.hovered.bg};\n color: ${color.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.default.enabled.border},\n focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.default.readOnly.bg};\n color: ${color.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.default.disabled.bg};\n color: ${color.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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 {theme, $fontSize} = props\n const {sizes} = theme.sanity.fonts.text\n\n return _responsive(theme.sanity.media, $fontSize, (sizeIndex) =>\n textSize(sizes[sizeIndex] || 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) => FlattenSimpleInterpolation)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const color = theme.sanity.color.input\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.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {SelectIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\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?: number | number[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: number[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\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 = 1,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 <SelectIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\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 <Root\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})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.button.default\n\n return css`\n --switch-bg-color: ${color.default.enabled.bg};\n --switch-fg-color: ${color.default.enabled.fg};\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})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.positive.enabled.bg};\n --switch-fg-color: ${color.positive.enabled.fg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.default.hovered.bg};\n --switch-fg-color: ${color.default.hovered.fg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.positive.hovered.bg};\n --switch-fg-color: ${color.positive.hovered.fg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.default.disabled.bg};\n --switch-fg-color: ${color.default.disabled.fg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const {input} = theme.sanity\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): FlattenSimpleInterpolation {\n const {$indeterminate, theme} = props\n const {input} = theme.sanity\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\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} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = 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 * @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 = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root 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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = 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 * @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 = 1,\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 $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 </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, useRootTheme} from '../../theme'\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 | '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 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?: number | number[]\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 Root = 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\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 border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon,\n iconRight,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 1,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\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(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\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 $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 {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n border,\n fontSize,\n icon,\n iconRight,\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 <Button\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 <Root 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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 7.5px 7.5px;\n }\n\n /* position: absolute;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n &:not([hidden]) {\n display: block;\n }\n transform-origin: 7.5px 7.5px;\n } */\n\n [data-placement^='top'] > & {\n bottom: -27px;\n }\n\n [data-placement^='right'] > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -27px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst Border = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst Shape = styled.path`\n fill: var(--card-bg-color);\n`\n\ninterface TooltipArrowProps {}\n\nexport const TooltipArrow = forwardRef(function TooltipArrow(\n props: TooltipArrowProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const {...restProps} = props\n\n return (\n <Root data-ui=\"Tooltip__arrow\" {...restProps} ref={ref}>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\">\n <Border d=\"M11.5266 1C11.032 1.32802 10.5837 1.73105 10.1995 2.20057L9.04792 3.6081C8.24771 4.58614 6.7523 4.58614 5.95209 3.6081L4.80047 2.20057C4.41632 1.73105 3.96796 1.32802 3.47341 1H0.156727C1.65639 1 3.07687 1.67313 4.02651 2.83381L5.17813 4.24134C6.37844 5.70839 8.62156 5.70839 9.82187 4.24134L10.9735 2.83381C11.9231 1.67313 13.3436 1 14.8433 1H11.5266Z\" />\n <Shape d=\"M0.156725 0C1.95632 0 3.66089 0.80776 4.80047 2.20057L5.95209 3.6081C6.75229 4.58614 8.24771 4.58614 9.04791 3.6081L10.1995 2.20057C11.3391 0.80776 13.0437 0 14.8433 0H15H0H0.156725Z\" />\n </svg>\n </Root>\n )\n})\n","import {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n} from '@floating-ui/react-dom'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n CSSProperties,\n ForwardedRef,\n} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {Placement} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement} from '../../utils'\nimport {Card} from '../card'\nimport {TooltipArrow} from './tooltipArrow'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n}\n\nconst Root = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const boundaryElementContext = useBoundaryElement()\n const theme = useTheme()\n const {\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp,\n padding,\n placement: placementProp = 'bottom',\n portal,\n scheme,\n shadow = 2,\n zOffset = theme.sanity.layer?.tooltip.zOffset,\n ...restProps\n } = props\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: 4,\n rootBoundary,\n })\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: 3}))\n\n // Shift the tooltip so its sits with the boundary eleement\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: 4,\n })\n )\n\n // Place arrow\n ret.push(arrow({element: arrowRef, padding: 2}))\n\n return ret\n }, [boundaryElement, fallbackPlacements])\n\n const {x, y, placement, reference, floating, middlewareData, update, strategy} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n }),\n [strategy, x, y]\n )\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = -15\n\n return style\n }, [arrowX, arrowY, staticSide])\n\n const [isOpen, setIsOpen] = useState(false)\n const handleBlur = useCallback(() => setIsOpen(false), [])\n const handleFocus = useCallback(() => setIsOpen(true), [])\n const handleMouseEnter = useCallback(() => setIsOpen(true), [])\n const handleMouseLeave = useCallback(() => setIsOpen(false), [])\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 (!isOpen) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n setIsOpen(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [isOpen, referenceElement])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled) setIsOpen(false)\n }, [disabled])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content) setIsOpen(false)\n }, [content])\n\n // Update reference\n useEffect(() => reference(referenceElement), [reference, referenceElement])\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 forwardedRef.current = node\n floating(node)\n },\n [floating, forwardedRef]\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef]\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 ref: setReference,\n })\n }, [childProp, handleBlur, handleFocus, handleMouseEnter, handleMouseLeave, setReference])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const root = (\n <Root data-ui=\"Tooltip\" {...restProps} ref={setFloating} style={rootStyle} zOffset={zOffset}>\n <Card\n data-ui=\"Tooltip__card\"\n data-placement={placement}\n padding={padding}\n radius={2}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n <TooltipArrow ref={setArrow} style={arrowStyle} />\n </Card>\n </Root>\n )\n\n return (\n <>\n {child}\n\n {isOpen && (\n <>\n {portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {root}\n </Portal>\n ) : (\n root\n )}\n </>\n )}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick]\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: number | number[]\n /** @beta */\n relatedElements?: HTMLElement[]\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 3,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp]\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value]\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query]\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : []\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements]\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange]\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange]\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange]\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus]\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef]\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding]\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton]\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value]\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ]\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused]\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n }\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children]\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const color = theme.sanity.color.base\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n background: color.shadow.umbra,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers'\nimport {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {DialogPosition} from '../../types'\nimport {Layer, Portal, useLayer} from '../../utils'\nimport {\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: number | number[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n radius: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nconst Root = styled(Layer)<ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps>(\n responsivePaddingStyle,\n dialogStyle,\n responsiveDialogPositionStyle\n)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Card)`\n position: relative;\n z-index: 2;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -1px;\n border-bottom: 1px solid var(--card-hairline-soft-color);\n }\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n border-top: 1px solid var(--card-hairline-soft-color);\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first interactive element in the contents\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [isTopLayer, onClose]\n )\n )\n\n useClickOutside(\n useCallback(() => {\n if (!isTopLayer || !onClickOutside) return\n\n onClickOutside()\n }, [isTopLayer, onClickOutside]),\n [rootElement]\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef]\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef]\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex>\n <Box flex={1} padding={4}>\n {header && (\n <Text id={labelId} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box padding={2}>\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={3}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const dialog = useDialog()\n const theme = useTheme()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 3,\n cardShadow = 4,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n padding: paddingProp = 4,\n portal,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || theme.sanity.layer?.dialog.zOffset,\n ...restProps\n } = props\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n\n const handleFocus = useCallback((event: React.FocusEvent<HTMLDivElement>) => {\n const target = event.target\n const cardElement = cardRef.current\n\n if (!cardElement) {\n return\n }\n\n if (target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n }, [])\n\n const labelId = `${id}_label`\n\n return (\n <Portal __unstable_name={portal}>\n <Root\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset]\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: number | number[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n &:not([hidden]) {\n display: block;\n }\n font: inherit;\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\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 = 1, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root 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 </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\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'\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 rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => 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}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, 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 [rootElement, 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 rootElement?.focus()\n setActiveIndex(-1)\n }, [rootElement, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\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 activeIndexRef.current = 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 activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, 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}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n ref: 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 = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement]\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 useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside]\n ),\n [rootElement]\n )\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 // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ]\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\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 </Root>\n </MenuContext.Provider>\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {ThemeColorSchemeKey} from '../../theme'\nimport {Placement} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: number | number[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements]\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements]\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ]\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref]\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef]\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ]\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n","import styled, {StyledComponent} from 'styled-components'\nimport {Theme} from '../../theme'\n\n/**\n * @public\n */\nexport const MenuDivider: StyledComponent<'hr', Theme> = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {SelectableTone} from '../../types/selectable'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): FlattenSimpleInterpolation {\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: 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): FlattenSimpleInterpolation {\n const {$tone, theme} = props\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n ${_colorVarsStyle(base, 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 ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {SelectableTone} from '../../types/selectable'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: number | number[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize,\n icon,\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 {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'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 if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick]\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) 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 const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\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 shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\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 onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Box padding={padding}>\n <Flex>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n <Box flex={1} marginLeft={icon ? space : undefined}>\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {text}\n </Text>\n </Box>\n\n <Box marginLeft={space}>\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Box>\n </Flex>\n </Box>\n </Selectable>\n </Popover>\n )\n}\n","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\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 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 = 2,\n hotkeys,\n icon,\n iconRight,\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 menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\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 setRef = useCallback(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref]\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={tone}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...paddingProps}>\n <Flex as=\"span\">\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box\n flex={1}\n marginLeft={icon ? space : undefined}\n marginRight={iconRight ? space : undefined}\n >\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Box marginLeft={space} style={{marginTop: -4, marginBottom: -4}}>\n <Hotkeys fontSize={fontSize} keys={hotkeys} />\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive} from '../../styles'\nimport {Theme, ThemeFontKey} from '../../theme'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>(\n ({$size, $style, theme}: {$size: number[]; $style: ThemeFontKey; theme: Theme}) => {\n const {media} = theme.sanity\n const font = theme.sanity.fonts[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = font.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n }\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport {useForwardedRef} from '../../hooks'\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\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<React.HTMLProps<HTMLButtonElement>, 'aria-controls' | 'as' | 'id' | 'label' | 'type'>,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>\n) {\n const {\n icon,\n id,\n focused,\n fontSize,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\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 const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\n\n return (\n <Button\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={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\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 = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n })\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\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 <Inline data-ui=\"TabList\" {...restProps} onKeyDown={handleKeyDown} ref={ref} role=\"tablist\">\n {tabs}\n </Inline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport styled from 'styled-components'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ThemeColorToneKey} from '../../theme'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n}\n\nconst Root = styled(Card)`\n pointer-events: all;\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\n/**\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>\n): React.ReactElement {\n const {closable, description, onClose, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={2}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && <Text weight=\"semibold\">{title}</Text>}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ninterface ToastState {\n toasts: {\n dismiss: () => void\n id: string\n params: ToastParams\n }[]\n}\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, setState] = useState<ToastState>({toasts: []})\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((params: ToastParams) => {\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState) => {\n const idx = prevState.toasts.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.toasts.slice(0)\n\n toasts.splice(idx, 1)\n\n return {...prevState, toasts}\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState) => {\n return {\n ...prevState,\n toasts: prevState.toasts\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ]),\n }\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n []\n )\n\n const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.toasts.map(({dismiss, id, params}) => (\n <motion.div\n animate={{opacity: 1, y: 0, scale: 1}}\n exit={{opacity: 0, scale: 0.5, transition: {duration: 0.2}}}\n initial={{opacity: 0, y: 32, scale: 0.25}}\n key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>\n ): React.ReactElement {\n const {children, space = 1, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n []\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements]\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]')\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n })\n)\n\nTree.displayName = 'Tree'\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\n\nexport function treeItemRootStyle(): FlattenSimpleInterpolation {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const $tone = 'default'\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n /* <div role=\"none\"><a data-ui=\"TreeItem__box\" role=\"treeitem\" tabIndex=\"0\"></div> */\n &[role='none'] {\n & > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_colorVarsStyle(base, tone.selected)}\n }\n }\n }\n\n /* <div role=\"treeitem\" tabIndex=\"0\"><div data-ui=\"TreeItem__box\"></div> */\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {$level, theme} = props\n const {space} = theme.sanity\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, Flex, Text} from '../../primitives'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize,\n href,\n icon,\n id: idProp,\n muted,\n onClick,\n padding = 3,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree]\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem__box' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused]\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["EMPTY_ARRAY","EMPTY_RECORD","FLOATING_STATIC_SIDES","top","right","bottom","left","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","sanity","spaceIndex","space","responsiveFont","fontKey","$size","$weight","fonts","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","JSON","stringify","useMemo","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","type","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","multiplyChannel","b","s","multiply","r","clamp","g","num","max","min","screenChannel","screen","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbToHex","rgbToHsl","cmin","cmax","delta","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","str","isHex","parseHsl","res","exec","parseColor","color","startsWith","rgba","a","rgb","createButtonTones","opts","dark","solid","muted","mode","default","button","primary","positive","caution","critical","createButtonModes","ghost","bleed","createCardStates","enabled","card","state","disabled","hovered","pressed","selected","black","white","colors","lightest","lighter","light","darker","darkest","transparent","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","tone","bg2","accent","link","code","input","placeholder","selectable","spot","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","createInputModes","readOnly","invalid","createMutedTones","createSelectableTones","_createSelectableStates","createSolidTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","_multiply","_screen","hues","NEUTRAL_TONES","tints","skeletonFrom","mix","mix2","defaultTints","isNeutral","mainShade","secondaryShade","medium","semibold","bold","heading","label","text","studioTheme","avatar","distance","textWeight","container","offset","radius","shadows","checkbox","radio","markSize","switch","transitionDurationMs","transitionTimingFunction","DEFAULT_THEME_LAYER","dialog","zOffset","popover","tooltip","getGlobalScope","globalThis","self","globalScope","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","themeProp","rootColor","layer","rootLayer","restTheme","colorScheme","version","jsx","Provider","StyledThemeProvider","isRecord","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","MEDIA_MANAGER_CACHE","_getMediaQuery","_createMediaManager","mediaLen","mediaQuery","mq","matchMedia","getCurrentIndex","matches","disposeFns","handleChange","addListener","removeListener","disposeFn","_getMediaManager","manager","useMediaIndex","setIndex","usePrefersDark","setDark","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","BORDER_VALUE","responsiveBorderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","focusRingStyle","focusRingOutsetWidth","focusRingInsetWidth","bgColor","join","GRID_CSS","GRID_AUTO_COLUMS","auto","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","spaceScale","len","_padding","_space","_fontSize","_","emSize","p","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","font","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","$radius","radiusIndex","borderRadius","toBoxShadow","shadowStyle","boxShadow","responsiveShadowStyle","$shadow","textBaseStyle","$accent","$muted","Root","styled","div","SpanWithTextOverflow","span","Text","forwardRef","childrenProp","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","zIndex","opacity","transition","$color","backgroundColor","userSelect","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeSasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","Avatar","as","asProp","colorKey","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","d","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","Fragment","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","counterSize","childrenToElementArray","childrenArray","isFragment","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","labelBaseStyle","Label","badgeStyle","$mode","palette","cursor","Badge","Flex","forwardedAs","rotate","keyframes","Spinner","SpinnerIcon","_colorVarsStyle","checkered","_c","_d","_e","_f","_g","_h","buttonBaseStyles","buttonTheme","buttonColorStyles","LoadingBox","Button","icon","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","spaceProp","boxProps","isValidElement","createElement","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","Card","__unstable_checkered","__unstable_focusRing","toneProp","rootTheme","checkboxBaseStyles","inputElementStyles","Input","Checkbox","forwardedRef","checked","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","$width","maxWidth","Container","Grid","headingBaseStyle","Heading","inlineBaseStyle","verticalAlign","inlineSpaceStyle","Inline","kbdStyle","kbd","KBD","BoundaryElementContext","BoundaryElementProvider","DEFAULT_VALUE","useBoundaryElement","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","LayerContext","useLayer","LayerProvider","zOffsetProp","maxMediaIndex","registerChild","v","parentRegisterChild","isTopLayer","LayerChildren","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","_raf","fn","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_MARGINS","apply","margins","args","placement","platform","rects","floating","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","BorderPath","path","ShapePath","PopoverArrow","xmlns","popoverCardStyle","$boundaryWidth","memo","PopoverContainer","PopoverCard","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","boundaryWidth","strategy","xProp","yProp","rootStyle","staticSide","split","arrowStyle","displayName","Popover","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","matchReferenceWidthProp","open","placementProp","preventOverflow","referenceElement","shadowProp","widthProp","boundarySize","middleware","flip","mainAxis","shift","hide","floatingProps","whileElementsMounted","autoUpdate","referenceRef","floatingRef","middlewareData","useFloating","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","radioBaseStyle","inputElementStyle","dist","Radio","inputBaseStyle","inputColorStyle","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","select","IconBox","Select","SelectIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInput","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","Border","Shape","TooltipArrow","Tooltip","fallbackPlacementsProp","setReferenceElement","update","isOpen","setIsOpen","handleBlur","handleFocus","handleMouseEnter","handleMouseLeave","handleWindowMouseMove","isHoveringReference","onBlur","onFocus","onMouseEnter","onMouseLeave","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleClick","setTimeout","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","e","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","ChevronDownIcon","inputValue","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","background","responsiveDialogPositionStyle","$position","DialogContext","useDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","rootElement","setRootElement","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","cardElement","DialogProvider","contextValue","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","delay","visible","setVisible","clearTimeout","$style","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","Tab","elementRef","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","TextBox","Toast","closable","description","cardTone","ToastContext","ToastContainer","toastId","ToastProvider","setState","toasts","toastsRef","params","duration","dismiss","timeoutId","prevState","findIndex","t","AnimatePresence","initial","motion","animate","scale","exit","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","focusedElementRef","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","level","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAMA,cAAqB,EAAC;AAK5B,MAAMC,eAAoC,CAAA,CAAC;AAK3C,MAAMC,qBAA6E,GAAA;EACxFC,GAAK,EAAA,QAAA;EACLC,KAAO,EAAA,MAAA;EACPC,MAAQ,EAAA,KAAA;EACRC,IAAM,EAAA;AACR,CAAA;ACXgB,SAAAC,cAAA,CAAeC,MAAgBC,KAA+C,EAAA;EAC5F,OAAOD,IAAK,CAAAE,MAAA,CAAkB,CAACC,KAAA,EAAOC,GAAQ,KAAA;IAC5CD,KAAA,CAAMC,GAAO,CAAA,GAAAH,KAAA;IAEN,OAAAE,KAAA;EACT,CAAA,EAAG,CAAE,CAAA,CAAA;AACP;AAKO,SAASE,IAAIC,UAAgC,EAAA;EAClD,IAAIA,UAAe,KAAA,CAAA,EAAU,OAAA,CAAA;EAE7B,iBAAUA,UAAa,GAAA,EAAA;AACzB;AAKgB,SAAAC,WAAA,CACdC,KACA,EAAAC,MAAA,EACAC,QACa,EAAA;EACb,MAAMC,UAAa,GAAA,CAAAF,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQG,GAAI,CAAAF,QAAA,CAAA,KAAa,EAAC;EAE7C,OAAOC,UAAW,CAAAC,GAAA,CAAI,CAACC,SAAA,EAAWC,UAAe,KAAA;IAC/C,IAAIA,UAAe,KAAA,CAAA,EAAU,OAAAD,SAAA;IAE7B,OAAO;MAAC,yCAAkCL,KAAM,CAAAM,UAAA,GAAa,aAAUD;KAAS;EAAA,CACjF,CAAA;AACH;AAKgB,SAAAE,aAAA,CAA0BC,KAA0BC,UAAuB,EAAA;EACzF,IAAID,GAAQ,KAAA,KAAA,CAAA,EAAW,OAAOC,UAAc,IAAAzB,WAAA;EAE5C,OAAO0B,MAAMC,OAAQ,CAAAH,GAAG,CAAI,GAAAA,GAAA,GAAM,CAACA,GAAG,CAAA;AACxC;AAKO,SAASI,mBACd,CAAAC,KAAA,EACAC,KACA,EACoB;EAAA,IADpBC,YAAA,uEAAyB/B,WACL;EACpB,IAAI,CAAC0B,KAAA,CAAMC,OAAQ,CAAAI,YAAY,CAAG,EAAA;IAC1B,MAAA,IAAIC,MAAM,uCAAuC,CAAA;EACzD;EAEI,IAAAD,YAAA,CAAaE,WAAW,CAAG,EAAA;IACtB,OAAA,IAAA;EACT;EAEO,OAAAlB,WAAA,CAAYc,MAAMK,MAAO,CAAAlB,KAAA,EAAOe,YAAA,EAAeI,cACpD5B,cAAe,CAAAuB,KAAA,EAAOjB,IAAIgB,KAAM,CAAAK,MAAA,CAAOE,KAAM,CAAAD,UAAA,CAAW,CAAC,CAAA,CAC3D;AACF;AC3DgB,SAAAE,cAAA,CACdC,SACAR,KACa,EAAA;EACb,MAAM;IAACS,KAAA;IAAOC,OAAS;IAAAX;EAAA,CAAS,GAAAC,KAAA;EAChC,MAAM;IAACW,KAAA;IAAOzB;GAAK,GAAIa,KAAM,CAAAK,MAAA;EAC7B,MAAM;IAACQ,MAAA;IAAQC,KAAO;IAAAC;EAAA,IAAWH,KAAM,CAAAH,OAAA,CAAA;EACvC,MAAMO,UAAc,GAAAL,OAAA,IAAWI,OAAQ,CAAAJ,OAAA,CAAA,IAAaI,OAAQ,CAAAE,OAAA;EAG5D,MAAMC,cAAcJ,KAAM,CAAA,CAAA,CAAA;EAE1B,MAAMK,IAAkB,GAAA;IACtBC,QAAU,EAAA,UAAA;IACVC,UAAY,EAAAR,MAAA;IACZG,UAAA;IACAM,OAAS,EAAA,OAAA;IACTC,MAAQ,EAAA,CAAA;IAER,UAAY,EAAA;MACVC,OAAS,EAAA,IAAA;MACTC,OAAS,EAAA,OAAA;MACTC,MAAQ,EAAA;IACV,CAAA;IAEA,SAAW,EAAA;MACTF,OAAS,EAAA,IAAA;MACTC,OAAS,EAAA,OAAA;MACTC,MAAQ,EAAA;IACV,CAAA;IAEA,oBAAsB,EAAA;MACpBD,OAAS,EAAA;IACX,CAAA;IAEA,iBAAmB,EAAA;MACjBA,OAAS,EAAA;IACX;EAAA,CACF;EAGA,IAAI,CAACf,KAAO,EAAA;IAEN,IAAA,CAACF,eAAemB,MAAQ,EAAA;MAE1BC,OAAA,CAAQC,KAAK,uCAAyC,EAAA;QAACpB;QAASC,KAAO;QAAAT,KAAA;QAAOkB;OAAK,CAAA;MAEnFX,cAAA,CAAemB,MAAS,GAAA,IAAA;IAC1B;IAEA,OAAO,CAACR,IAAI,CAAA;EACd;EAEM,MAAAW,IAAA,GAAO5C,WAAY,CAAAC,KAAA,EAAOuB,KAAO,EAACqB,aAAcC,QAAS,CAAAlB,KAAA,CAAMiB,SAAc,CAAA,IAAAb,WAAW,CAAC,CAAA;EAExF,OAAA,CAACC,IAAM,EAAA,GAAGW,IAAI,CAAA;AACvB;AAEO,SAASE,SAASC,IAAgC,EAAA;EACjD,MAAA;IAACC;IAAgBC,eAAiB;IAAAH,QAAA,EAAAA;IAAUI,QAAU;IAAAC,aAAA;IAAeC;EAAc,CAAA,GAAAL,IAAA;EACzF,MAAMM,YAAYL,cAAiB,GAAAC,eAAA;EACnC,MAAMK,YAAYF,UAAa,GAAAC,SAAA;EACzB,MAAAE,UAAA,GAAA,CAAcD,YAAYJ,QAAY,IAAA,CAAA;EAC5C,MAAMM,iBAAiBC,IAAK,CAAAC,KAAA,CAAOZ,YAAW,KAAS,GAAA,CAAC,IAAI,CAAI,GAAA,CAAA;EAC1D,MAAAa,gBAAA,GAAA,CAAoBL,YAAYE,cAAkB,IAAA,CAAA;EAEjD,OAAA;IACLV,QAAA,EAAUhD,IAAIgD,SAAQ,CAAA;IACtBM,UAAA,iBAAoBA,UAAgBN,gBAAAA,SAAAA,MAAAA;IACpCK,aAAA,EAAerD,IAAIqD,aAAa,CAAA;IAChCS,SAAA,uBAAyB9D,GAAA,CAAImD,eAAe,CAAA,MAAA;IAE5C,UAAY,EAAA;MACVY,SAAW,iBAAQ/D,GAAI,CAAA,CAAA,GAAIuD,SAAS,CAAA;IACtC,CAAA;IAEA,SAAW,EAAA;MACTS,YAAc,EAAA;IAChB,CAAA;IAEA,+BAAiC,EAAA;MAC/BhB,yBAAkBU,cAAA,kBAAA;MAClBnB,MAAA,EAAQvC,IAAI6D,gBAAgB;IAC9B,CAAA;IAEA,sBAAwB,EAAA;MACtBb,yBAAkBI,QAAA,kBAAA;MAClBb,MAAA,EAAQvC,IAAIyD,UAAU;IACxB;EAAA,CACF;AACF;AC3FO,SAASQ,wBAAwBhD,KAA2D,EAAA;EAC1F,OAAAO,cAAA,CAAe,QAAQP,KAAK,CAAA;AACrC;ACFO,SAASiD,sBAAsBjD,KAA2D,EAAA;EACxF,OAAAO,cAAA,CAAe,WAAWP,KAAK,CAAA;AACxC;ACFO,SAASkD,oBAAoBlD,KAA2D,EAAA;EACtF,OAAAO,cAAA,CAAe,SAASP,KAAK,CAAA;AACtC;ACFO,SAASmD,yBACdnD,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAEhB,OAAOf,YAAYc,KAAM,CAAAK,MAAA,CAAOlB,OAAOc,KAAM,CAAAoD,MAAA,EAASC,SAAc,IAAA;IAClE,OAAO;MAACA;IAAS,CAAA;EAAA,CAClB,CAAA;AACH;ACRO,SAASC,mBAAmBtD,KAA2D,EAAA;EACrF,OAAAO,cAAA,CAAe,QAAQP,KAAK,CAAA;AACrC;ACDgB,SAAAuD,YAAA,CACd7D,KACAC,UACK,EAAA;EACL,MAAM6D,aAAgB,GAAAC,IAAA,CAAKC,SAAU,CAAAhE,GAAA,IAAA,IAAA,GAAAA,GAAA,GAAOC,UAAU,CAAA;EAE/C,OAAAgE,OAAA,CACL,MAAMlE,aAAc,CAAAC,GAAA,EAAKC,UAAU,CAAA,EAInC,CAAC6D,aAAa,CAAA,CAChB;AACF;ACfA,SAASI,YAAA,CACPC,SACAC,WACe,EAAA;EACT,MAAAC,GAAA,GAAM,CAACF,OAAO,CAAA;EAEpB,KAAA,MAAWG,MAAMF,WAAa,EAAA;IACxB,IAAAlE,KAAA,CAAMC,OAAQ,CAAAmE,EAAE,CAAG,EAAA;MACjBD,GAAA,CAAAE,IAAA,CAAK,GAAGD,EAAE,CAAA;IAAA,CACT,MAAA;MACLD,GAAA,CAAIE,KAAKD,EAAE,CAAA;IACb;EACF;EAEO,OAAAD,GAAA,CAAIG,OAAOC,OAAO,CAAA;AAC3B;AAKO,SAASC,eACd,CAAAC,QAAA,EAGkC;EAAA,IAFlCP,WAAyD,uEAAA5F,WAAA;EAAA,IACzDoG,eACkC;EAClC,MAAM,CAACT,OAAA,EAASU,UAAU,CAAA,GAAIC,SAA6B,IAAI,CAAA;EACzD,MAAA,CAACC,UAAUC,WAAW,CAAA,GAAIF,SAAS,MAAMZ,YAAA,CAAaC,OAAS,EAAAC,WAAW,CAAC,CAAA;EAC3E,MAAAa,WAAA,GAAcC,OAAOH,QAAQ,CAAA;EAEnCI,SAAA,CAAU,MAAM;IACd,MAAMC,eAAeH,WAAY,CAAAI,OAAA;IAC3B,MAAAC,YAAA,GAAepB,YAAa,CAAAC,OAAA,EAASC,WAAW,CAAA;IAElD,IAAAgB,YAAA,CAAa3E,MAAW,KAAA6E,YAAA,CAAa7E,MAAQ,EAAA;MAC/CuE,WAAA,CAAYM,YAAY,CAAA;MACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;MAEtB;IACF;IAEA,KAAA,MAAWhB,MAAMc,YAAc,EAAA;MAC7B,IAAI,CAACE,YAAA,CAAaC,QAAS,CAAAjB,EAAE,CAAG,EAAA;QAC9BU,WAAA,CAAYM,YAAY,CAAA;QACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;QAEtB;MACF;IACF;IAEA,KAAA,MAAWhB,MAAMgB,YAAc,EAAA;MAC7B,IAAI,CAACF,YAAA,CAAaG,QAAS,CAAAjB,EAAE,CAAG,EAAA;QAC9BU,WAAA,CAAYM,YAAY,CAAA;QACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;QAEtB;MACF;IACF;EAAA,CACC,EAAA,CAACnB,OAAS,EAAAC,WAAW,CAAC,CAAA;EAEzBe,SAAA,CAAU,MAAM;IACd,IAAI,CAACR,QAAA,EAAiB,OAAA,KAAA,CAAA;IAEhB,MAAAa,qBAAA,GAAyBC,GAAoB,IAAA;MACjD,MAAMC,SAASD,GAAI,CAAAC,MAAA;MAEf,IAAA,EAAEA,kBAAkBC,IAAO,CAAA,EAAA;QAC7B;MACF;MAEA,IAAIf,eAAmB,IAAA,CAACA,eAAgB,CAAAgB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxD;MACF;MAEA,KAAA,MAAWpB,MAAMS,QAAU,EAAA;QACzB,IAAIW,MAAW,KAAApB,EAAA,IAAMA,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;UACxC;QACF;MACF;MAEAf,QAAA,CAASc,GAAG,CAAA;IAAA,CACd;IAEOI,MAAA,CAAAC,gBAAA,CAAiB,aAAaN,qBAAqB,CAAA;IAE1D,OAAO,MAAM;MACJK,MAAA,CAAAE,mBAAA,CAAoB,aAAaP,qBAAqB,CAAA;IAAA,CAC/D;EACC,CAAA,EAAA,CAACZ,eAAiB,EAAAD,QAAA,EAAUI,QAAQ,CAAC,CAAA;EAEjC,OAAAF,UAAA;AACT;AClGA,IAAImB,eAAe,GAAG,EAAE;ACCxB,IAAIC,qBAAqB,GAAG,YAAY;EACpC,OAAOD,eAAe,CAACE,IAAI,CAAC,UAAUC,EAAE,EAAE;IAAE,OAAOA,EAAE,CAACC,aAAa,CAAC3F,MAAM,GAAG,CAAC;EAAC,CAAE,CAAC;AACtF,CAAC;ACFD,IAAI4F,sBAAsB,GAAG,YAAY;EACrC,OAAOL,eAAe,CAACE,IAAI,CAAC,UAAUC,EAAE,EAAE;IAAE,OAAOA,EAAE,CAACG,cAAc,CAAC7F,MAAM,GAAG,CAAC;EAAC,CAAE,CAAC;AACvF,CAAC;ACHD,IAAI8F,GAAG,GAAG,+DAA+D;AACzE,IAAIC,sBAAsB,GAAG,YAAY;EACrC,IAAIC,KAAK;EACT,IAAI,OAAOC,UAAU,KAAK,UAAU,EAAE;IAClCD,KAAK,GAAG,IAAIC,UAAU,CAAC,OAAO,EAAE;MAC5BC,OAAO,EAAEJ;IACrB,CAAS,CAAC;EACL,CAAA,MACI;IACDE,KAAK,GAAGG,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;IACrCJ,KAAK,CAACK,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;IACtCL,KAAK,CAACE,OAAO,GAAGJ,GAAG;EACtB;EACDV,MAAM,CAACkB,aAAa,CAACN,KAAK,CAAC;AAC/B,CAAC;ACdD,IAAIO,wBAAwB;AAC5B,CAAC,UAAUA,wBAAwB,EAAE;EACjCA,wBAAwB,CAAC,YAAY,CAAC,GAAG,YAAY;EACrDA,wBAAwB,CAAC,aAAa,CAAC,GAAG,aAAa;EACvDA,wBAAwB,CAAC,0BAA0B,CAAC,GAAG,0BAA0B;AACrF,CAAC,EAAEA,wBAAwB,KAAKA,wBAAwB,GAAG,CAAA,CAAE,CAAC,CAAC;ACLxD,IAAIC,MAAM,GAAG,UAAUC,GAAG,EAAE;EAAE,OAAOC,MAAM,CAACF,MAAM,CAACC,GAAG,CAAC;AAAG,CAAA;ACCjE,IAAIE,kBAAkB,GAAI,YAAY;EAClC,SAASA,kBAAkB,CAACC,UAAU,EAAEC,SAAS,EAAE;IAC/C,IAAI,CAACD,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1BL,MAAM,CAAC,IAAI,CAAC;EACf;EACD,OAAOG,kBAAkB;AAC7B,CAAC,EAAG;ACPJ,IAAIG,eAAe,GAAI,YAAY;EAC/B,SAASA,eAAe,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAE3F,MAAM,EAAE;IAC1C,IAAI,CAACyF,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC3F,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACpD,GAAG,GAAG,IAAI,CAAC8I,CAAC;IACjB,IAAI,CAAC3I,IAAI,GAAG,IAAI,CAAC0I,CAAC;IAClB,IAAI,CAAC3I,MAAM,GAAG,IAAI,CAACF,GAAG,GAAG,IAAI,CAACoD,MAAM;IACpC,IAAI,CAACnD,KAAK,GAAG,IAAI,CAACE,IAAI,GAAG,IAAI,CAAC4I,KAAK;IACnC,OAAOT,MAAM,CAAC,IAAI,CAAC;EACtB;EACDM,eAAe,CAACI,SAAS,CAACC,MAAM,GAAG,YAAY;IAC3C,IAAIC,EAAE,GAAG,IAAI;MAAEL,CAAC,GAAGK,EAAE,CAACL,CAAC;MAAEC,CAAC,GAAGI,EAAE,CAACJ,CAAC;MAAE9I,GAAG,GAAGkJ,EAAE,CAAClJ,GAAG;MAAEC,KAAK,GAAGiJ,EAAE,CAACjJ,KAAK;MAAEC,MAAM,GAAGgJ,EAAE,CAAChJ,MAAM;MAAEC,IAAI,GAAG+I,EAAE,CAAC/I,IAAI;MAAE4I,KAAK,GAAGG,EAAE,CAACH,KAAK;MAAE3F,MAAM,GAAG8F,EAAE,CAAC9F,MAAM;IAC3I,OAAO;MAAEyF,CAAC,EAAEA,CAAC;MAAEC,CAAC,EAAEA,CAAC;MAAE9I,GAAG,EAAEA,GAAG;MAAEC,KAAK,EAAEA,KAAK;MAAEC,MAAM,EAAEA,MAAM;MAAEC,IAAI,EAAEA,IAAI;MAAE4I,KAAK,EAAEA,KAAK;MAAE3F,MAAM,EAAEA;KAAQ;EAC/G,CAAK;EACDwF,eAAe,CAACO,QAAQ,GAAG,UAAUC,SAAS,EAAE;IAC5C,OAAO,IAAIR,eAAe,CAACQ,SAAS,CAACP,CAAC,EAAEO,SAAS,CAACN,CAAC,EAAEM,SAAS,CAACL,KAAK,EAAEK,SAAS,CAAChG,MAAM,CAAC;EAC/F,CAAK;EACD,OAAOwF,eAAe;AAC1B,CAAC,EAAG;ACrBJ,IAAIS,KAAK,GAAG,UAAUtC,MAAM,EAAE;EAAE,OAAOA,MAAM,YAAYuC,UAAU,IAAI,SAAS,IAAIvC,MAAM;CAAG;AAC7F,IAAIwC,QAAQ,GAAG,UAAUxC,MAAM,EAAE;EAC7B,IAAIsC,KAAK,CAACtC,MAAM,CAAC,EAAE;IACf,IAAImC,EAAE,GAAGnC,MAAM,CAACyC,OAAO,EAAE;MAAET,KAAK,GAAGG,EAAE,CAACH,KAAK;MAAE3F,MAAM,GAAG8F,EAAE,CAAC9F,MAAM;IAC/D,OAAO,CAAC2F,KAAK,IAAI,CAAC3F,MAAM;EAC3B;EACD,IAAIqG,EAAE,GAAG1C,MAAM;IAAE2C,WAAW,GAAGD,EAAE,CAACC,WAAW;IAAEC,YAAY,GAAGF,EAAE,CAACE,YAAY;EAC7E,OAAO,EAAED,WAAW,IAAIC,YAAY,IAAI5C,MAAM,CAAC6C,cAAc,EAAE,CAAC9H,MAAM,CAAC;AAC3E,CAAC;AACD,IAAI+H,SAAS,GAAG,UAAUtB,GAAG,EAAE;EAC3B,IAAIW,EAAE;EACN,IAAIX,GAAG,YAAYuB,OAAO,EAAE;IACxB,OAAO,IAAI;EACd;EACD,IAAIC,KAAK,GAAG,CAACb,EAAE,GAAGX,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,GAAG,CAACyB,aAAa,MAAM,IAAI,IAAId,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACe,WAAW;EAClI,OAAO,CAAC,EAAEF,KAAK,IAAIxB,GAAG,YAAYwB,KAAK,CAACD,OAAO,CAAC;AACpD,CAAC;AACD,IAAII,iBAAiB,GAAG,UAAUnD,MAAM,EAAE;EACtC,QAAQA,MAAM,CAACoD,OAAO;IAClB,KAAK,OAAO;MACR,IAAIpD,MAAM,CAACqD,IAAI,KAAK,OAAO,EAAE;QACzB;MACH;IACL,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,KAAK;MACN,OAAO,IAAI;EAAC;EAEpB,OAAO,KAAK;AAChB,CAAC;ACjCM,IAAIC,QAAM,GAAG,OAAOnD,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAG,CAAE,CAAA;ACM/D,IAAIoD,KAAK,GAAG,IAAIC,OAAO,EAAE;AACzB,IAAIC,YAAY,GAAG,aAAa;AAChC,IAAIC,cAAc,GAAG,cAAc;AACnC,IAAIC,EAAE,GAAI,eAAe,CAAEC,IAAI,CAACN,QAAM,CAACO,SAAS,IAAIP,QAAM,CAACO,SAAS,CAACC,SAAS,CAAC;AAC/E,IAAIC,cAAc,GAAG,UAAUC,KAAK,EAAE;EAAE,OAAOC,UAAU,CAACD,KAAK,IAAI,GAAG,CAAC;CAAG;AAC1E,IAAIpH,MAAI,GAAG,UAAU+E,UAAU,EAAEC,SAAS,EAAEsC,WAAW,EAAE;EACrD,IAAIvC,UAAU,KAAK,KAAK,CAAC,EAAE;IAAEA,UAAU,GAAG,CAAC;EAAG;EAC9C,IAAIC,SAAS,KAAK,KAAK,CAAC,EAAE;IAAEA,SAAS,GAAG,CAAC;EAAG;EAC5C,IAAIsC,WAAW,KAAK,KAAK,CAAC,EAAE;IAAEA,WAAW,GAAG,KAAK;EAAG;EACpD,OAAO,IAAIxC,kBAAkB,CAAC,CAACwC,WAAW,GAAGtC,SAAS,GAAGD,UAAU,KAAK,CAAC,EAAE,CAACuC,WAAW,GAAGvC,UAAU,GAAGC,SAAS,KAAK,CAAC,CAAC;AAC3H,CAAC;AACD,IAAIuC,SAAS,GAAG5C,MAAM,CAAC;EACnB6C,yBAAyB,EAAExH,MAAI,EAAE;EACjCyH,aAAa,EAAEzH,MAAI,EAAE;EACrB0H,cAAc,EAAE1H,MAAI,EAAE;EACtB2H,WAAW,EAAE,IAAI1C,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC,CAAC;AACF,IAAI2C,iBAAiB,GAAG,UAAUxE,MAAM,EAAEyE,kBAAkB,EAAE;EAC1D,IAAIA,kBAAkB,KAAK,KAAK,CAAC,EAAE;IAAEA,kBAAkB,GAAG,KAAK;EAAG;EAClE,IAAIlB,KAAK,CAACmB,GAAG,CAAC1E,MAAM,CAAC,IAAI,CAACyE,kBAAkB,EAAE;IAC1C,OAAOlB,KAAK,CAACoB,GAAG,CAAC3E,MAAM,CAAC;EAC3B;EACD,IAAIwC,QAAQ,CAACxC,MAAM,CAAC,EAAE;IAClBuD,KAAK,CAACqB,GAAG,CAAC5E,MAAM,EAAEmE,SAAS,CAAC;IAC5B,OAAOA,SAAS;EACnB;EACD,IAAIU,EAAE,GAAGC,gBAAgB,CAAC9E,MAAM,CAAC;EACjC,IAAI+E,GAAG,GAAGzC,KAAK,CAACtC,MAAM,CAAC,IAAIA,MAAM,CAACgF,eAAe,IAAIhF,MAAM,CAACyC,OAAO,EAAE;EACrE,IAAIwC,aAAa,GAAG,CAACtB,EAAE,IAAIkB,EAAE,CAACK,SAAS,KAAK,YAAY;EACxD,IAAIhB,WAAW,GAAGR,cAAc,CAACE,IAAI,CAACiB,EAAE,CAACM,WAAW,IAAI,EAAE,CAAC;EAC3D,IAAIC,mBAAmB,GAAG,CAACL,GAAG,IAAItB,YAAY,CAACG,IAAI,CAACiB,EAAE,CAACQ,SAAS,IAAI,EAAE,CAAC;EACvE,IAAIC,qBAAqB,GAAG,CAACP,GAAG,IAAItB,YAAY,CAACG,IAAI,CAACiB,EAAE,CAACU,SAAS,IAAI,EAAE,CAAC;EACzE,IAAIC,UAAU,GAAGT,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACW,UAAU,CAAC;EACxD,IAAIC,YAAY,GAAGV,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACY,YAAY,CAAC;EAC5D,IAAIC,aAAa,GAAGX,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACa,aAAa,CAAC;EAC9D,IAAIC,WAAW,GAAGZ,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACc,WAAW,CAAC;EAC1D,IAAIC,SAAS,GAAGb,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACgB,cAAc,CAAC;EAC3D,IAAIC,WAAW,GAAGf,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACkB,gBAAgB,CAAC;EAC/D,IAAIC,YAAY,GAAGjB,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACoB,iBAAiB,CAAC;EACjE,IAAIC,UAAU,GAAGnB,GAAG,GAAG,CAAC,GAAGhB,cAAc,CAACc,EAAE,CAACsB,eAAe,CAAC;EAC7D,IAAIC,iBAAiB,GAAGT,WAAW,GAAGF,YAAY;EAClD,IAAIY,eAAe,GAAGb,UAAU,GAAGE,aAAa;EAChD,IAAIY,oBAAoB,GAAGJ,UAAU,GAAGJ,WAAW;EACnD,IAAIS,kBAAkB,GAAGX,SAAS,GAAGI,YAAY;EACjD,IAAIQ,4BAA4B,GAAG,CAAClB,qBAAqB,GAAG,CAAC,GAAGtF,MAAM,CAAC4C,YAAY,GAAG2D,kBAAkB,GAAGvG,MAAM,CAACyG,YAAY;EAC9H,IAAIC,0BAA0B,GAAG,CAACtB,mBAAmB,GAAG,CAAC,GAAGpF,MAAM,CAAC2C,WAAW,GAAG2D,oBAAoB,GAAGtG,MAAM,CAAC2G,WAAW;EAC1H,IAAIC,cAAc,GAAG3B,aAAa,GAAGmB,iBAAiB,GAAGE,oBAAoB,GAAG,CAAC;EACjF,IAAIO,eAAe,GAAG5B,aAAa,GAAGoB,eAAe,GAAGE,kBAAkB,GAAG,CAAC;EAC9E,IAAIO,YAAY,GAAG/B,GAAG,GAAGA,GAAG,CAAC/C,KAAK,GAAG+B,cAAc,CAACc,EAAE,CAAC7C,KAAK,CAAC,GAAG4E,cAAc,GAAGF,0BAA0B;EAC3G,IAAIK,aAAa,GAAGhC,GAAG,GAAGA,GAAG,CAAC1I,MAAM,GAAG0H,cAAc,CAACc,EAAE,CAACxI,MAAM,CAAC,GAAGwK,eAAe,GAAGL,4BAA4B;EACjH,IAAIQ,cAAc,GAAGF,YAAY,GAAGV,iBAAiB,GAAGM,0BAA0B,GAAGJ,oBAAoB;EACzG,IAAIW,eAAe,GAAGF,aAAa,GAAGV,eAAe,GAAGG,4BAA4B,GAAGD,kBAAkB;EACzG,IAAIW,KAAK,GAAG3F,MAAM,CAAC;IACf6C,yBAAyB,EAAExH,MAAI,CAACU,IAAI,CAAC6J,KAAK,CAACL,YAAY,GAAGM,gBAAgB,CAAC,EAAE9J,IAAI,CAAC6J,KAAK,CAACJ,aAAa,GAAGK,gBAAgB,CAAC,EAAElD,WAAW,CAAC;IACvIG,aAAa,EAAEzH,MAAI,CAACoK,cAAc,EAAEC,eAAe,EAAE/C,WAAW,CAAC;IACjEI,cAAc,EAAE1H,MAAI,CAACkK,YAAY,EAAEC,aAAa,EAAE7C,WAAW,CAAC;IAC9DK,WAAW,EAAE,IAAI1C,eAAe,CAAC8D,WAAW,EAAEH,UAAU,EAAEsB,YAAY,EAAEC,aAAa;EAC7F,CAAK,CAAC;EACFxD,KAAK,CAACqB,GAAG,CAAC5E,MAAM,EAAEkH,KAAK,CAAC;EACxB,OAAOA,KAAK;AAChB,CAAC;AACD,IAAIG,gBAAgB,GAAG,UAAUrH,MAAM,EAAEsH,WAAW,EAAE7C,kBAAkB,EAAE;EACtE,IAAItC,EAAE,GAAGqC,iBAAiB,CAACxE,MAAM,EAAEyE,kBAAkB,CAAC;IAAEJ,aAAa,GAAGlC,EAAE,CAACkC,aAAa;IAAEC,cAAc,GAAGnC,EAAE,CAACmC,cAAc;IAAEF,yBAAyB,GAAGjC,EAAE,CAACiC,yBAAyB;EACtL,QAAQkD,WAAW;IACf,KAAKhG,wBAAwB,CAACiG,wBAAwB;MAClD,OAAOnD,yBAAyB;IACpC,KAAK9C,wBAAwB,CAACkG,UAAU;MACpC,OAAOnD,aAAa;IACxB;MACI,OAAOC,cAAc;EAAC;AAElC,CAAC;AC3ED,IAAImD,mBAAmB,GAAI,YAAY;EACnC,SAASA,mBAAmB,CAACzH,MAAM,EAAE;IACjC,IAAIkH,KAAK,GAAG1C,iBAAiB,CAACxE,MAAM,CAAC;IACrC,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACuE,WAAW,GAAG2C,KAAK,CAAC3C,WAAW;IACpC,IAAI,CAACF,aAAa,GAAG9C,MAAM,CAAC,CAAC2F,KAAK,CAAC7C,aAAa,CAAC,CAAC;IAClD,IAAI,CAACC,cAAc,GAAG/C,MAAM,CAAC,CAAC2F,KAAK,CAAC5C,cAAc,CAAC,CAAC;IACpD,IAAI,CAACF,yBAAyB,GAAG7C,MAAM,CAAC,CAAC2F,KAAK,CAAC9C,yBAAyB,CAAC,CAAC;EAC7E;EACD,OAAOqD,mBAAmB;AAC9B,CAAC,EAAG;ACXJ,IAAIC,qBAAqB,GAAG,UAAUC,IAAI,EAAE;EACxC,IAAInF,QAAQ,CAACmF,IAAI,CAAC,EAAE;IAChB,OAAOC,QAAQ;EAClB;EACD,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,MAAM,GAAGH,IAAI,CAACI,UAAU;EAC5B,OAAOD,MAAM,EAAE;IACXD,KAAK,IAAI,CAAC;IACVC,MAAM,GAAGA,MAAM,CAACC,UAAU;EAC7B;EACD,OAAOF,KAAK;AAChB,CAAC;ACRD,IAAIG,2BAA2B,GAAG,YAAY;EAC1C,IAAIC,eAAe,GAAGL,QAAQ;EAC9B,IAAIM,SAAS,GAAG,EAAE;EAClB5H,eAAe,CAAC6H,OAAO,CAAC,SAASC,eAAe,CAAC3H,EAAE,EAAE;IACjD,IAAIA,EAAE,CAACC,aAAa,CAAC3F,MAAM,KAAK,CAAC,EAAE;MAC/B;IACH;IACD,IAAIsN,OAAO,GAAG,EAAE;IAChB5H,EAAE,CAACC,aAAa,CAACyH,OAAO,CAAC,SAASG,aAAa,CAACC,EAAE,EAAE;MAChD,IAAIC,KAAK,GAAG,IAAIf,mBAAmB,CAACc,EAAE,CAACvI,MAAM,CAAC;MAC9C,IAAIyI,WAAW,GAAGf,qBAAqB,CAACa,EAAE,CAACvI,MAAM,CAAC;MAClDqI,OAAO,CAACxJ,IAAI,CAAC2J,KAAK,CAAC;MACnBD,EAAE,CAACG,gBAAgB,GAAGrB,gBAAgB,CAACkB,EAAE,CAACvI,MAAM,EAAEuI,EAAE,CAACjB,WAAW,CAAC;MACjE,IAAImB,WAAW,GAAGR,eAAe,EAAE;QAC/BA,eAAe,GAAGQ,WAAW;MAChC;IACb,CAAS,CAAC;IACFP,SAAS,CAACrJ,IAAI,CAAC,SAAS8J,sBAAsB,GAAG;MAC7ClI,EAAE,CAACzG,QAAQ,CAAC4O,IAAI,CAACnI,EAAE,CAACoI,QAAQ,EAAER,OAAO,EAAE5H,EAAE,CAACoI,QAAQ,CAAC;IAC/D,CAAS,CAAC;IACFpI,EAAE,CAACC,aAAa,CAACoI,MAAM,CAAC,CAAC,EAAErI,EAAE,CAACC,aAAa,CAAC3F,MAAM,CAAC;EAC3D,CAAK,CAAC;EACF,KAAK,IAAIgO,EAAE,GAAG,CAAC,EAAEC,WAAW,GAAGd,SAAS,EAAEa,EAAE,GAAGC,WAAW,CAACjO,MAAM,EAAEgO,EAAE,EAAE,EAAE;IACrE,IAAI/O,QAAQ,GAAGgP,WAAW,CAACD,EAAE,CAAC;IAC9B/O,QAAQ,EAAE;EACb;EACD,OAAOiO,eAAe;AAC1B,CAAC;AC7BD,IAAIgB,+BAA+B,GAAG,UAAUpB,KAAK,EAAE;EACnDvH,eAAe,CAAC6H,OAAO,CAAC,SAASC,eAAe,CAAC3H,EAAE,EAAE;IACjDA,EAAE,CAACC,aAAa,CAACoI,MAAM,CAAC,CAAC,EAAErI,EAAE,CAACC,aAAa,CAAC3F,MAAM,CAAC;IACnD0F,EAAE,CAACG,cAAc,CAACkI,MAAM,CAAC,CAAC,EAAErI,EAAE,CAACG,cAAc,CAAC7F,MAAM,CAAC;IACrD0F,EAAE,CAACyI,kBAAkB,CAACf,OAAO,CAAC,SAASG,aAAa,CAACC,EAAE,EAAE;MACrD,IAAIA,EAAE,CAACY,QAAQ,EAAE,EAAE;QACf,IAAIzB,qBAAqB,CAACa,EAAE,CAACvI,MAAM,CAAC,GAAG6H,KAAK,EAAE;UAC1CpH,EAAE,CAACC,aAAa,CAAC7B,IAAI,CAAC0J,EAAE,CAAC;QAC5B,CAAA,MACI;UACD9H,EAAE,CAACG,cAAc,CAAC/B,IAAI,CAAC0J,EAAE,CAAC;QAC7B;MACJ;IACb,CAAS,CAAC;EACV,CAAK,CAAC;AACN,CAAC;ACZD,IAAIa,OAAO,GAAG,YAAY;EACtB,IAAIvB,KAAK,GAAG,CAAC;EACboB,+BAA+B,CAACpB,KAAK,CAAC;EACtC,OAAOtH,qBAAqB,EAAE,EAAE;IAC5BsH,KAAK,GAAGG,2BAA2B,EAAE;IACrCiB,+BAA+B,CAACpB,KAAK,CAAC;EACzC;EACD,IAAIlH,sBAAsB,EAAE,EAAE;IAC1BG,sBAAsB,EAAE;EAC3B;EACD,OAAO+G,KAAK,GAAG,CAAC;AACpB,CAAC;AChBD,IAAIwB,OAAO;AACX,IAAInB,SAAS,GAAG,EAAE;AAClB,IAAIoB,MAAM,GAAG,YAAY;EAAE,OAAOpB,SAAS,CAACY,MAAM,CAAC,CAAC,CAAC,CAACX,OAAO,CAAC,UAAUoB,EAAE,EAAE;IAAE,OAAOA,EAAE,EAAE;EAAG,CAAA,CAAC;AAAC,CAAE;AAChG,IAAIC,cAAc,GAAG,UAAUxP,QAAQ,EAAE;EACrC,IAAI,CAACqP,OAAO,EAAE;IACV,IAAII,QAAQ,GAAG,CAAC;IAChB,IAAIC,IAAI,GAAGxI,QAAQ,CAACyI,cAAc,CAAC,EAAE,CAAC;IACtC,IAAIC,MAAM,GAAG;MAAEC,aAAa,EAAE;KAAM;IACpC,IAAIC,gBAAgB,CAAC,YAAY;MAAE,OAAOR,MAAM,EAAE;IAAG,CAAA,CAAC,CAACS,OAAO,CAACL,IAAI,EAAEE,MAAM,CAAC;IAC5EP,OAAO,GAAG,YAAY;MAAEK,IAAI,CAACM,WAAW,GAAG,EAAE,CAACC,MAAM,CAACR,QAAQ,GAAGA,QAAQ,EAAE,GAAGA,QAAQ,EAAE,CAAC;IAAC,CAAE;EAC9F;EACDvB,SAAS,CAACrJ,IAAI,CAAC7E,QAAQ,CAAC;EACxBqP,OAAO,EAAE;AACb,CAAC;ACZD,IAAIa,mBAAmB,GAAG,UAAUX,EAAE,EAAE;EACpCC,cAAc,CAAC,SAASW,cAAc,GAAG;IACrCC,qBAAqB,CAACb,EAAE,CAAC;EACjC,CAAK,CAAC;AACN,CAAC;ACFD,IAAIc,QAAQ,GAAG,CAAC;AAChB,IAAIC,UAAU,GAAG,YAAY;EAAE,OAAO,CAAC,CAACD,QAAQ;AAAC,CAAE;AACnD,IAAIE,YAAY,GAAG,GAAG;AACtB,IAAIC,cAAc,GAAG;EAAEC,UAAU,EAAE,IAAI;EAAEZ,aAAa,EAAE,IAAI;EAAEa,SAAS,EAAE,IAAI;EAAEC,OAAO,EAAE;CAAM;AAC9F,IAAIC,MAAM,GAAG,CACT,QAAQ,EACR,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,CACV;AACD,IAAIC,IAAI,GAAG,UAAUC,OAAO,EAAE;EAC1B,IAAIA,OAAO,KAAK,KAAK,CAAC,EAAE;IAAEA,OAAO,GAAG,CAAC;EAAG;EACxC,OAAOC,IAAI,CAACC,GAAG,EAAE,GAAGF,OAAO;AAC/B,CAAC;AACD,IAAIG,SAAS,GAAG,KAAK;AACrB,IAAIC,SAAS,GAAI,YAAY;EACzB,SAASA,SAAS,GAAG;IACjB,IAAIC,KAAK,GAAG,IAAI;IAChB,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACnM,QAAQ,GAAG,YAAY;MAAE,OAAOkM,KAAK,CAACE,QAAQ,EAAE;KAAG;EAC3D;EACDH,SAAS,CAACjJ,SAAS,CAACqJ,GAAG,GAAG,UAAUR,OAAO,EAAE;IACzC,IAAIK,KAAK,GAAG,IAAI;IAChB,IAAIL,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAGP,YAAY;IAAG;IACnD,IAAIU,SAAS,EAAE;MACX;IACH;IACDA,SAAS,GAAG,IAAI;IAChB,IAAIM,KAAK,GAAGV,IAAI,CAACC,OAAO,CAAC;IACzBZ,mBAAmB,CAAC,YAAY;MAC5B,IAAIsB,mBAAmB,GAAG,KAAK;MAC/B,IAAI;QACAA,mBAAmB,GAAGpC,OAAO,EAAE;MAClC,CAAA,SACO;QACJ6B,SAAS,GAAG,KAAK;QACjBH,OAAO,GAAGS,KAAK,GAAGV,IAAI,EAAE;QACxB,IAAI,CAACP,UAAU,EAAE,EAAE;UACf;QACH;QACD,IAAIkB,mBAAmB,EAAE;UACrBL,KAAK,CAACG,GAAG,CAAC,IAAI,CAAC;QAClB,CAAA,MACI,IAAIR,OAAO,GAAG,CAAC,EAAE;UAClBK,KAAK,CAACG,GAAG,CAACR,OAAO,CAAC;QACrB,CAAA,MACI;UACDK,KAAK,CAACM,KAAK,EAAE;QAChB;MACJ;IACb,CAAS,CAAC;EACV,CAAK;EACDP,SAAS,CAACjJ,SAAS,CAACoJ,QAAQ,GAAG,YAAY;IACvC,IAAI,CAACK,IAAI,EAAE;IACX,IAAI,CAACJ,GAAG,EAAE;EAClB,CAAK;EACDJ,SAAS,CAACjJ,SAAS,CAAC8H,OAAO,GAAG,YAAY;IACtC,IAAIoB,KAAK,GAAG,IAAI;IAChB,IAAI5B,EAAE,GAAG,YAAY;MAAE,OAAO4B,KAAK,CAACtC,QAAQ,IAAIsC,KAAK,CAACtC,QAAQ,CAACkB,OAAO,CAAC7I,QAAQ,CAACyK,IAAI,EAAEnB,cAAc,CAAC;IAAC,CAAE;IACxGtJ,QAAQ,CAACyK,IAAI,GAAGpC,EAAE,EAAE,GAAGjG,QAAM,CAAClD,gBAAgB,CAAC,kBAAkB,EAAEmJ,EAAE,CAAC;EAC9E,CAAK;EACD2B,SAAS,CAACjJ,SAAS,CAACwJ,KAAK,GAAG,YAAY;IACpC,IAAIN,KAAK,GAAG,IAAI;IAChB,IAAI,IAAI,CAACC,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,GAAG,KAAK;MACpB,IAAI,CAACvC,QAAQ,GAAG,IAAIiB,gBAAgB,CAAC,IAAI,CAAC7K,QAAQ,CAAC;MACnD,IAAI,CAAC8K,OAAO,EAAE;MACda,MAAM,CAACzC,OAAO,CAAC,UAAUyD,IAAI,EAAE;QAAE,OAAOtI,QAAM,CAAClD,gBAAgB,CAACwL,IAAI,EAAET,KAAK,CAAClM,QAAQ,EAAE,IAAI,CAAC;MAAG,CAAA,CAAC;IAClG;EACT,CAAK;EACDiM,SAAS,CAACjJ,SAAS,CAACyJ,IAAI,GAAG,YAAY;IACnC,IAAIP,KAAK,GAAG,IAAI;IAChB,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;MACf,IAAI,CAACvC,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACgD,UAAU,EAAE;MAC3CjB,MAAM,CAACzC,OAAO,CAAC,UAAUyD,IAAI,EAAE;QAAE,OAAOtI,QAAM,CAACjD,mBAAmB,CAACuL,IAAI,EAAET,KAAK,CAAClM,QAAQ,EAAE,IAAI,CAAC;MAAG,CAAA,CAAC;MAClG,IAAI,CAACmM,OAAO,GAAG,IAAI;IACtB;EACT,CAAK;EACD,OAAOF,SAAS;AACpB,CAAC,EAAG;AACJ,IAAIY,SAAS,GAAG,IAAIZ,SAAS,EAAE;AAC/B,IAAIa,WAAW,GAAG,UAAUC,CAAC,EAAE;EAC3B,CAAC3B,QAAQ,IAAI2B,CAAC,GAAG,CAAC,IAAIF,SAAS,CAACL,KAAK,EAAE;EACvCpB,QAAQ,IAAI2B,CAAC;EACb,CAAC3B,QAAQ,IAAIyB,SAAS,CAACJ,IAAI,EAAE;AACjC,CAAC;AC/FD,IAAIO,mBAAmB,GAAG,UAAUjM,MAAM,EAAE;EACxC,OAAO,CAACsC,KAAK,CAACtC,MAAM,CAAC,IACd,CAACmD,iBAAiB,CAACnD,MAAM,CAAC,IAC1B8E,gBAAgB,CAAC9E,MAAM,CAAC,CAAC5D,OAAO,KAAK,QAAQ;AACxD,CAAC;AACD,IAAI8P,iBAAiB,GAAI,YAAY;EACjC,SAASA,iBAAiB,CAAClM,MAAM,EAAEsH,WAAW,EAAE;IAC5C,IAAI,CAACtH,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACsH,WAAW,GAAGA,WAAW,IAAIhG,wBAAwB,CAAC6K,WAAW;IACtE,IAAI,CAACzD,gBAAgB,GAAG;MACpB/G,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE;IACvB,CAAS;EACJ;EACDsK,iBAAiB,CAACjK,SAAS,CAACkH,QAAQ,GAAG,YAAY;IAC/C,IAAIvM,IAAI,GAAGyK,gBAAgB,CAAC,IAAI,CAACrH,MAAM,EAAE,IAAI,CAACsH,WAAW,EAAE,IAAI,CAAC;IAChE,IAAI2E,mBAAmB,CAAC,IAAI,CAACjM,MAAM,CAAC,EAAE;MAClC,IAAI,CAAC0I,gBAAgB,GAAG9L,IAAI;IAC/B;IACD,IAAI,IAAI,CAAC8L,gBAAgB,CAAC/G,UAAU,KAAK/E,IAAI,CAAC+E,UAAU,IACjD,IAAI,CAAC+G,gBAAgB,CAAC9G,SAAS,KAAKhF,IAAI,CAACgF,SAAS,EAAE;MACvD,OAAO,IAAI;IACd;IACD,OAAO,KAAK;EACpB,CAAK;EACD,OAAOsK,iBAAiB;AAC5B,CAAC,EAAG;AC7BJ,IAAIE,oBAAoB,GAAI,YAAY;EACpC,SAASA,oBAAoB,CAACC,cAAc,EAAErS,QAAQ,EAAE;IACpD,IAAI,CAAC0G,aAAa,GAAG,EAAE;IACvB,IAAI,CAACE,cAAc,GAAG,EAAE;IACxB,IAAI,CAACsI,kBAAkB,GAAG,EAAE;IAC5B,IAAI,CAACL,QAAQ,GAAGwD,cAAc;IAC9B,IAAI,CAACrS,QAAQ,GAAGA,QAAQ;EAC3B;EACD,OAAOoS,oBAAoB;AAC/B,CAAC,EAAG;ACLJ,IAAIE,WAAW,GAAG,IAAI9I,OAAO,EAAE;AAC/B,IAAI+I,mBAAmB,GAAG,UAAUrD,kBAAkB,EAAElJ,MAAM,EAAE;EAC5D,KAAK,IAAIwM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGtD,kBAAkB,CAACnO,MAAM,EAAEyR,CAAC,IAAI,CAAC,EAAE;IACnD,IAAItD,kBAAkB,CAACsD,CAAC,CAAC,CAACxM,MAAM,KAAKA,MAAM,EAAE;MACzC,OAAOwM,CAAC;IACX;EACJ;EACD,OAAO,CAAC,CAAC;AACb,CAAC;AACD,IAAIC,wBAAwB,GAAI,YAAY;EACxC,SAASA,wBAAwB,GAAG,CACnC;EACDA,wBAAwB,CAACC,OAAO,GAAG,UAAUL,cAAc,EAAErS,QAAQ,EAAE;IACnE,IAAI2S,MAAM,GAAG,IAAIP,oBAAoB,CAACC,cAAc,EAAErS,QAAQ,CAAC;IAC/DsS,WAAW,CAAC1H,GAAG,CAACyH,cAAc,EAAEM,MAAM,CAAC;EAC/C,CAAK;EACDF,wBAAwB,CAAC1C,OAAO,GAAG,UAAUsC,cAAc,EAAErM,MAAM,EAAE4M,OAAO,EAAE;IAC1E,IAAID,MAAM,GAAGL,WAAW,CAAC3H,GAAG,CAAC0H,cAAc,CAAC;IAC5C,IAAIQ,gBAAgB,GAAGF,MAAM,CAACzD,kBAAkB,CAACnO,MAAM,KAAK,CAAC;IAC7D,IAAIwR,mBAAmB,CAACI,MAAM,CAACzD,kBAAkB,EAAElJ,MAAM,CAAC,GAAG,CAAC,EAAE;MAC5D6M,gBAAgB,IAAIvM,eAAe,CAACzB,IAAI,CAAC8N,MAAM,CAAC;MAChDA,MAAM,CAACzD,kBAAkB,CAACrK,IAAI,CAAC,IAAIqN,iBAAiB,CAAClM,MAAM,EAAE4M,OAAO,IAAIA,OAAO,CAACE,GAAG,CAAC,CAAC;MACrFf,WAAW,CAAC,CAAC,CAAC;MACdD,SAAS,CAACT,QAAQ,EAAE;IACvB;EACT,CAAK;EACDoB,wBAAwB,CAACM,SAAS,GAAG,UAAUV,cAAc,EAAErM,MAAM,EAAE;IACnE,IAAI2M,MAAM,GAAGL,WAAW,CAAC3H,GAAG,CAAC0H,cAAc,CAAC;IAC5C,IAAIW,KAAK,GAAGT,mBAAmB,CAACI,MAAM,CAACzD,kBAAkB,EAAElJ,MAAM,CAAC;IAClE,IAAIiN,eAAe,GAAGN,MAAM,CAACzD,kBAAkB,CAACnO,MAAM,KAAK,CAAC;IAC5D,IAAIiS,KAAK,IAAI,CAAC,EAAE;MACZC,eAAe,IAAI3M,eAAe,CAACwI,MAAM,CAACxI,eAAe,CAAC4M,OAAO,CAACP,MAAM,CAAC,EAAE,CAAC,CAAC;MAC7EA,MAAM,CAACzD,kBAAkB,CAACJ,MAAM,CAACkE,KAAK,EAAE,CAAC,CAAC;MAC1CjB,WAAW,CAAC,CAAC,CAAC,CAAC;IAClB;EACT,CAAK;EACDU,wBAAwB,CAACZ,UAAU,GAAG,UAAUQ,cAAc,EAAE;IAC5D,IAAIlB,KAAK,GAAG,IAAI;IAChB,IAAIwB,MAAM,GAAGL,WAAW,CAAC3H,GAAG,CAAC0H,cAAc,CAAC;IAC5CM,MAAM,CAACzD,kBAAkB,CAACiE,KAAK,EAAE,CAAChF,OAAO,CAAC,UAAUI,EAAE,EAAE;MAAE,OAAO4C,KAAK,CAAC4B,SAAS,CAACV,cAAc,EAAE9D,EAAE,CAACvI,MAAM,CAAC;IAAG,CAAA,CAAC;IAC/G2M,MAAM,CAACjM,aAAa,CAACoI,MAAM,CAAC,CAAC,EAAE6D,MAAM,CAACjM,aAAa,CAAC3F,MAAM,CAAC;EACnE,CAAK;EACD,OAAO0R,wBAAwB;AACnC,CAAC,EAAG;AC7CJ,IAAItC,cAAc,GAAI,YAAY;EAC9B,SAASA,cAAc,CAACnQ,QAAQ,EAAE;IAC9B,IAAIoT,SAAS,CAACrS,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIsS,SAAS,CAAC,gFAAgF,CAAC;IACxG;IACD,IAAI,OAAOrT,QAAQ,KAAK,UAAU,EAAE;MAChC,MAAM,IAAIqT,SAAS,CAAC,+FAA+F,CAAC;IACvH;IACDZ,wBAAwB,CAACC,OAAO,CAAC,IAAI,EAAE1S,QAAQ,CAAC;EACnD;EACDmQ,cAAc,CAAClI,SAAS,CAAC8H,OAAO,GAAG,UAAU/J,MAAM,EAAE4M,OAAO,EAAE;IAC1D,IAAIQ,SAAS,CAACrS,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIsS,SAAS,CAAC,2FAA2F,CAAC;IACnH;IACD,IAAI,CAACvK,SAAS,CAAC9C,MAAM,CAAC,EAAE;MACpB,MAAM,IAAIqN,SAAS,CAAC,sFAAsF,CAAC;IAC9G;IACDZ,wBAAwB,CAAC1C,OAAO,CAAC,IAAI,EAAE/J,MAAM,EAAE4M,OAAO,CAAC;EAC/D,CAAK;EACDzC,cAAc,CAAClI,SAAS,CAAC8K,SAAS,GAAG,UAAU/M,MAAM,EAAE;IACnD,IAAIoN,SAAS,CAACrS,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIsS,SAAS,CAAC,6FAA6F,CAAC;IACrH;IACD,IAAI,CAACvK,SAAS,CAAC9C,MAAM,CAAC,EAAE;MACpB,MAAM,IAAIqN,SAAS,CAAC,wFAAwF,CAAC;IAChH;IACDZ,wBAAwB,CAACM,SAAS,CAAC,IAAI,EAAE/M,MAAM,CAAC;EACxD,CAAK;EACDmK,cAAc,CAAClI,SAAS,CAAC4J,UAAU,GAAG,YAAY;IAC9CY,wBAAwB,CAACZ,UAAU,CAAC,IAAI,CAAC;EACjD,CAAK;EACD1B,cAAc,CAACmD,QAAQ,GAAG,YAAY;IAClC,OAAO,gDAAgD;EAC/D,CAAK;EACD,OAAOnD,cAAc;AACzB,CAAC,EAAG;AChCG,MAAMoD,kBACX,OAAOpN,MAAA,KAAW,eAAeA,MAAO,CAAAgK,cAAA,GACpChK,OAAOgK,cACP,GAAAqD,cAAAA;ACqCC,MAAMC,uBAAuBC,0BAA2B,EAAA;AAE/D,SAASC,+BAAwD,GAAA;EACxD,OAAA;IACLC,SAAA,CAAUnP,SAASoP,UAAY,EAAA;MAC7B,MAAMxB,iBAAiB,IAAIkB,eAAA,CAAgB,QAAa;QAAA,IAAZ,CAAC/E,KAAK,CAAM;QAC3CqF,UAAA,CAAA;UACTC,cAActF,KAAM,CAAAjE,WAAA;UACpBwJ,MAAQ,EAAA;YACN/L,KAAA,EAAOwG,KAAM,CAAAnE,aAAA,CAAc,CAAG,CAAA,CAAA1C,UAAA;YAC9BtF,MAAA,EAAQmM,KAAM,CAAAnE,aAAA,CAAc,CAAG,CAAA,CAAAzC;UACjC,CAAA;UACAzF,OAAS,EAAA;YACP6F,KAAA,EAAOwG,MAAMjE,WAAY,CAAAvC,KAAA;YACzB3F,MAAA,EAAQmM,MAAMjE,WAAY,CAAAlI;UAC5B;QAAA,CACD,CAAA;MAAA,CACF,CAAA;MAEDgQ,cAAA,CAAetC,QAAQtL,OAAO,CAAA;MAE9B,OAAO,MAAM;QACX4N,cAAA,CAAeU,UAAUtO,OAAO,CAAA;QAChC4N,cAAA,CAAeR,UAAW,EAAA;MAAA,CAC5B;IACF;EAAA,CACF;AACF;AAEA,SAAS6B,0BAAmD,GAAA;EACpD,MAAAM,YAAA,GAAA,mBAAmBxK,OAAiC,EAAA;EACpD,MAAAyK,gBAAA,GAAA,mBAAuBzK,OAA+C,EAAA;EAErE,OAAA;IACLoK,SAAA,CAAUnP,SAASoP,UAAY,EAAA;MAC7B,MAAMK,WAAc,GAAAD,gBAAA,CAAiBtJ,GAAI,CAAAlG,OAAO,KAAK,EAAC;MAElD,IAAA0P,OAAA,GAAUH,YAAa,CAAArJ,GAAA,CAAIlG,OAAO,CAAA;MAEtC,IAAI,CAACwP,gBAAA,CAAiBvJ,GAAI,CAAAjG,OAAO,CAAG,EAAA;QACjBwP,gBAAA,CAAArJ,GAAA,CAAInG,SAASyP,WAAW,CAAA;QAEzC,MAAMjP,WAAW0O,+BAAgC,EAAA;QAGjDQ,OAAA,GAAUlP,QAAS,CAAA2O,SAAA,CAAUnP,OAAS,EAAC2P,WAAgB,IAAA;UACrD,KAAA,MAAWC,OAAOH,WAAa,EAAA;YAC7BG,GAAA,CAAID,WAAW,CAAA;UACjB;QAAA,CACD,CAAA;MACH;MAEAF,WAAA,CAAYrP,KAAKgP,UAAU,CAAA;MAE3B,OAAO,MAAM;QAGL,MAAAS,GAAA,GAAMJ,WAAY,CAAAhB,OAAA,CAAQW,UAAU,CAAA;QAE1C,IAAIS,MAAM,CAAI,CAAA,EAAA;UACAJ,WAAA,CAAApF,MAAA,CAAOwF,KAAK,CAAC,CAAA;QAC3B;QAEI,IAAAJ,WAAA,CAAYnT,WAAW,CAAG,EAAA;UAExB,IAAAoT,OAAA,EAAiBA,OAAA,EAAA;QACvB;MAAA,CACF;IACF;EAAA,CACF;AACF;AC5GO,SAASI,eAAe9P,OAAiD,EAAA;EAC9E,MAAM,CAAC7B,IAAA,EAAM4R,OAAO,CAAA,GAAIpP,SAA6B,IAAI,CAAA;EAEzDK,SAAA,CAAU,MAAM;IACd,IAAI,CAAChB,OAAA,EAAgB,OAAA,KAAA,CAAA;IAEd,OAAAgP,oBAAA,CAAqBG,SAAU,CAAAnP,OAAA,EAAS+P,OAAO,CAAA;EAAA,CACxD,EAAG,CAAC/P,OAAO,CAAC,CAAA;EAEL,OAAA7B,IAAA;AACT;ACTO,SAAS6R,eAAehQ,OAAqD,EAAA;EAC5E,MAAAiQ,WAAA,GAAcH,eAAe9P,OAAO,CAAA;EAE1C,OAAA,CAAOiQ,2CAAaZ,YAAgB,KAAA,IAAA;AACtC;ACPO,SAASa,iBAAiBC,SAAiD,EAAA;EAChF,OAAOnP,UAAU,MAAM;IACrBW,gBAAA,CAAiB,WAAWwO,SAAS,CAAA;IAE9B,OAAA,MAAMvO,mBAAoB,CAAA,SAAA,EAAWuO,SAAS,CAAA;EAAA,CACvD,EAAG,CAACA,SAAS,CAAC,CAAA;AAChB;ACTA,SAASC,eAAA,CAAgBC,GAAWC,CAAW,EAAA;EAC7C,OAAOD,CAAI,GAAAC,CAAA;AACb;AAOgB,SAAAC,UAAA,CAASF,GAAQC,CAAa,EAAA;EACrC,OAAA;IACLE,CAAG,EAAA3R,IAAA,CAAK6J,KAAM,CAAA+H,OAAA,CAAML,eAAgB,CAAAC,CAAA,CAAEG,CAAI,GAAA,GAAA,EAAKF,CAAE,CAAAE,CAAA,GAAI,GAAG,CAAA,GAAI,GAAG,CAAC,CAAA;IAChEE,CAAG,EAAA7R,IAAA,CAAK6J,KAAM,CAAA+H,OAAA,CAAML,eAAgB,CAAAC,CAAA,CAAEK,CAAI,GAAA,GAAA,EAAKJ,CAAE,CAAAI,CAAA,GAAI,GAAG,CAAA,GAAI,GAAG,CAAC,CAAA;IAChEL,CAAG,EAAAxR,IAAA,CAAK6J,KAAM,CAAA+H,OAAA,CAAML,eAAgB,CAAAC,CAAA,CAAEA,CAAI,GAAA,GAAA,EAAKC,CAAE,CAAAD,CAAA,GAAI,GAAG,CAAA,GAAI,GAAG,CAAC;EAAA,CAClE;AACF;AAEA,SAASI,QAAME,GAAa,EAAA;EAC1B,OAAO9R,KAAK+R,GAAI,CAAA/R,IAAA,CAAKgS,IAAIF,GAAK,EAAA,GAAG,GAAG,CAAC,CAAA;AACvC;ACnBA,SAASG,aAAA,CAAcT,GAAWC,CAAW,EAAA;EACpC,OAAAD,CAAA,GAAIC,IAAID,CAAI,GAAAC,CAAA;AACrB;AAOgB,SAAAS,QAAA,CAAOV,GAAQC,CAAa,EAAA;EACnC,OAAA;IACLE,CAAG,EAAA3R,IAAA,CAAK6J,KAAM,CAAA+H,KAAA,CAAMK,aAAc,CAAAT,CAAA,CAAEG,CAAI,GAAA,GAAA,EAAKF,CAAE,CAAAE,CAAA,GAAI,GAAG,CAAA,GAAI,GAAG,CAAC,CAAA;IAC9DE,CAAG,EAAA7R,IAAA,CAAK6J,KAAM,CAAA+H,KAAA,CAAMK,aAAc,CAAAT,CAAA,CAAEK,CAAI,GAAA,GAAA,EAAKJ,CAAE,CAAAI,CAAA,GAAI,GAAG,CAAA,GAAI,GAAG,CAAC,CAAA;IAC9DL,CAAG,EAAAxR,IAAA,CAAK6J,KAAM,CAAA+H,KAAA,CAAMK,aAAc,CAAAT,CAAA,CAAEA,CAAI,GAAA,GAAA,EAAKC,CAAE,CAAAD,CAAA,GAAI,GAAG,CAAA,GAAI,GAAG,CAAC;EAAA,CAChE;AACF;AAEA,SAASI,MAAME,GAAa,EAAA;EAC1B,OAAO9R,KAAK+R,GAAI,CAAA/R,IAAA,CAAKgS,IAAIF,GAAK,EAAA,GAAG,GAAG,CAAC,CAAA;AACvC;AChBO,SAASK,SAASC,GAAkB,EAAA;EACrC,IAAAA,GAAA,CAAI3U,WAAW,CAAG,EAAA;IACpB,MAAM4U,IAAO,GAAAD,GAAA,CAAIvC,KAAM,CAAA,CAAA,EAAG,CAAC,CAAA;IAC3B,MAAMyC,IAAO,GAAAF,GAAA,CAAIvC,KAAM,CAAA,CAAA,EAAG,CAAC,CAAA;IAC3B,MAAM0C,IAAO,GAAAH,GAAA,CAAIvC,KAAM,CAAA,CAAA,EAAG,CAAC,CAAA;IAEpB,OAAA;MACL8B,CAAG,EAAAa,QAAA,CAASH,IAAO,GAAAA,IAAA,EAAM,EAAE,CAAA;MAC3BR,CAAG,EAAAW,QAAA,CAASF,IAAO,GAAAA,IAAA,EAAM,EAAE,CAAA;MAC3Bd,CAAG,EAAAgB,QAAA,CAASD,IAAO,GAAAA,IAAA,EAAM,EAAE;IAAA,CAC7B;EACF;EAEO,OAAA;IACLZ,GAAGa,QAAS,CAAAJ,GAAA,CAAIvC,MAAM,CAAG,EAAA,CAAC,GAAG,EAAE,CAAA;IAC/BgC,GAAGW,QAAS,CAAAJ,GAAA,CAAIvC,MAAM,CAAG,EAAA,CAAC,GAAG,EAAE,CAAA;IAC/B2B,GAAGgB,QAAS,CAAAJ,GAAA,CAAIvC,MAAM,CAAG,EAAA,CAAC,GAAG,EAAE;EAAA,CACjC;AACF;AAKO,SAAS4C,QAAS,QAAwB;EAAA,IAAxB;IAACd,CAAG;IAAAE,CAAA;IAAGL;GAAiB;EAC/C,OAAO,GAAQ,GAAA,CAAA,CAAA,CAAA,IAAK,EAAO,KAAAG,CAAA,IAAK,EAAO,CAAA,IAAAE,CAAA,IAAK,CAAK,CAAA,GAAAL,CAAA,EAAGxB,QAAS,CAAA,EAAE,CAAE,CAAAH,KAAA,CAAM,CAAC,CAAA;AAC1E;AAMO,SAAS6C,QAAS,QAAqB;EAAA,IAArB;IAACf,CAAG;IAAAE,CAAA;IAAGL;GAAc;EAEvCG,CAAA,IAAA,GAAA;EACAE,CAAA,IAAA,GAAA;EACAL,CAAA,IAAA,GAAA;EAGL,MAAMmB,IAAO,GAAA3S,IAAA,CAAKgS,GAAI,CAAAL,CAAA,EAAGE,GAAGL,CAAC,CAAA;EAC7B,MAAMoB,IAAO,GAAA5S,IAAA,CAAK+R,GAAI,CAAAJ,CAAA,EAAGE,GAAGL,CAAC,CAAA;EAC7B,MAAMqB,QAAQD,IAAO,GAAAD,IAAA;EAErB,IAAIG,CAAI,GAAA,CAAA;EACR,IAAIrB,CAAI,GAAA,CAAA;EACR,IAAIsB,CAAI,GAAA,CAAA;EAIR,IAAIF,KAAS,IAAA,CAAA,EAAOC,CAAA,GAAA,CAAA,CAAA,KAAA,IAEXF,IAAQ,IAAAjB,CAAA,EAASmB,CAAA,GAAA,CAAAjB,CAAA,GAAIL,KAAKqB,KAAS,GAAA,CAAA,CAAA,KAAA,IAEnCD,IAAQ,IAAAf,CAAA,EAAQiB,CAAA,GAAA,CAAAtB,CAAA,GAAIG,KAAKkB,KAAQ,GAAA,CAAA,CAAA,KAEhCC,CAAA,GAAA,CAAAnB,CAAA,GAAIE,KAAKgB,KAAQ,GAAA,CAAA;EAEvBC,CAAA,GAAA9S,IAAA,CAAK6J,KAAM,CAAAiJ,CAAA,GAAI,EAAE,CAAA;EAGrB,IAAIA,CAAI,GAAA,CAAA,EAAQA,CAAA,IAAA,GAAA;EAGhBC,CAAA,GAAA,CAAKH,OAAOD,IAAQ,IAAA,CAAA;EAGhBlB,CAAA,GAAAoB,KAAA,IAAS,IAAI,CAAI,GAAAA,KAAA,IAAS,IAAI7S,IAAK,CAAAgT,GAAA,CAAI,CAAI,GAAAD,CAAA,GAAI,CAAC,CAAA,CAAA;EAGpDtB,CAAA,GAAI,CAAE,CAAAA,CAAA,GAAI,GAAK,EAAAwB,OAAA,CAAQ,CAAC,CAAA;EACxBF,CAAA,GAAI,CAAE,CAAAA,CAAA,GAAI,GAAK,EAAAE,OAAA,CAAQ,CAAC,CAAA;EAEjB,OAAA;IAACH,CAAG;IAAArB,CAAA;IAAGsB;GAAC;AACjB;AAKO,SAASG,SAASC,GAAe,EAAA;EAEhC,MAAA1B,CAAA,GAAI0B,IAAI1B,CAAI,GAAA,GAAA;EACZ,MAAAsB,CAAA,GAAII,IAAIJ,CAAI,GAAA,GAAA;EAElB,MAAMK,KAAK,CAAI,GAAApT,IAAA,CAAKgT,IAAI,CAAI,GAAAD,CAAA,GAAI,CAAC,CAAK,IAAAtB,CAAA;EAChC,MAAAjN,CAAA,GAAI4O,KAAK,CAAI,GAAApT,IAAA,CAAKgT,IAAMG,GAAI,CAAAL,CAAA,GAAI,EAAM,GAAA,CAAA,GAAK,CAAC,CAAA,CAAA;EAC5C,MAAAO,CAAA,GAAIN,IAAIK,CAAI,GAAA,CAAA;EAElB,IAAIzB,CAAI,GAAA,CAAA;EACR,IAAIE,CAAI,GAAA,CAAA;EACR,IAAIL,CAAI,GAAA,CAAA;EAER,IAAI,CAAK,IAAA2B,GAAA,CAAIL,CAAK,IAAAK,GAAA,CAAIL,IAAI,EAAI,EAAA;IACxBnB,CAAA,GAAAyB,CAAA;IACAvB,CAAA,GAAArN,CAAA;IACAgN,CAAA,GAAA,CAAA;EAAA,WACK,EAAM,IAAA2B,GAAA,CAAIL,CAAK,IAAAK,GAAA,CAAIL,IAAI,GAAK,EAAA;IACjCnB,CAAA,GAAAnN,CAAA;IACAqN,CAAA,GAAAuB,CAAA;IACA5B,CAAA,GAAA,CAAA;EAAA,WACK,GAAO,IAAA2B,GAAA,CAAIL,CAAK,IAAAK,GAAA,CAAIL,IAAI,GAAK,EAAA;IAClCnB,CAAA,GAAA,CAAA;IACAE,CAAA,GAAAuB,CAAA;IACA5B,CAAA,GAAAhN,CAAA;EAAA,WACK,GAAO,IAAA2O,GAAA,CAAIL,CAAK,IAAAK,GAAA,CAAIL,IAAI,GAAK,EAAA;IAClCnB,CAAA,GAAA,CAAA;IACAE,CAAA,GAAArN,CAAA;IACAgN,CAAA,GAAA4B,CAAA;EAAA,WACK,GAAO,IAAAD,GAAA,CAAIL,CAAK,IAAAK,GAAA,CAAIL,IAAI,GAAK,EAAA;IAClCnB,CAAA,GAAAnN,CAAA;IACAqN,CAAA,GAAA,CAAA;IACAL,CAAA,GAAA4B,CAAA;EAAA,WACK,GAAO,IAAAD,GAAA,CAAIL,CAAK,IAAAK,GAAA,CAAIL,IAAI,GAAK,EAAA;IAClCnB,CAAA,GAAAyB,CAAA;IACAvB,CAAA,GAAA,CAAA;IACAL,CAAA,GAAAhN,CAAA;EACN;EAEO,OAAA;IACLmN,CAAG,EAAA3R,IAAA,CAAK6J,KAAO,CAAA,CAAA8H,CAAA,GAAI0B,KAAK,GAAG,CAAA;IAC3BxB,CAAG,EAAA7R,IAAA,CAAK6J,KAAO,CAAA,CAAAgI,CAAA,GAAIwB,KAAK,GAAG,CAAA;IAC3B7B,CAAG,EAAAxR,IAAA,CAAK6J,KAAO,CAAA,CAAA2H,CAAA,GAAI6B,KAAK,GAAG;EAAA,CAC7B;AACF;AC3HA,MAAMC,SAAY,GAAA,wBAAA;AAElB,MAAMC,MAAS,GAAA,uEAAA;AAEf,SAASC,WAAWC,GAAa,EAAA;EAC/B,KAAA,MAAWL,KAAKK,GAAK,EAAA;IACnB,IAAIH,SAAU,CAAA1D,OAAA,CAAQwD,CAAC,CAAA,KAAM,CAAI,CAAA,EAAA;MACxB,OAAA,KAAA;IACT;EACF;EAEO,OAAA,IAAA;AACT;AAEA,SAASM,MAAMD,GAAa,EAAA;EAC1B,IAAIA,IAAI,CAAO,CAAA,KAAA,GAAA,EAAY,OAAA,KAAA;EAG3B,IAAI,EAAEA,GAAA,CAAIhW,MAAW,KAAA,CAAA,IAAKgW,IAAIhW,MAAW,KAAA,CAAA,CAAA,EAAW,OAAA,KAAA;EAEpD,OAAO+V,UAAW,CAAAC,GAAA,CAAI5D,KAAM,CAAA,CAAC,CAAC,CAAA;AAChC;AAEA,SAAS8D,SAASF,GAAkB,EAAA;EAC5B,MAAAG,GAAA,GAAML,MAAO,CAAAM,IAAA,CAAKJ,GAAG,CAAA;EAE3B,IAAI,CAACG,GAAK,EAAA;IACF,MAAA,IAAIpW,KAAM,kDAAyCiW,GAAM,QAAA;EACjE;EAEA,OAAO;IAACX,CAAA,EAAGN,QAAS,CAAAoB,GAAA,CAAI,EAAE,CAAG;IAAAnC,CAAA,EAAG9K,UAAW,CAAAiN,GAAA,CAAI,EAAE,CAAG;IAAAb,CAAA,EAAGpM,UAAW,CAAAiN,GAAA,CAAI,EAAE;GAAC;AAC3E;AAKO,SAASE,WAAWC,KAAqB,EAAA;EAC9C,IAAI,CAACA,KAAA,EAAO,OAAO;IAACpC,CAAG,EAAA,CAAA;IAAGE,CAAG,EAAA,CAAA;IAAGL,GAAG;GAAC;EAEhC,IAAA,OAAOuC,UAAU,QAAU,EAAA;IACvB,MAAA,IAAIvW,MAAM,+BAA+B,CAAA;EACjD;EAEI,IAAAkW,KAAA,CAAMK,KAAK,CAAG,EAAA;IAChB,OAAO5B,SAAS4B,KAAK,CAAA;EACvB;EAEI,IAAAA,KAAA,CAAMC,UAAW,CAAA,MAAM,CAAG,EAAA;IACrB,OAAAd,QAAA,CAASS,QAAS,CAAAI,KAAK,CAAC,CAAA;EACjC;EAEM,MAAA,IAAIvW,KAAM,kDAAyCuW,KAAQ,QAAA;AACnE;AClDgB,SAAAE,IAAA,CAAKF,OAAgBG,CAAmB,EAAA;EAChD,MAAAC,GAAA,GAAML,WAAWC,KAAK,CAAA;EAE5B,sBAAeI,GAAI,CAAAxC,CAAA,cAAKwC,GAAI,CAAAtC,CAAA,cAAKsC,IAAI3C,CAAK,cAAA0C,CAAA;AAC5C;ACHO,SAASE,kBACdC,IACA,EAAA7V,IAAA,EACA8V,IACA,EAAAC,KAAA,EACAC,OACAC,IACuB,EAAA;EAChB,OAAA;IACLC,OAAA,EAASL,KAAKM,MAAO,CAAA;MACnBnW,IAAA;MACA8V,IAAA;MACAC,OAAOA,KAAM,CAAAG,OAAA;MACbF,OAAOA,KAAM,CAAAE,OAAA;MACbD;IAAA,CACD,CAAA;IACDG,OAAA,EAASP,KAAKM,MAAO,CAAA;MACnBnW,IAAA;MACA8V,IAAA;MACAC,OAAOA,KAAM,CAAAK,OAAA;MACbJ,OAAOA,KAAM,CAAAI,OAAA;MACbH;IAAA,CACD,CAAA;IACDI,QAAA,EAAUR,KAAKM,MAAO,CAAA;MACpBnW,IAAA;MACA8V,IAAA;MACAC,OAAOA,KAAM,CAAAM,QAAA;MACbL,OAAOA,KAAM,CAAAK,QAAA;MACbJ;IAAA,CACD,CAAA;IACDK,OAAA,EAAST,KAAKM,MAAO,CAAA;MACnBnW,IAAA;MACA8V,IAAA;MACAC,OAAOA,KAAM,CAAAO,OAAA;MACbN,OAAOA,KAAM,CAAAM,OAAA;MACbL;IAAA,CACD,CAAA;IACDM,QAAA,EAAUV,KAAKM,MAAO,CAAA;MACpBnW,IAAA;MACA8V,IAAA;MACAC,OAAOA,KAAM,CAAAQ,QAAA;MACbP,OAAOA,KAAM,CAAAO,QAAA;MACbN;IAAA,CACD;EAAA,CACH;AACF;AC5CO,SAASO,iBACd,CAAAX,IAAA,EACA7V,IACA,EAAA8V,IAAA,EACAC,OACAC,KACkB,EAAA;EACX,OAAA;IACLE,SAASN,iBAAkB,CAAAC,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,SAAS,CAAA;IACpES,OAAOb,iBAAkB,CAAAC,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,OAAO,CAAA;IAChEU,OAAOd,iBAAkB,CAAAC,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,OAAO;EAAA,CAClE;AACF;ACZO,SAASW,iBACdd,IACA,EAAA7V,IAAA,EACA8V,IACA,EAAAhG,IAAA,EACAiG,OACAC,KACgB,EAAA;EACT,OAAA;IACLY,OAAA,EAASf,KAAKgB,IAAK,CAAA;MACjB7W,IAAA;MACA8V,IAAA;MACAhG,IAAA;MACAgH,KAAO,EAAA,SAAA;MACPf,KAAA;MACAC;IAAA,CACD,CAAA;IACDe,QAAA,EAAUlB,KAAKgB,IAAK,CAAA;MAClB7W,IAAA;MACA8V,IAAA;MACAhG,IAAA;MACAgH,KAAO,EAAA,UAAA;MACPf,KAAA;MACAC;IAAA,CACD,CAAA;IACDgB,OAAA,EAASnB,KAAKgB,IAAK,CAAA;MACjB7W,IAAA;MACA8V,IAAA;MACAhG,IAAA;MACAgH,KAAO,EAAA,SAAA;MACPf,KAAA;MACAC;IAAA,CACD,CAAA;IACDiB,OAAA,EAASpB,KAAKgB,IAAK,CAAA;MACjB7W,IAAA;MACA8V,IAAA;MACAhG,IAAA;MACAgH,KAAO,EAAA,SAAA;MACPf,KAAA;MACAC;IAAA,CACD,CAAA;IACDkB,QAAA,EAAUrB,KAAKgB,IAAK,CAAA;MAClB7W,IAAA;MACA8V,IAAA;MACAhG,IAAA;MACAgH,KAAO,EAAA,UAAA;MACPf,KAAA;MACAC;IAAA,CACD;EAAA,CACH;AACF;ACvDA,MAAMmB,KAAQ,GAAA,gBAAA;AACd,MAAMC,KAAQ,GAAA,kBAAA;AAEd,MAAMC,MAAS,GAAA;EACbnB,OAAS,EAAA;IACPoB,QAAU,EAAA,iBAAA;IACVC,OAAS,EAAA,iBAAA;IACTC,KAAO,EAAA,iBAAA;IACPxX,IAAM,EAAA,iBAAA;IACN8V,IAAM,EAAA,iBAAA;IACN2B,MAAQ,EAAA,iBAAA;IACRC,OAAS,EAAA;EACX,CAAA;EACAC,WAAa,EAAA;IACXL,QAAU,EAAA,qBAAA;IACVC,OAAS,EAAA,qBAAA;IACTC,KAAO,EAAA,qBAAA;IACPxX,IAAM,EAAA,qBAAA;IACN8V,IAAM,EAAA,qBAAA;IACN2B,MAAQ,EAAA,qBAAA;IACRC,OAAS,EAAA;EACX,CAAA;EACAtB,OAAS,EAAA;IACPkB,QAAU,EAAA,qBAAA;IACVC,OAAS,EAAA,qBAAA;IACTC,KAAO,EAAA,qBAAA;IACPxX,IAAM,EAAA,qBAAA;IACN8V,IAAM,EAAA,qBAAA;IACN2B,MAAQ,EAAA,qBAAA;IACRC,OAAS,EAAA;EACX,CAAA;EACArB,QAAU,EAAA;IACRiB,QAAU,EAAA,qBAAA;IACVC,OAAS,EAAA,qBAAA;IACTC,KAAO,EAAA,qBAAA;IACPxX,IAAM,EAAA,qBAAA;IACN8V,IAAM,EAAA,qBAAA;IACN2B,MAAQ,EAAA,qBAAA;IACRC,OAAS,EAAA;EACX,CAAA;EACApB,OAAS,EAAA;IACPgB,QAAU,EAAA,oBAAA;IACVC,OAAS,EAAA,oBAAA;IACTC,KAAO,EAAA,oBAAA;IACPxX,IAAM,EAAA,oBAAA;IACN8V,IAAM,EAAA,oBAAA;IACN2B,MAAQ,EAAA,oBAAA;IACRC,OAAS,EAAA;EACX,CAAA;EACAnB,QAAU,EAAA;IACRe,QAAU,EAAA,mBAAA;IACVC,OAAS,EAAA,mBAAA;IACTC,KAAO,EAAA,mBAAA;IACPxX,IAAM,EAAA,mBAAA;IACN8V,IAAM,EAAA,mBAAA;IACN2B,MAAQ,EAAA,mBAAA;IACRC,OAAS,EAAA;EACX;AACF,CAAA;AAEA,MAAME,KAAQ,GAAA;EACZC,IAAM,EAAA,iBAAA;EACNC,GAAK,EAAA,mBAAA;EACLC,MAAQ,EAAA,oBAAA;EACRC,MAAQ,EAAA,oBAAA;EACRC,KAAO,EAAA,qBAAA;EACPC,IAAM,EAAA,qBAAA;EACNC,IAAM,EAAA,qBAAA;EACNC,MAAQ,EAAA,qBAAA;EACRC,OAAS,EAAA;AACX,CAAA;AAEA,MAAMC,OAAQ,GAAA;EACZX,WAAa,EAAA;IACXY,IAAI,CAAClB,MAAA,CAAOM,YAAYD,OAAS,EAAAL,MAAA,CAAOM,YAAYL,QAAQ,CAAA;IAC5DkB,IAAI,CAACnB,MAAA,CAAOM,YAAYL,QAAU,EAAAD,MAAA,CAAOM,YAAYD,OAAO,CAAA;IAC5DzF,QAAQ,CAACoF,MAAA,CAAOM,YAAYF,MAAQ,EAAAJ,MAAA,CAAOM,YAAYJ,OAAO,CAAA;IAC9DkB,WAAW,CAACpB,MAAA,CAAOM,YAAY3X,IAAM,EAAAqX,MAAA,CAAOM,YAAY3X,IAAI;EAC9D,CAAA;EACAoW,OAAS,EAAA;IACPmC,IAAI,CAAClB,MAAA,CAAOjB,QAAQsB,OAAS,EAAAL,MAAA,CAAOjB,QAAQkB,QAAQ,CAAA;IACpDkB,IAAI,CAACnB,MAAA,CAAOjB,QAAQkB,QAAU,EAAAD,MAAA,CAAOjB,QAAQsB,OAAO,CAAA;IACpDzF,QAAQ,CAACoF,MAAA,CAAOjB,QAAQqB,MAAQ,EAAAJ,MAAA,CAAOjB,QAAQmB,OAAO,CAAA;IACtDkB,WAAW,CAACpB,MAAA,CAAOjB,QAAQpW,IAAM,EAAAqX,MAAA,CAAOjB,QAAQpW,IAAI;EACtD,CAAA;EACAqW,QAAU,EAAA;IACRkC,IAAI,CAAClB,MAAA,CAAOhB,SAASqB,OAAS,EAAAL,MAAA,CAAOhB,SAASiB,QAAQ,CAAA;IACtDkB,IAAI,CAACnB,MAAA,CAAOhB,SAASiB,QAAU,EAAAD,MAAA,CAAOhB,SAASqB,OAAO,CAAA;IACtDzF,QAAQ,CAACoF,MAAA,CAAOhB,SAASoB,MAAQ,EAAAJ,MAAA,CAAOhB,SAASkB,OAAO,CAAA;IACxDkB,WAAW,CAACpB,MAAA,CAAOhB,SAASrW,IAAM,EAAAqX,MAAA,CAAOhB,SAASrW,IAAI;EACxD,CAAA;EACAsW,OAAS,EAAA;IACPiC,IAAI,CAAClB,MAAA,CAAOf,QAAQoB,OAAS,EAAAL,MAAA,CAAOf,QAAQgB,QAAQ,CAAA;IACpDkB,IAAI,CAACnB,MAAA,CAAOf,QAAQgB,QAAU,EAAAD,MAAA,CAAOf,QAAQoB,OAAO,CAAA;IACpDzF,QAAQ,CAACoF,MAAA,CAAOf,QAAQmB,MAAQ,EAAAJ,MAAA,CAAOf,QAAQiB,OAAO,CAAA;IACtDkB,WAAW,CAACpB,MAAA,CAAOf,QAAQtW,IAAM,EAAAqX,MAAA,CAAOf,QAAQtW,IAAI;EACtD,CAAA;EACAuW,QAAU,EAAA;IACRgC,IAAI,CAAClB,MAAA,CAAOd,SAASmB,OAAS,EAAAL,MAAA,CAAOd,SAASe,QAAQ,CAAA;IACtDkB,IAAI,CAACnB,MAAA,CAAOd,SAASe,QAAU,EAAAD,MAAA,CAAOd,SAASmB,OAAO,CAAA;IACtDzF,QAAQ,CAACoF,MAAA,CAAOd,SAASkB,MAAQ,EAAAJ,MAAA,CAAOd,SAASgB,OAAO,CAAA;IACxDkB,WAAW,CAACpB,MAAA,CAAOd,SAASvW,IAAM,EAAAqX,MAAA,CAAOd,SAASvW,IAAI;EACxD;AACF,CAAA;AAEO,MAAM0Y,WAAqC,GAAA;EAChD1Y,IAAM,EAAA,SAAkB;IAAA,IAAjB;MAAC8V,IAAA;MAAMhG;KAAU;IACtB,IAAIA,SAAS,SAAW,EAAA;MACf,OAAA;QACLyI,EAAA,EAAIzC,OAAOqB,KAAQ,GAAAC,KAAA;QACnBoB,EAAA,EAAI1C,OAAOsB,KAAQ,GAAAD,KAAA;QACnBlF,QAAQ6D,IAAO,GAAAuB,MAAA,CAAOnB,OAAQ,CAAAwB,OAAA,GAAUL,OAAOnB,OAAQ,CAAAoB,QAAA;QACvDmB,SAAA,EAAWpB,OAAOjB,OAAQ,CAAApW,IAAA;QAC1B2Y,MAAQ,EAAA;UACNC,OAAS,EAAAzB,KAAA;UACT0B,KAAO,EAAA1B,KAAA;UACP2B,QAAU,EAAA3B,KAAA;UACV4B,OAAS,EAAA5B;QACX,CAAA;QACA6B,QAAU,EAAA;UACRC,IAAA,EAAMnD,OAAOsB,KAAQ,GAAAD,KAAA;UACrB+B,EAAA,EAAIpD,OAAOsB,KAAQ,GAAAD;QACrB;MAAA,CACF;IACF;IAOO,OAAA;MACLoB,EAAI,EAAAD,OAAA,CAAMxI,IAAM,CAAA,CAAAyI,EAAA,CAAGzC,OAAO,CAAI,GAAA,CAAA,CAAA;MAC9B0C,EAAI,EAAAF,OAAA,CAAMxI,IAAM,CAAA,CAAA0I,EAAA,CAAG1C,OAAO,CAAI,GAAA,CAAA,CAAA;MAC9B7D,MAAQ,EAAAqG,OAAA,CAAMxI,IAAM,CAAA,CAAAmC,MAAA,CAAO6D,OAAO,CAAI,GAAA,CAAA,CAAA;MACtC2C,SAAW,EAAAH,OAAA,CAAMxI,IAAM,CAAA,CAAA2I,SAAA,CAAU3C,OAAO,CAAI,GAAA,CAAA,CAAA;MAC5C6C,MAAQ,EAAA;QACNC,OAAS,EAAAzB,KAAA;QACT0B,KAAO,EAAA1B,KAAA;QACP2B,QAAU,EAAA3B,KAAA;QACV4B,OAAS,EAAA5B;MACX,CAAA;MACA6B,QAAU,EAAA;QACRC,IAAA,EAAMnD,OAAOsB,KAAQ,GAAAD,KAAA;QACrB+B,EAAA,EAAIpD,OAAOsB,KAAQ,GAAAD;MACrB;IAAA,CACF;EACF,CAAA;EAEApB,OAAO,SAA+B;IAAA,IAA9B;MAAC/V;MAAM8V,IAAM;MAAAgB,KAAA;MAAOqC;KAAU;IACpC,MAAM5D,QAAQ8B,MAAO,CAAA8B,IAAA,CAAA;IAErB,IAAIrC,UAAU,SAAW,EAAA;MAChB,OAAA;QACLyB,EAAI,EAAAzC,IAAA,GAAOP,KAAM,CAAAiC,KAAA,GAAQjC,KAAM,CAAAO,IAAA;QAC/BsD,GAAK,EAAAtD,IAAA,GAAOP,KAAM,CAAAiC,KAAA,GAAQjC,KAAM,CAAAO,IAAA;QAChC7D,MAAQ,EAAA6D,IAAA,GAAOP,KAAM,CAAAgC,OAAA,GAAUhC,KAAM,CAAAkC,MAAA;QACrCe,EAAI,EAAA1C,IAAA,GAAOP,KAAM,CAAAmC,OAAA,GAAUnC,KAAM,CAAA+B,QAAA;QACjCtB,KAAO,EAAA;UACLwC,EAAI,EAAArB;QACN,CAAA;QACAkC,MAAQ,EAAA;UACNb,EAAI,EAAArB;QACN,CAAA;QACAmC,IAAM,EAAA;UACJd,EAAI,EAAArB;QACN,CAAA;QACAoC,IAAM,EAAA;UACJhB,EAAI,EAAApB,KAAA;UACJqB,EAAI,EAAArB;QACN,CAAA;QACA6B,UAAUhZ,IAAK,CAAAgZ;MAAA,CACjB;IACF;IAEO,OAAA;MACLT,IAAIhD,KAAM,CAAAvV,IAAA;MACVoZ,KAAK7D,KAAM,CAAAvV,IAAA;MACXiS,MAAQ,EAAA6D,IAAA,GAAOP,KAAM,CAAAiC,KAAA,GAAQjC,KAAM,CAAAO,IAAA;MACnC0C,EAAI,EAAA1C,IAAA,GAAOP,KAAM,CAAAmC,OAAA,GAAUnC,KAAM,CAAA+B,QAAA;MACjCtB,KAAO,EAAA;QACLwC,EAAI,EAAArB;MACN,CAAA;MACAkC,MAAQ,EAAA;QACNb,EAAI,EAAArB;MACN,CAAA;MACAmC,IAAM,EAAA;QACJd,EAAI,EAAArB;MACN,CAAA;MACAoC,IAAM,EAAA;QACJhB,EAAI,EAAApB,KAAA;QACJqB,EAAI,EAAArB;MACN,CAAA;MACA6B,UAAUhZ,IAAK,CAAAgZ;IAAA,CACjB;EACF,CAAA;EAEAhD,OAAO,SAA+B;IAAA,IAA9B;MAAChW;MAAM8V,IAAM;MAAAgB,KAAA;MAAOqC;KAAU;IACpC,MAAM5D,QAAQ8B,MAAO,CAAA8B,IAAA,CAAA;IAErB,IAAIrC,UAAU,SAAW,EAAA;MAChB,OAAA;QACLyB,EAAI,EAAAzC,IAAA,GAAOP,KAAM,CAAAkC,MAAA,GAASlC,KAAM,CAAAgC,OAAA;QAChC6B,GAAK,EAAAtD,IAAA,GAAOP,KAAM,CAAAkC,MAAA,GAASlC,KAAM,CAAAgC,OAAA;QACjCtF,MAAQ,EAAA6D,IAAA,GAAOP,KAAM,CAAAgC,OAAA,GAAUhC,KAAM,CAAAkC,MAAA;QACrCe,EAAI,EAAA1C,IAAA,GAAOP,KAAM,CAAA+B,QAAA,GAAW/B,KAAM,CAAAmC,OAAA;QAClC1B,KAAO,EAAA;UACLwC,EAAI,EAAArB;QACN,CAAA;QACAkC,MAAQ,EAAA;UACNb,EAAI,EAAArB;QACN,CAAA;QACAmC,IAAM,EAAA;UACJd,EAAI,EAAArB;QACN,CAAA;QACAoC,IAAM,EAAA;UACJhB,EAAI,EAAApB,KAAA;UACJqB,EAAI,EAAArB;QACN,CAAA;QACA6B,UAAUhZ,IAAK,CAAAgZ;MAAA,CACjB;IACF;IAEO,OAAA;MACLT,EAAI,EAAAzC,IAAA,GAAOP,KAAM,CAAAmC,OAAA,GAAUnC,KAAM,CAAA+B,QAAA;MACjC8B,GAAK,EAAAtD,IAAA,GAAOP,KAAM,CAAAmC,OAAA,GAAUnC,KAAM,CAAA+B,QAAA;MAClCrF,MAAQ,EAAA6D,IAAA,GAAOP,KAAM,CAAAkC,MAAA,GAASlC,KAAM,CAAAgC,OAAA;MACpCiB,EAAI,EAAA1C,IAAA,GAAOP,KAAM,CAAAgC,OAAA,GAAUhC,KAAM,CAAAkC,MAAA;MACjCzB,KAAO,EAAA;QACLwC,EAAI,EAAArB;MACN,CAAA;MACAkC,MAAQ,EAAA;QACNb,EAAI,EAAArB;MACN,CAAA;MACAmC,IAAM,EAAA;QACJd,EAAI,EAAArB;MACN,CAAA;MACAoC,IAAM,EAAA;QACJhB,EAAI,EAAApB,KAAA;QACJqB,EAAI,EAAArB;MACN,CAAA;MACA6B,UAAUhZ,IAAK,CAAAgZ;IAAA,CACjB;EACF,CAAA;EAEA7C,QAAQ,SAAgC;IAAA,IAA/B;MAACnW;MAAMiW,IAAM;MAAAD,KAAA;MAAOD;KAAW;IACtC,IAAIE,SAAS,OAAS,EAAA;MACb,uCACFD,KAAA;QACHY,OAAS,EAAA;UACP2B,EAAI,EAAA,aAAA;UACJa,GAAK,EAAA,aAAA;UACLZ,EAAA,EAAIxC,MAAMY,OAAQ,CAAA4B,EAAA;UAClBvG,MAAQ,EAAA,aAAA;UACR+D,KAAO,EAAA;YACLwC,EAAI,EAAArB;UACN,CAAA;UACAkC,MAAQ,EAAA;YACNb,EAAI,EAAArB;UACN,CAAA;UACAmC,IAAM,EAAA;YACJd,EAAI,EAAArB;UACN,CAAA;UACAoC,IAAM,EAAA;YACJhB,EAAI,EAAApB,KAAA;YACJqB,EAAI,EAAArB;UACN,CAAA;UACA6B,UAAUhZ,IAAK,CAAAgZ;QACjB,CAAA;QACAhC,OAAS,EAAA;UACPuB,EAAA,EAAIvC,MAAMY,OAAQ,CAAA2B,EAAA;UAClBa,GAAA,EAAKpD,MAAMY,OAAQ,CAAA2B,EAAA;UACnBC,EAAA,EAAIxC,MAAMgB,OAAQ,CAAAwB,EAAA;UAClBvG,MAAQ,EAAA,aAAA;UACR+D,KAAO,EAAA;YACLwC,EAAI,EAAArB;UACN,CAAA;UACAkC,MAAQ,EAAA;YACNb,EAAI,EAAArB;UACN,CAAA;UACAmC,IAAM,EAAA;YACJd,EAAI,EAAArB;UACN,CAAA;UACAoC,IAAM,EAAA;YACJhB,EAAI,EAAApB,KAAA;YACJqB,EAAI,EAAArB;UACN,CAAA;UACA6B,UAAUhZ,IAAK,CAAAgZ;QACjB;MAAA;IAEJ;IAEA,IAAI/C,IAAS,KAAA,OAAA,EACJ,uCACFF,KAAA;MACHa,SAASZ,KAAM,CAAAY;IAAA;IAGZ,OAAAb,KAAA;EACT,CAAA;EAEAc,IAAM,EAAA,SAAY;IAAA,IAAX;MAAC7W;KAAU;IACT,OAAA;MACLuY,EAAI,EAAApB,KAAA;MACJiC,GAAK,EAAAjC,KAAA;MACLqB,EAAI,EAAArB,KAAA;MACJlF,MAAQ,EAAAkF,KAAA;MACRnB,KAAO,EAAA;QACLwC,EAAI,EAAArB;MACN,CAAA;MACAkC,MAAQ,EAAA;QACNb,EAAI,EAAArB;MACN,CAAA;MACAmC,IAAM,EAAA;QACJd,EAAI,EAAArB;MACN,CAAA;MACAoC,IAAM,EAAA;QACJhB,EAAI,EAAApB,KAAA;QACJqB,EAAI,EAAArB;MACN,CAAA;MACA6B,UAAUhZ,IAAK,CAAAgZ;IAAA,CACjB;EACF,CAAA;EAEAQ,OAAO,MAAM;IACJ,OAAA;MACLjB,EAAI,EAAApB,KAAA;MACJqB,EAAI,EAAArB,KAAA;MACJlF,MAAQ,EAAAkF,KAAA;MACRsC,WAAa,EAAAtC;IAAA,CACf;EACF,CAAA;EAEAuC,YAAY,SAA0B;IAAA,IAAzB;MAAC1D,KAAO;MAAAc,KAAA;MAAOqC;KAAU;IACpC,OAAOnD,MAAMmD,IAAM,CAAA,CAAArC,KAAA,CAAA;EACrB,CAAA;EAEA6C,IAAM,EAAA,UAAW;IAAA,IAAV;MAAC/b;KAAS;IACf,OAAOga,KAAM,CAAAha,GAAA,CAAA;EACf,CAAA;EAEAgc,QAAQ,OAAO;IACbC,MAAQ,EAAA1C,KAAA;IACR2C,QAAU,EAAA3C,KAAA;IACV4C,SAAW,EAAA5C,KAAA;IACX6C,SAAW,EAAA7C,KAAA;IACX8C,OAAS,EAAA9C,KAAA;IACT+C,OAAS,EAAA/C,KAAA;IACTgD,KAAO,EAAAhD,KAAA;IACPiD,IAAM,EAAAjD,KAAA;IACNkD,KAAO,EAAAlD,KAAA;IACPmD,SAAW,EAAAnD,KAAA;IACXoD,OAAS,EAAApD,KAAA;IACTqD,QAAU,EAAArD,KAAA;IACVsD,OAAS,EAAAtD,KAAA;IACTuD,OAAS,EAAAvD,KAAA;IACTwD,MAAQ,EAAAxD,KAAA;IACRyD,QAAU,EAAAzD,KAAA;IACV0D,OAAS,EAAA1D,KAAA;IACT2D,EAAI,EAAA3D,KAAA;IACJ4D,SAAW,EAAA5D,KAAA;IACX6D,QAAU,EAAA7D,KAAA;IACV8D,OAAS,EAAA9D,KAAA;IACT+D,MAAQ,EAAA/D,KAAA;IACRgE,QAAU,EAAAhE,KAAA;IACViE,MAAQ,EAAAjE,KAAA;IACRkE,QAAU,EAAAlE,KAAA;IACVmE,WAAa,EAAAnE,KAAA;IACboE,aAAe,EAAApE,KAAA;IACfqE,WAAa,EAAArE,KAAA;IACbsE,KAAO,EAAAtE,KAAA;IACPuE,QAAU,EAAAvE,KAAA;IACVwE,MAAQ,EAAAxE,KAAA;IACRyE,MAAQ,EAAAzE,KAAA;IACR0E,GAAK,EAAA1E,KAAA;IACL2E,IAAM,EAAA3E,KAAA;IACN4E,GAAK,EAAA5E,KAAA;IACL6E,QAAU,EAAA7E;EAAA,CACZ;AACF,CAAA;ACvXO,SAAS8E,gBACd,CAAApG,IAAA,EACA7V,IACA,EAAA8V,IAAA,EACAC,OACAC,KACiB,EAAA;EACV,OAAA;IACLE,OAAS,EAAA;MACPU,OAAA,EAASf,KAAK2D,KAAM,CAAA;QAClBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,SAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd,CAAA;MACDa,QAAA,EAAUlB,KAAK2D,KAAM,CAAA;QACnBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,UAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd,CAAA;MACDc,OAAA,EAASnB,KAAK2D,KAAM,CAAA;QAClBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,SAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd,CAAA;MACDgG,QAAA,EAAUrG,KAAK2D,KAAM,CAAA;QACnBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,UAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd;IACH,CAAA;IACAiG,OAAS,EAAA;MACPvF,OAAA,EAASf,KAAK2D,KAAM,CAAA;QAClBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,SAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd,CAAA;MACDa,QAAA,EAAUlB,KAAK2D,KAAM,CAAA;QACnBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,UAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd,CAAA;MACDc,OAAA,EAASnB,KAAK2D,KAAM,CAAA;QAClBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,SAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd,CAAA;MACDgG,QAAA,EAAUrG,KAAK2D,KAAM,CAAA;QACnBxZ,IAAA;QACA8V,IAAA;QACAG,IAAM,EAAA,SAAA;QACNa,KAAO,EAAA,UAAA;QACPf,OAAOA,KAAM,CAAAG,OAAA;QACbF,OAAOA,KAAM,CAAAE;MAAA,CACd;IACH;EAAA,CACF;AACF;AC9EO,SAASkG,gBACd,CAAAvG,IAAA,EACA7V,IACA,EAAA8V,IAAA,EACAhG,IACiB,EAAA;EACV,OAAA;IACLoG,OAAS,EAAA;MACPU,OAAA,EAASf,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEC,QAAA,EAAUlB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC3EE,OAAA,EAASnB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEG,OAAA,EAASpB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEI,QAAA,EAAUrB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC7E,CAAA;IACAa,WAAa,EAAA;MACXf,OAAA,EAASf,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC7EC,QAAA,EAAUlB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC/EE,OAAA,EAASnB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC7EG,OAAA,EAASpB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC7EI,QAAA,EAAUrB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IACjF,CAAA;IACAV,OAAS,EAAA;MACPQ,OAAA,EAASf,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEC,QAAA,EAAUlB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC3EE,OAAA,EAASnB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEG,OAAA,EAASpB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEI,QAAA,EAAUrB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC7E,CAAA;IACAT,QAAU,EAAA;MACRO,OAAA,EAASf,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EC,QAAA,EAAUlB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC5EE,OAAA,EAASnB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EG,OAAA,EAASpB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EI,QAAA,EAAUrB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC9E,CAAA;IACAR,OAAS,EAAA;MACPM,OAAA,EAASf,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEC,QAAA,EAAUlB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC3EE,OAAA,EAASnB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEG,OAAA,EAASpB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEI,QAAA,EAAUrB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC7E,CAAA;IACAP,QAAU,EAAA;MACRK,OAAA,EAASf,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EC,QAAA,EAAUlB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC5EE,OAAA,EAASnB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EG,OAAA,EAASpB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EI,QAAA,EAAUrB,IAAK,CAAAG,KAAA,CAAM;QAAChW,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC9E;EAAA,CACF;AACF;ACjDO,SAASuF,qBACd,CAAAxG,IAAA,EACA7V,IACA,EAAA8V,IAAA,EACAC,OACAC,KACsB,EAAA;EACf,OAAA;IACLE,SAASoG,uBAAwB,CAAAzG,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,SAAS,CAAA;IAC1EI,SAASkG,uBAAwB,CAAAzG,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,SAAS,CAAA;IAC1EK,UAAUiG,uBAAwB,CAAAzG,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,UAAU,CAAA;IAC5EM,SAASgG,uBAAwB,CAAAzG,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,SAAS,CAAA;IAC1EO,UAAU+F,uBAAwB,CAAAzG,IAAA,EAAM7V,MAAM8V,IAAM,EAAAC,KAAA,EAAOC,OAAO,UAAU;EAAA,CAC9E;AACF;AAEA,SAASsG,wBACPzG,IACA,EAAA7V,IAAA,EACA8V,IACA,EAAAC,KAAA,EACAC,OACAmD,IAC4B,EAAA;EACrB,OAAA;IACLvC,OAAA,EAASf,KAAK6D,UAAW,CAAA;MACvB1Z,IAAA;MACA8V,IAAA;MACAC,KAAA;MACAC,KAAA;MACAc,KAAO,EAAA,SAAA;MACPqC;IAAA,CACD,CAAA;IACDnC,OAAA,EAASnB,KAAK6D,UAAW,CAAA;MACvB1Z,IAAA;MACA8V,IAAA;MACAC,KAAA;MACAC,KAAA;MACAc,KAAO,EAAA,SAAA;MACPqC;IAAA,CACD,CAAA;IACDlC,OAAA,EAASpB,KAAK6D,UAAW,CAAA;MACvB1Z,IAAA;MACA8V,IAAA;MACAC,KAAA;MACAC,KAAA;MACAc,KAAO,EAAA,SAAA;MACPqC;IAAA,CACD,CAAA;IACDjC,QAAA,EAAUrB,KAAK6D,UAAW,CAAA;MACxB1Z,IAAA;MACA8V,IAAA;MACAC,KAAA;MACAC,KAAA;MACAc,KAAO,EAAA,UAAA;MACPqC;IAAA,CACD,CAAA;IACDpC,QAAA,EAAUlB,KAAK6D,UAAW,CAAA;MACxB1Z,IAAA;MACA8V,IAAA;MACAC,KAAA;MACAC,KAAA;MACAc,KAAO,EAAA,UAAA;MACPqC;IAAA,CACD;EAAA,CACH;AACF;ACnEO,SAASoD,gBACd,CAAA1G,IAAA,EACA7V,IACA,EAAA8V,IAAA,EACAhG,IACiB,EAAA;EACV,OAAA;IACLoG,OAAS,EAAA;MACPU,OAAA,EAASf,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEC,QAAA,EAAUlB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC3EE,OAAA,EAASnB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEG,OAAA,EAASpB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEI,QAAA,EAAUrB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC7E,CAAA;IACAa,WAAa,EAAA;MACXf,OAAA,EAASf,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC7EC,QAAA,EAAUlB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC/EE,OAAA,EAASnB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC7EG,OAAA,EAASpB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC7EI,QAAA,EAAUrB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,aAAe;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IACjF,CAAA;IACAV,OAAS,EAAA;MACPQ,OAAA,EAASf,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEC,QAAA,EAAUlB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC3EE,OAAA,EAASnB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEG,OAAA,EAASpB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEI,QAAA,EAAUrB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC7E,CAAA;IACAT,QAAU,EAAA;MACRO,OAAA,EAASf,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EC,QAAA,EAAUlB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC5EE,OAAA,EAASnB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EG,OAAA,EAASpB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EI,QAAA,EAAUrB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC9E,CAAA;IACAR,OAAS,EAAA;MACPM,OAAA,EAASf,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEC,QAAA,EAAUlB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC3EE,OAAA,EAASnB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEG,OAAA,EAASpB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MACzEI,QAAA,EAAUrB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,SAAW;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC7E,CAAA;IACAP,QAAU,EAAA;MACRK,OAAA,EAASf,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EC,QAAA,EAAUlB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW,CAAA;MAC5EE,OAAA,EAASnB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EG,OAAA,EAASpB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAU,CAAA;MAC1EI,QAAA,EAAUrB,IAAK,CAAAE,KAAA,CAAM;QAAC/V,IAAA;QAAM8V,IAAM;QAAAqD,IAAA,EAAM,UAAY;QAAArJ,IAAA;QAAMgH,KAAO,EAAA;MAAA,CAAW;IAC9E;EAAA,CACF;AACF;ACnDgB,SAAA0F,UAAA,CACd3G,IACA,EAAA7V,IAAA,EACA8V,IACgB,EAAA;EACT,OAAA;IACL+B,IAAA,EAAMhC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAO,CAAA;IACzCua,IAAA,EAAMtC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAO,CAAA;IACzCwa,MAAA,EAAQvC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAS,CAAA;IAC7Cya,OAAA,EAASxC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAU,CAAA;IAC/Cka,GAAA,EAAKjC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAM,CAAA;IACvCma,MAAA,EAAQlC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAS,CAAA;IAC7Coa,MAAA,EAAQnC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAS,CAAA;IAC7Cqa,KAAA,EAAOpC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAQ,CAAA;IAC3Csa,IAAA,EAAMrC,KAAK8D,IAAK,CAAA;MAAC3Z;MAAM8V,IAAM;MAAAlY,GAAA,EAAK;KAAO;EAAA,CAC3C;AACF;ACoEgB,SAAA6e,gBAAA,GAEK;EAAA,IADnBC,WAA4C,uEAAA,EACzB;EACnB,MAAMC,QAAkC,mCAAIjE,WAAA,GAAgBgE,WAAW,CAAA;EAEhE,OAAA;IACLlF,KAAA,EAAOoF,kBAAmB,CAAAD,QAAA,EAAU,KAAK,CAAA;IACzC7G,IAAA,EAAM8G,kBAAmB,CAAAD,QAAA,EAAU,IAAI;EAAA,CACzC;AACF;AAKA,SAASC,kBAAA,CAAmB/G,MAA6BC,IAAiC,EAAA;EACjF,OAAA;IACLI,OAAS,EAAA2G,YAAA,CAAahH,IAAM,EAAAC,IAAA,EAAM,SAAS,CAAA;IAC3C6B,WAAa,EAAAkF,YAAA,CAAahH,IAAM,EAAAC,IAAA,EAAM,aAAa,CAAA;IACnDM,OAAS,EAAAyG,YAAA,CAAahH,IAAM,EAAAC,IAAA,EAAM,SAAS,CAAA;IAC3CO,QAAU,EAAAwG,YAAA,CAAahH,IAAM,EAAAC,IAAA,EAAM,UAAU,CAAA;IAC7CQ,OAAS,EAAAuG,YAAA,CAAahH,IAAM,EAAAC,IAAA,EAAM,SAAS,CAAA;IAC3CS,QAAU,EAAAsG,YAAA,CAAahH,IAAM,EAAAC,IAAA,EAAM,UAAU;EAAA,CAC/C;AACF;AAKA,SAAS+G,YAAA,CACPhH,IACA,EAAAC,IAAA,EACAhG,IACY,EAAA;EACZ,MAAM9P,OAAO6V,IAAK,CAAA7V,IAAA,CAAK;IAAC8V,IAAA;IAAMhG;GAAK,CAAA;EACnC,MAAMiG,KAAQ,GAAAwG,gBAAA,CAAiB1G,IAAM,EAAA7V,IAAA,EAAM8V,MAAMhG,IAAI,CAAA;EACrD,MAAMkG,KAAQ,GAAAoG,gBAAA,CAAiBvG,IAAM,EAAA7V,IAAA,EAAM8V,MAAMhG,IAAI,CAAA;EAE9C,OAAA;IACL9P,IAAA;IACAmW,QAAQK,iBAAkB,CAAAX,IAAA,EAAM7V,IAAM,EAAA8V,IAAA,EAAMC,OAAOC,KAAK,CAAA;IACxDa,MAAMF,gBAAiB,CAAAd,IAAA,EAAM7V,MAAM8V,IAAM,EAAAhG,IAAA,EAAMiG,OAAOC,KAAK,CAAA;IAC3DF,IAAA;IACA0D,OAAOyC,gBAAiB,CAAApG,IAAA,EAAM7V,IAAM,EAAA8V,IAAA,EAAMC,OAAOC,KAAK,CAAA;IACtD0D,YAAY2C,qBAAsB,CAAAxG,IAAA,EAAM7V,IAAM,EAAA8V,IAAA,EAAMC,OAAOC,KAAK,CAAA;IAChE2D,IAAM,EAAA6C,UAAA,CAAW3G,IAAM,EAAA7V,IAAA,EAAM8V,IAAI,CAAA;IACjC8D,QAAQ/D,IAAK,CAAA+D,MAAA,CAAO;MAAC5Z,IAAA;MAAM8V;KAAK,CAAA;IAChCC,KAAA;IACAC;EAAA,CACF;AACF;ACvIgB,SAAA9C,QAAA,CAASqF,IAAYC,EAAoB,EAAA;EACjD,MAAAxF,CAAA,GAAIsC,WAAWiD,EAAE,CAAA;EACjB,MAAAtF,CAAA,GAAIqC,WAAWkD,EAAE,CAAA;EACvB,MAAM5E,GAAM,GAAAK,QAAA,CAAS6I,UAAU,CAAA9J,CAAA,EAAGC,CAAC,CAAC,CAAA;EAE7B,OAAAW,GAAA;AACT;AAEgB,SAAAF,MAAA,CAAO6E,IAAYC,EAAoB,EAAA;EAC/C,MAAAxF,CAAA,GAAIsC,WAAWiD,EAAE,CAAA;EACjB,MAAAtF,CAAA,GAAIqC,WAAWkD,EAAE,CAAA;EACvB,MAAM5E,GAAM,GAAAK,QAAA,CAAS8I,QAAQ,CAAA/J,CAAA,EAAGC,CAAC,CAAC,CAAA;EAE3B,OAAAW,GAAA;AACT;ACXA,MAAM0E,KAAqC,GAAA;EACzCpC,SAAS8G,IAAK,CAAAnF,IAAA;EACdF,aAAaqF,IAAK,CAAAnF,IAAA;EAClBzB,SAAS4G,IAAK,CAAA7E,IAAA;EACd9B,UAAU2G,IAAK,CAAA/E,KAAA;EACf3B,SAAS0G,IAAK,CAAAhF,MAAA;EACdzB,UAAUyG,IAAK,CAAAlF;AACjB,CAAA;AAEA,MAAMmF,aAAA,GAAgB,CAAC,SAAA,EAAW,aAAa,CAAA;AAExC,MAAM1H,QAAQkH,gBAAiB,CAAA;EACpCzc,IAAM,EAAA,UAAkB;IAAA,IAAjB;MAAC8V,IAAA;MAAMhG;KAAU;IACtB,IAAIA,SAAS,SAAW,EAAA;MACtB,MAAMoN,SAAQF,IAAK,CAAAnF,IAAA;MACnB,MAAMsF,gBAAerH,IAAOoH,GAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,GAAMsJ,OAAM,GAAK,CAAA,CAAAtJ,GAAA;MAEjD,OAAA;QACL4E,EAAI,EAAA1C,IAAA,GAAOsB,OAAM,CAAAxD,GAAA,GAAMuD,OAAM,CAAAvD,GAAA;QAC7B2E,EAAI,EAAAzC,IAAA,GAAOqB,OAAM,CAAAvD,GAAA,GAAMwD,OAAM,CAAAxD,GAAA;QAC7B3B,MAAQiL,EAAAA,MAAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC,GAAA;QAChC6E,SAAW,EAAAuE,IAAA,CAAK7E,IAAK,CAAArC,IAAA,GAAO,MAAM,GAAK,CAAA,CAAAlC,GAAA;QACvC+E,MAAQ,EAAA;UACNC,OAAS,EAAAnD,IAAA,CAAKyH,MAAM,CAAA,GAAA,CAAA,CAAKtJ,KAAK,GAAG,CAAA;UACjCiF,KAAO,EAAA/C,IAAA,GAAOL,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,GAAG,CAAA,GAAI6B,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,GAAG,CAAA;UAClEkF,QAAU,EAAAhD,IAAA,GAAOL,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA,GAAI6B,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA;UACvEmF,OAAS,EAAAjD,IAAA,GAAOL,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA,GAAI6B,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI;QACxE,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEA,IAAIrN,SAAS,aAAe,EAAA;MAC1B,MAAMoN,SAAQ5E,KAAM,CAAApC,OAAA;MACpB,MAAMiH,aAAeD,GAAAA,MAAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC,GAAA;MAEtC,OAAA;QACL4E,EAAI0E,EAAAA,MAAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC,GAAA;QAC5B2E,EAAI2E,EAAAA,MAAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,EAAI,CAAA,CAAAlC,GAAA;QAC3B3B,MAAQiL,EAAAA,MAAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC,GAAA;QAChC6E,SAAA,EAAWuE,IAAK,CAAA7E,IAAA,CAAK,GAAK,CAAA,CAAAvE,GAAA;QAC1B+E,MAAQ,EAAA;UACNC,OAAS,EAAAnD,IAAA,CAAKyH,MAAM,CAAA,GAAA,CAAA,CAAKtJ,KAAK,GAAG,CAAA;UACjCiF,KAAO,EAAA/C,IAAA,GAAOL,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,GAAG,CAAA,GAAI6B,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,GAAG,CAAA;UAClEkF,QAAU,EAAAhD,IAAA,GAAOL,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA,GAAI6B,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA;UACvEmF,OAAS,EAAAjD,IAAA,GAAOL,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA,GAAI6B,IAAKyH,CAAAA,MAAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI;QACxE,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEM,MAAAD,KAAA,GAAQ5E,KAAM,CAAAxI,IAAA,CAAA,IAASwI,KAAM,CAAApC,OAAA;IACnC,MAAMiH,YAAe,GAAAD,KAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC,GAAA;IAEtC,OAAA;MACL4E,EAAI,EAAA0E,KAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC,GAAA;MAC5B2E,EAAI,EAAA2E,KAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,EAAI,CAAA,CAAAlC,GAAA;MAC3B3B,MAAQ,EAAAiL,KAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC,GAAA;MAChC6E,SAAA,EAAWyE,MAAM,GAAK,CAAA,CAAAtJ,GAAA;MACtB+E,MAAQ,EAAA;QACNC,OAAS,EAAAnD,IAAA,CAAKyH,KAAM,CAAA,GAAA,CAAA,CAAKtJ,KAAK,GAAG,CAAA;QACjCiF,KAAO,EAAA/C,IAAA,GAAOL,IAAK,CAAAyH,KAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,GAAG,CAAA,GAAI6B,IAAK,CAAAyH,KAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,GAAG,CAAA;QAClEkF,QAAU,EAAAhD,IAAA,GAAOL,IAAK,CAAAyH,KAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA,GAAI6B,IAAK,CAAAyH,KAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA;QACvEmF,OAAS,EAAAjD,IAAA,GAAOL,IAAK,CAAAyH,KAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI,CAAA,GAAI6B,IAAK,CAAAyH,KAAA,CAAM,GAAK,CAAA,CAAAtJ,GAAA,EAAK,IAAI;MACxE,CAAA;MACAoF,QAAU,EAAA;QACRC,IAAM,EAAAkE,YAAA;QACNjE,EAAA,EAAIzD,IAAK,CAAA0H,YAAA,EAAc,GAAG;MAC5B;IAAA,CACF;EACF,CAAA;EAEApH,KAAA,EAAO,UAAqC;IAAA,IAApC;MAAC/V,IAAA;MAAM8V;MAAMhG,IAAM;MAAAgH,KAAA;MAAOqC;KAAU;IACpC,MAAAiE,GAAA,GAAMtH,OAAOpC,MAAS,GAAAR,QAAA;IACtB,MAAAmK,IAAA,GAAOvH,OAAO5C,QAAW,GAAAQ,MAAA;IACzB,MAAA4J,YAAA,GAAehF,KAAM,CAAAxI,IAAA,CAAA,IAASwI,KAAM,CAAApC,OAAA;IAC1C,MAAMqH,YAAYN,aAAc,CAAAlZ,QAAA,CAAS+L,IAAI,CAAK,IAAAmN,aAAA,CAAclZ,SAASoV,IAAI,CAAA;IAE7E,IAAI+D,KAAQ,GAAA5E,KAAA,CAAMa,IAAS,KAAA,SAAA,GAAYrJ,OAAOqJ,IAAS,CAAA,IAAAmE,YAAA;IAEvD,IAAIxG,UAAU,UAAY,EAAA;MAChBoG,KAAA,GAAAI,YAAA;MAEF/E,MAAAA,GAAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MACnD,MAAMuJ,gBAAeE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAElD,OAAA;QACL2E,EAAAA,EAAAA,GAAAA;QACAa,KAAKiE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,EAAA,GAAK,KAAKlC,GAAG,CAAA;QACxC3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAChD4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIzC,OAAOqB,OAAM,CAAAvD,GAAA,GAAMwD,QAAMxD,GAAG,CAAA;QAC7CoC,KAAO,EAAA;UACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG;QAC7C,CAAA;QACAyF,MAAQ,EAAA;UACNb,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG;QAC7C,CAAA;QACA0F,IAAM,EAAA;UACJd,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG;QAC7C,CAAA;QACA2F,IAAM,EAAA;UACJhB,EAAAA,EAAAA,GAAAA;UACAC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG;QAC7C,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEA,IAAIrG,UAAU,SAAW,EAAA;MACjByB,MAAAA,GAAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MACnD,MAAMuJ,gBAAeE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAElD,OAAA;QACL2E,EAAAA,EAAAA,GAAAA;QACAa,KAAKiE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,EAAA,GAAK,KAAKlC,GAAG,CAAA;QACxC3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAChD4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIzC,OAAOqB,OAAM,CAAAvD,GAAA,GAAMwD,QAAMxD,GAAG,CAAA;QAC7CoC,KAAO,EAAA;UACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAyF,MAAQ,EAAA;UACNb,EAAA,EAAI6E,KAAK9E,GAAI,EAAAyE,IAAA,CAAKlF,IAAIhC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC7C,CAAA;QACA0F,IAAM,EAAA;UACJd,EAAA,EAAI6E,KAAK9E,GAAI,EAAAyE,IAAA,CAAK7E,KAAKrC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACA2F,IAAM,EAAA;UACJhB,IAAI6E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;UACtC4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEA,IAAIrG,UAAU,SAAW,EAAA;MACjByB,MAAAA,GAAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MACnD,MAAMuJ,gBAAeE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAElD,OAAA;QACL2E,EAAA,EAAI6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC5CwF,KAAKiE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,EAAA,GAAK,KAAKlC,GAAG,CAAA;QACxC3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAChD4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIzC,OAAOqB,OAAM,CAAAvD,GAAA,GAAMwD,QAAMxD,GAAG,CAAA;QAC7CoC,KAAO,EAAA;UACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAyF,MAAQ,EAAA;UACNb,EAAA,EAAI6E,KAAK9E,GAAI,EAAAyE,IAAA,CAAKlF,IAAIhC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC7C,CAAA;QACA0F,IAAM,EAAA;UACJd,EAAA,EAAI6E,KAAK9E,GAAI,EAAAyE,IAAA,CAAK7E,KAAKrC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACA2F,IAAM,EAAA;UACJhB,IAAI6E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;UACtC4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEA,IAAIrG,UAAU,UAAY,EAAA;MACxB,IAAIyG,SAAW,EAAA;QACbL,KAAA,GAAQ5E,KAAM,CAAAlC,OAAA;MAChB;MAEMmC,MAAAA,GAAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MACnD,MAAMuJ,gBAAeE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAElD,OAAA;QACL2E,EAAAA,EAAAA,GAAAA;QACAa,KAAKiE,IAAK9E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,EAAA,GAAK,KAAKlC,GAAG,CAAA;QACxC3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAChD4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIzC,OAAOqB,OAAM,CAAAvD,GAAA,GAAMwD,QAAMxD,GAAG,CAAA;QAC7CoC,KAAO,EAAA;UACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAyF,MAAQ,EAAA;UACNb,EAAA,EAAI6E,KAAK9E,GAAI,EAAAyE,IAAA,CAAKlF,IAAIhC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC7C,CAAA;QACA0F,IAAM,EAAA;UACJd,EAAA,EAAI6E,KAAK9E,GAAI,EAAAyE,IAAA,CAAK7E,KAAKrC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACA2F,IAAM,EAAA;UACJhB,IAAI6E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;UACtC4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAGM,MAAA5E,EAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;IACnD,MAAMuJ,eAAeE,IAAK,CAAA9E,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;IAElD,OAAA;MACL2E,EAAA;MACAa,KAAKiE,IAAK,CAAA9E,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,EAAA,GAAK,KAAKlC,GAAG,CAAA;MACxC3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAChD4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIzC,OAAOqB,OAAM,CAAAvD,GAAA,GAAMwD,QAAMxD,GAAG,CAAA;MAC7CoC,KAAO,EAAA;QACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAC9C,CAAA;MACAyF,MAAQ,EAAA;QACNb,EAAA,EAAI6E,KAAK9E,EAAI,EAAAyE,IAAA,CAAKlF,IAAIhC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAC7C,CAAA;MACA0F,IAAM,EAAA;QACJd,EAAA,EAAI6E,KAAK9E,EAAI,EAAAyE,IAAA,CAAK7E,KAAKrC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAC9C,CAAA;MACA2F,IAAM,EAAA;QACJhB,IAAI6E,GAAI,CAAA7E,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QACtC4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAC9C,CAAA;MACAoF,QAAU,EAAA;QACRC,IAAM,EAAAkE,YAAA;QACNjE,EAAA,EAAIzD,IAAK,CAAA0H,YAAA,EAAc,GAAG;MAC5B;IAAA,CACF;EACF,CAAA;EAEAnH,KAAA,EAAO,UAAqC;IAAA,IAApC;MAAChW,IAAA;MAAM8V;MAAMhG,IAAM;MAAAgH,KAAA;MAAOqC;KAAU;IACpC,MAAAiE,GAAA,GAAMtH,OAAOpC,MAAS,GAAAR,QAAA;IACtB,MAAAoK,YAAA,GAAehF,KAAM,CAAAxI,IAAA,CAAA,IAASwI,KAAM,CAAApC,OAAA;IAC1C,MAAMqH,YAAYN,aAAc,CAAAlZ,QAAA,CAAS+L,IAAI,CAAK,IAAAmN,aAAA,CAAclZ,SAASoV,IAAI,CAAA;IAE7E,IAAI+D,KAAQ,GAAA5E,KAAA,CAAMa,IAAS,KAAA,SAAA,GAAYrJ,OAAOqJ,IAAS,CAAA,IAAAmE,YAAA;IAEvD,IAAIxG,UAAU,UAAY,EAAA;MAChBoG,KAAA,GAAAI,YAAA;MAER,MAAM/E,MAAKvY,IAAK,CAAAuY,EAAA;MAChB,MAAM4E,gBAAeC,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAEjD,OAAA;QACL2E,EAAAA,EAAAA,GAAAA;QACAa,KAAKgE,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QACvC3B,QAAQmL,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QAC1C4E,IAAI4E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QACvCoC,KAAO,EAAA;UACLwC,IAAI4E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QACzC,CAAA;QACAyF,MAAQ,EAAA;UACNb,IAAI4E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QACzC,CAAA;QACA0F,IAAM,EAAA;UACJd,IAAI4E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QACzC,CAAA;QACA2F,IAAM,EAAA;UACJhB,EAAAA,EAAAA,GAAAA;UACAC,IAAI4E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QACzC,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAA,EAAMxD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG,CAAA;UAC5BjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,IAAI;QAC7B;MAAA,CACF;IACF;IAEA,IAAIrG,UAAU,SAAW,EAAA;MAKjByB,MAAAA,GAAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;MAClD,MAAMuJ,gBAAeC,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAEjD,OAAA;QACL2E,EAAAA,EAAAA,GAAAA;QACAa,KAAKgE,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QACvC3B,QAAQmL,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC3C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC5CoC,KAAO,EAAA;UACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAyF,MAAQ,EAAA;UACNb,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKlF,GAAI,CAAAhC,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;QACjD,CAAA;QACA0F,IAAM,EAAA;UACJd,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAK7E,IAAK,CAAArC,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;QAClD,CAAA;QACA2F,IAAM,EAAA;UACJhB,IAAI6E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;UACtC4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEA,IAAIrG,UAAU,SAAW,EAAA;MACvB,IAAIyG,SAAW,EAAA;QACbL,KAAA,GAAQ5E,KAAM,CAAAlC,OAAA;MAChB;MAEMmC,MAAAA,GAAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MACnD,MAAMuJ,gBAAeC,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAEjD,OAAA;QACL2E,EAAAA,EAAAA,GAAAA;QACAa,KAAKgE,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QACvC3B,QAAQmL,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC3C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC5CoC,KAAO,EAAA;UACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAyF,MAAQ,EAAA;UACNb,EAAA,EAAI4E,IAAI7E,GAAI,EAAAyE,IAAA,CAAKlF,IAAIhC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC5C,CAAA;QACA0F,IAAM,EAAA;UACJd,EAAA,EAAI4E,IAAI7E,GAAI,EAAAyE,IAAA,CAAK7E,KAAKrC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC7C,CAAA;QACA2F,IAAM,EAAA;UACJhB,IAAI6E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;UACtC4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEA,IAAIrG,UAAU,UAAY,EAAA;MACxB,IAAIyG,SAAW,EAAA;QACbL,KAAA,GAAQ5E,KAAM,CAAAlC,OAAA;MAChB;MAEMmC,MAAAA,GAAAA,GAAK6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MACnD,MAAMuJ,gBAAeC,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAEjD,OAAA;QACL2E,EAAAA,EAAAA,GAAAA;QACAa,KAAKgE,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QACvC3B,QAAQmL,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC3C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC5CoC,KAAO,EAAA;UACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAyF,MAAQ,EAAA;UACNb,EAAA,EAAI4E,IAAI7E,GAAI,EAAAyE,IAAA,CAAKlF,IAAIhC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC5C,CAAA;QACA0F,IAAM,EAAA;UACJd,EAAA,EAAI4E,IAAI7E,GAAI,EAAAyE,IAAA,CAAK7E,KAAKrC,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC7C,CAAA;QACA2F,IAAM,EAAA;UACJhB,IAAI6E,GAAI7E,CAAAA,GAAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;UACtC4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;QAC9C,CAAA;QACAoF,QAAU,EAAA;UACRC,IAAMkE,EAAAA,aAAAA;UACNjE,EAAA,EAAIzD,IAAK0H,CAAAA,aAAAA,EAAc,GAAG;QAC5B;MAAA,CACF;IACF;IAEA,MAAM5E,KAAKvY,IAAK,CAAAuY,EAAA;IAChB,MAAM4E,eAAeC,GAAI,CAAA7E,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;IAEjD,OAAA;MACL2E,EAAA;MACAa,KAAKgE,GAAI,CAAA7E,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;MACvC3B,QAAQmL,GAAI,CAAA7E,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAC3C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;MAC5CoC,KAAO,EAAA;QACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAC9C,CAAA;MACAyF,MAAQ,EAAA;QACNb,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKlF,GAAI,CAAAhC,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;MACjD,CAAA;MACA0F,IAAM,EAAA;QACJd,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAK7E,IAAK,CAAArC,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;MAClD,CAAA;MACA2F,IAAM,EAAA;QACJhB,EAAA,EAAI6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QAC3C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAC9C,CAAA;MACAoF,QAAU,EAAA;QACRC,IAAM,EAAAkE,YAAA;QACNjE,EAAA,EAAIzD,IAAK,CAAA0H,YAAA,EAAc,GAAG;MAC5B;IAAA,CACF;EACF,CAAA;EAEAhH,QAAQ,UAAgC;IAAA,IAA/B;MAACnW;MAAMiW,IAAM;MAAAD,KAAA;MAAOD;KAAW;IACtC,IAAIE,SAAS,OAAS,EAAA;MACb,OAAA;QACLW,OAAS,kCACJZ,KAAM,CAAAY,OAAA;UACT3E,MAAA,EAAQ+D,MAAMY,OAAQ,CAAA2B;QAAA,EACxB;QACAvB,OAAS,kCACJhB,KAAM,CAAAgB,OAAA;UACT/E,MAAA,EAAQ+D,MAAMgB,OAAQ,CAAAuB;QAAA,EACxB;QACAtB,OAAS,kCACJjB,KAAM,CAAAiB,OAAA;UACThF,MAAA,EAAQ+D,MAAMiB,OAAQ,CAAAsB;QAAA,EACxB;QACArB,QAAU,kCACLlB,KAAM,CAAAkB,QAAA;UACTjF,MAAA,EAAQ+D,MAAMkB,QAAS,CAAAqB;QAAA,EACzB;QACAxB,QAAU,kCACLf,KAAM,CAAAe,QAAA;UACT9E,MAAA,EAAQ+D,MAAMe,QAAS,CAAAwB;QAAA;MACzB,CACF;IACF;IAEA,IAAItC,SAAS,OAAS,EAAA;MACb,uCACFF,KAAA;QACHa,OAAS,kCACJZ,KAAM,CAAAY,OAAA;UACT3E,QAAQjS,IAAK,CAAAiS;QAAA,EACf;QACA8E,UAAUf,KAAM,CAAAe;MAAA;IAEpB;IAEO,OAAAhB,KAAA;EACT,CAAA;EAEAc,IAAA,EAAM,UAA6C;IAAA,IAA5C;MAAC7W,IAAA;MAAM8V;MAAME,KAAO;MAAAlG,IAAA;MAAMiG,KAAO;MAAAe;KAAW;IACjD,IAAIA,UAAU,SAAW,EAAA;MACvB,OAAOd,MAAMlG,IAAM,CAAA,CAAAkH,OAAA;IACrB;IAEA,IAAIF,UAAU,UAAY,EAAA;MACxB,OAAOd,MAAMlG,IAAM,CAAA,CAAAiH,QAAA;IACrB;IAEM,MAAAwG,SAAA,GAAYN,aAAc,CAAAlZ,QAAA,CAAS+L,IAAI,CAAA;IACvC,MAAAoN,KAAA,GAAQ5E,KAAM,CAAAxI,IAAA,CAAA,IAASwI,KAAM,CAAApC,OAAA;IAC7B,MAAAkH,GAAA,GAAMtH,OAAOpC,MAAS,GAAAR,QAAA;IAE5B,IAAI4D,UAAU,SAAW,EAAA;MACvB,IAAIyG,SAAW,EAAA;QACb,OAAOvH,MAAMI,OAAQ,CAAAa,OAAA;MACvB;MAEA,OAAOjB,MAAMlG,IAAM,CAAA,CAAAmH,OAAA;IACrB;IAEA,IAAIH,UAAU,UAAY,EAAA;MACxB,IAAIyG,SAAW,EAAA;QACb,OAAOxH,MAAMK,OAAQ,CAAAQ,OAAA;MACvB;MAEA,OAAOb,MAAMjG,IAAM,CAAA,CAAA8G,OAAA;IACrB;IAEA,MAAM2B,KAAKvY,IAAK,CAAAuY,EAAA;IACV,MAAA4E,YAAA,GAAeC,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;IAEtD,OAAA;MACL2E,EAAA;MACAa,KAAKgE,GAAI,CAAA7E,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;MACvC4E,IAAIxY,IAAK,CAAAwY,EAAA;MACTvG,QAAQjS,IAAK,CAAAiS,MAAA;MACb+D,KAAO,EAAA;QACLwC,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAC9C,CAAA;MACAyF,MAAQ,EAAA;QACNb,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKlF,GAAI,CAAAhC,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;MACjD,CAAA;MACA0F,IAAM,EAAA;QACJd,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAK7E,IAAK,CAAArC,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;MAClD,CAAA;MACA2F,IAAM,EAAA;QACJhB,EAAA,EAAI6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QAC3C4E,EAAI,EAAA0E,KAAA,CAAMpH,IAAO,GAAA,GAAA,GAAM,GAAK,CAAA,CAAAlC;MAC9B,CAAA;MACAoF,QAAU,EAAA;QACRC,IAAM,EAAAkE,YAAA;QACNjE,EAAA,EAAIzD,IAAK,CAAA0H,YAAA,EAAc,GAAG;MAC5B;IAAA,CACF;EACF,CAAA;EAEA3D,OAAO,UAA+B;IAAA,IAA9B;MAACxZ;MAAM8V,IAAM;MAAAG,IAAA;MAAMa;KAAW;IAC9B,MAAAsG,GAAA,GAAMtH,OAAOpC,MAAS,GAAAR,QAAA;IAE5B,IAAI+C,SAAS,SAAW,EAAA;MACtB,MAAMiH,QAAQ5E,KAAM,CAAA/B,QAAA;MAEb,OAAA;QACLgC,EAAA,EAAI6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,IAAIlC,GAAG,CAAA;QAC3C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAC5C3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;QAChD6F,WAAA,EAAa2D,IAAIpd,IAAK,CAAAuY,EAAA,EAAI2E,MAAMpH,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG;MAAA,CACvD;IACF;IAEA,IAAIkD,UAAU,SAAW,EAAA;MAChB,OAAA;QACLyB,IAAIvY,IAAK,CAAAuY,EAAA;QACTC,IAAIxY,IAAK,CAAAwY,EAAA;QACTvG,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG,CAAA;QACpD6F,WAAA,EAAa2D,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;MAAA,CAC3D;IACF;IAEA,IAAIkD,UAAU,UAAY,EAAA;MACjB,OAAA;QACLyB,EAAA,EAAI6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,EAAA,CAAA,CAAIlC,GAAG,CAAA;QAC/C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG,CAAA;QAChD3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG,CAAA;QACpD6F,WAAA,EAAa2D,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;MAAA,CAC3D;IACF;IAEA,IAAIkD,UAAU,UAAY,EAAA;MACjB,OAAA;QACLyB,EAAA,EAAI6E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,EAAA,CAAA,CAAIlC,GAAG,CAAA;QAC/C4E,EAAA,EAAI4E,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG,CAAA;QAChD3B,MAAA,EAAQmL,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG,CAAA;QACpD6F,WAAA,EAAa2D,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;MAAA,CAC3D;IACF;IAEO,OAAA;MACL2E,IAAIvY,IAAK,CAAAuY,EAAA;MACTC,IAAIxY,IAAK,CAAAwY,EAAA;MACTvG,QAAQjS,IAAK,CAAAiS,MAAA;MACbwH,WAAA,EAAa2D,IAAIpd,IAAK,CAAAuY,EAAA,EAAIyE,KAAKnF,IAAK,CAAA/B,IAAA,GAAO,GAAM,GAAA,GAAA,CAAA,CAAKlC,GAAG;IAAA,CAC3D;EACF,CAAA;EAEA8F,UAAA,EAAY,UAAuC;IAAA,IAAtC;MAAC1Z,IAAA;MAAMgW;MAAOmD,IAAM;MAAApD,KAAA;MAAOe;KAAW;IACjD,IAAIA,UAAU,SAAW,EAAA;MAChB,uCACFd,MAAMmD,IAAM,CAAA,CAAAvC,OAAA;QACf2B,IAAIvY,IAAK,CAAAuY;MAAA;IAEb;IAEA,IAAIzB,UAAU,SAAW,EAAA;MACvB,IAAIqC,SAAS,SAAW,EAAA;QACtB,OAAOnD,MAAMI,OAAQ,CAAAa,OAAA;MACvB;MAEA,OAAOjB,MAAMmD,IAAM,CAAA,CAAAlC,OAAA;IACrB;IAEA,IAAIH,UAAU,UAAY,EAAA;MACxB,IAAIqC,SAAS,SAAW,EAAA;QACtB,OAAOpD,MAAMK,OAAQ,CAAAQ,OAAA;MACvB;MAEA,OAAOb,MAAMoD,IAAM,CAAA,CAAAvC,OAAA;IACrB;IAEA,IAAIE,UAAU,UAAY,EAAA;MACjB,uCACFd,MAAMmD,IAAM,CAAA,CAAApC,QAAA;QACfwB,IAAIvY,IAAK,CAAAuY;MAAA;IAEb;IAEA,OAAOvC,MAAMmD,IAAM,CAAA,CAAArC,KAAA,CAAA;EACrB,CAAA;EAEA6C,MAAM,UAAuB;IAAA,IAAtB;MAAC3Z,IAAM;MAAA8V,IAAA;MAAMlY;KAAS;IACrB,MAAAwf,GAAA,GAAMtH,OAAOpC,MAAS,GAAAR,QAAA;IAErB,OAAAkK,GAAA,CAAIpd,KAAKuY,EAAI,EAAAyE,IAAA,CAAKpf,KAAKkY,IAAO,GAAA,GAAA,GAAM,KAAKlC,GAAG,CAAA;EACrD,CAAA;EAEAgG,MAAQ,EAAA,UAAkB;IAAA,IAAjB;MAAC5Z,IAAA;MAAM8V;KAAU;IAClB,MAAAsH,GAAA,GAAMtH,OAAOpC,MAAS,GAAAR,QAAA;IACtB,MAAAsK,SAAA,GAAY1H,OAAO,GAAM,GAAA,GAAA;IACzB,MAAA2H,cAAA,GAAiB3H,OAAO,GAAM,GAAA,GAAA;IAE7B,OAAA;MACL+D,QAAQuD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MAC/CkG,UAAUsD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA/E,KAAA,CAAMuF,WAAW5J,GAAG,CAAA;MAChDmG,WAAWqD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MAClDoG,WAAWoD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MAClDqG,SAASmD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MAChDsG,SAASkD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MAChDuG,OAAOiD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MAC9CwG,MAAMgD,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MAC7CyG,OAAO+C,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAjF,MAAA,CAAOyF,WAAW5J,GAAG,CAAA;MAC9C0G,WAAW8C,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA9E,IAAA,CAAKsF,WAAW5J,GAAG,CAAA;MAChD2G,SAAS6C,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAnF,IAAA,CAAK4F,gBAAgB7J,GAAG,CAAA;MACnD4G,UAAU4C,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MACjD6G,SAAS2C,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAlF,GAAA,CAAI0F,WAAW5J,GAAG,CAAA;MAC7C8G,SAAS0C,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAnF,IAAA,CAAK4F,gBAAgB7J,GAAG,CAAA;MACnD+G,QAAQyC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAlF,GAAA,CAAI0F,WAAW5J,GAAG,CAAA;MAC5CgH,UAAUwC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA/E,KAAA,CAAMuF,WAAW5J,GAAG,CAAA;MAChDiH,SAASuC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA7E,IAAA,CAAKqF,WAAW5J,GAAG,CAAA;MAC9CkH,IAAIsC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MAC3CmH,WAAWqC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MAClDoH,UAAUoC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MACjDqH,SAASmC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA3E,OAAA,CAAQmF,WAAW5J,GAAG,CAAA;MACjDsH,QAAQkC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MAC/CuH,UAAUiC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA3E,OAAA,CAAQmF,WAAW5J,GAAG,CAAA;MAClDwH,QAAQgC,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAnF,IAAA,CAAK4F,gBAAgB7J,GAAG,CAAA;MAClDyH,UAAU+B,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA7E,IAAA,CAAKqF,WAAW5J,GAAG,CAAA;MAC/C0H,aAAa8B,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MACpD2H,eAAe6B,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MACtD4H,aAAa4B,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAnF,IAAA,CAAK2F,WAAW5J,GAAG,CAAA;MAClD6H,OAAO2B,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA7E,IAAA,CAAKqF,WAAW5J,GAAG,CAAA;MAC5C8H,UAAU0B,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAlF,GAAA,CAAI0F,WAAW5J,GAAG,CAAA;MAC9C+H,QAAQyB,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAhF,MAAA,CAAOwF,WAAW5J,GAAG,CAAA;MAC/CgI,QAAQwB,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAA5E,MAAA,CAAOoF,WAAW5J,GAAG,CAAA;MAC/CiI,KAAKuB,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAlF,GAAA,CAAI0F,WAAW5J,GAAG,CAAA;MACzCkI,MAAMsB,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAjF,MAAA,CAAOyF,WAAW5J,GAAG,CAAA;MAC7CmI,KAAKqB,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAlF,GAAA,CAAI0F,WAAW5J,GAAG,CAAA;MACzCoI,UAAUoB,GAAI,CAAApd,IAAA,CAAKuY,IAAIyE,IAAK,CAAAlF,GAAA,CAAI0F,WAAW5J,GAAG;IAAA,CAChD;EACF;AACF,CAAC,CAAA;AC3nBM,MAAMnU,KAAoB,GAAA;EAC/B8Z,IAAM,EAAA;IACJ7Z,MAAQ,EAAA,oFAAA;IACRE,OAAS,EAAA;MACPE,OAAS,EAAA,GAAA;MACT4d,MAAQ,EAAA,GAAA;MACRC,QAAU,EAAA,GAAA;MACVC,IAAM,EAAA;IACR,CAAA;IACAje,KAAO,EAAA,CACL;MACEoB,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA;EAEJ,CAAA;EACA2c,OAAS,EAAA;IACPne,MACE,EAAA,qIAAA;IACFE,OAAS,EAAA;MACPE,OAAS,EAAA,GAAA;MACT4d,MAAQ,EAAA,GAAA;MACRC,QAAU,EAAA,GAAA;MACVC,IAAM,EAAA;IACR,CAAA;IACAje,KAAO,EAAA,CACL;MACEoB,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA;EAEJ,CAAA;EACA4c,KAAO,EAAA;IACLpe,MACE,EAAA,mHAAA;IACFE,OAAS,EAAA;MACPE,OAAS,EAAA,GAAA;MACT4d,MAAQ,EAAA,GAAA;MACRC,QAAU,EAAA,GAAA;MACVC,IAAM,EAAA;IACR,CAAA;IACAje,KAAO,EAAA,CACL;MACEoB,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,GAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,KAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,KAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,IAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA;EAEJ,CAAA;EACA6c,IAAM,EAAA;IACJre,MACE,EAAA,qIAAA;IACFE,OAAS,EAAA;MACPE,OAAS,EAAA,GAAA;MACT4d,MAAQ,EAAA,GAAA;MACRC,QAAU,EAAA,GAAA;MACVC,IAAM,EAAA;IACR,CAAA;IACAje,KAAO,EAAA,CACL;MACEoB,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA,EACA;MACEH,cAAgB,EAAA,CAAA;MAChBC,eAAiB,EAAA,CAAA;MACjBH,QAAU,EAAA,EAAA;MACVI,QAAU,EAAA,EAAA;MACVE,UAAY,EAAA,EAAA;MACZD,aAAe,EAAA;IACjB,CAAA;EAEJ;AACF,CAAA;ACnNO,MAAM8c,WAAyB,GAAA;EACpCC,MAAQ,EAAA;IACNte,KAAO,EAAA,CACL;MAACue,QAAA,EAAU,CAAI,CAAA;MAAApd,IAAA,EAAM;IAAE,CAAA,EACvB;MAACod,QAAA,EAAU,CAAI,CAAA;MAAApd,IAAA,EAAM;IAAE,CAAA,EACvB;MAACod,QAAA,EAAU,CAAI,CAAA;MAAApd,IAAA,EAAM;IAAE,CAAA;EAE3B,CAAA;EACAqV,MAAQ,EAAA;IACNgI,UAAY,EAAA;EACd,CAAA;EACA5I,KAAA;EACA6I,WAAW,CAAC,GAAA,EAAK,KAAK,GAAK,EAAA,IAAA,EAAM,MAAM,IAAI,CAAA;EAC3C3F,SAAW,EAAA;IACT4F,MAAQ,EAAA,CAAA;IACRnY,KAAO,EAAA;EACT,CAAA;EACAzG,KAAA;EACAzB,OAAO,CAAC,GAAA,EAAK,KAAK,GAAK,EAAA,IAAA,EAAM,MAAM,IAAI,CAAA;EACvCsgB,MAAA,EAAQ,CAAC,CAAG,EAAA,CAAA,EAAG,GAAG,CAAG,EAAA,CAAA,EAAG,IAAI,EAAE,CAAA;EAC9BC,OAAS,EAAA,CACP,IAAA,EACA;IAAC1F,OAAO,CAAC,CAAA,EAAG,GAAG,CAAG,EAAA,CAAC;IAAGC,QAAU,EAAA,CAAC,GAAG,CAAG,EAAA,CAAA,EAAG,CAAC,CAAG;IAAAC,OAAA,EAAS,CAAC,CAAG,EAAA,CAAA,EAAG,CAAG,EAAA,CAAC;EAAC,CAAA,EACnE;IAACF,OAAO,CAAC,CAAA,EAAG,GAAG,CAAG,EAAA,CAAA,CAAE;IAAGC,QAAU,EAAA,CAAC,GAAG,CAAG,EAAA,EAAA,EAAI,CAAC,CAAG;IAAAC,OAAA,EAAS,CAAC,CAAG,EAAA,CAAA,EAAG,EAAI,EAAA,CAAC;EAAC,CAAA,EACtE;IAACF,OAAO,CAAC,CAAA,EAAG,GAAG,CAAG,EAAA,CAAA,CAAE;IAAGC,QAAU,EAAA,CAAC,GAAG,EAAI,EAAA,EAAA,EAAI,CAAC,CAAG;IAAAC,OAAA,EAAS,CAAC,CAAG,EAAA,CAAA,EAAG,EAAI,EAAA,CAAC;EAAC,CAAA,EACvE;IAACF,OAAO,CAAC,CAAA,EAAG,GAAG,EAAI,EAAA,CAAA,CAAE;IAAGC,QAAU,EAAA,CAAC,GAAG,EAAI,EAAA,EAAA,EAAI,CAAC,CAAG;IAAAC,OAAA,EAAS,CAAC,CAAG,EAAA,CAAA,EAAG,EAAI,EAAA,CAAC;EAAC,CAAA,EACxE;IAACF,OAAO,CAAC,CAAA,EAAG,IAAI,EAAI,EAAA,CAAA,CAAE;IAAGC,QAAU,EAAA,CAAC,GAAG,EAAI,EAAA,EAAA,EAAI,CAAC,CAAG;IAAAC,OAAA,EAAS,CAAC,CAAG,EAAA,CAAA,EAAG,EAAI,EAAA,CAAC;EAAC,CAAA,CAC3E;EACA3Z,KAAA,EAAO,CAAC,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,EAAI,EAAA,EAAA,EAAI,EAAI,EAAA,EAAA,EAAI,EAAI,EAAA,GAAA,EAAK,GAAG,CAAA;EAC7Coa,KAAO,EAAA;IACLgF,QAAU,EAAA;MACR1d,IAAM,EAAA;IACR,CAAA;IACA2d,KAAO,EAAA;MACL3d,IAAM,EAAA,EAAA;MACN4d,QAAU,EAAA;IACZ,CAAA;IACAC,MAAQ,EAAA;MACNzY,KAAO,EAAA,EAAA;MACP3F,MAAQ,EAAA,EAAA;MACRJ,OAAS,EAAA,CAAA;MACTye,oBAAsB,EAAA,GAAA;MACtBC,wBAA0B,EAAA;IAC5B,CAAA;IACA5M,MAAQ,EAAA;MACN/L,KAAO,EAAA;IACT;EACF;AAaF,CAAA;ACjEO,MAAM4Y,mBAAkC,GAAA;EAC7CC,MAAA,EAAQ;IAACC,OAAA,EAAS;EAAG,CAAA;EACrBC,OAAA,EAAS;IAACD,OAAA,EAAS;EAAG,CAAA;EACtBE,OAAA,EAAS;IAACF,OAAA,EAAS;EAAG;AACxB,CAAA;ACGA,SAASG,cAAiB,GAAA;EACxB,IAAI,OAAOC,UAAe,KAAA,WAAA,EAAoB,OAAAA,UAAA;EAC9C,IAAI,OAAO/a,MAAW,KAAA,WAAA,EAAoB,OAAAA,MAAA;EAC1C,IAAI,OAAOgb,IAAS,KAAA,WAAA,EAAoB,OAAAA,IAAA;EACxC,IAAI,OAAO7X,MAAW,KAAA,WAAA,EAAoB,OAAAA,MAAA;EAEpC,MAAA,IAAIxI,MAAM,2CAA2C,CAAA;AAC7D;AAEO,MAAMsgB,cAAcH,cAAe,EAAA;ACd1C,MAAMvhB,KAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDF,WAAA,CAAY1hB,KAAO,CAAA,GAAA0hB,WAAA,CAAY1hB,KAAQ,CAAA,IAAA6hB,aAAA,CAAwC,IAAI,CAAA;AAK5E,MAAMC,eAAwDJ,WAAY,CAAA1hB,KAAA,CAAA;ACS1E,SAAS+hB,cAAc7gB,KAA+C,EAAA;EACrE,MAAA8gB,WAAA,GAAcC,WAAWH,YAAY,CAAA;EACrC,MAAA;IACJI,QAAA;IACAC,MAAA,GAAA,CAASH,2CAAaG,MAAU,KAAA,OAAA;IAChClhB,KAAA,EAAOmhB,SAAY,GAAA,CAAAJ,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAa/gB,KAAS,KAAA,IAAA;IACzCsa,IAAA,GAAA,CAAOyG,2CAAazG,IAAQ,KAAA;EAC1B,CAAA,GAAAra,KAAA;EAEE,MAAAD,KAAA,GAAsB4D,QAAQ,MAAM;IACxC,IAAI,CAACud,SAAA,EAAkB,OAAA,IAAA;IAEvB,MAAM;QAACzK,KAAO,EAAA0K,SAAA;QAAWC,KAAO,EAAAC;MAA2B,CAAA,GAAAH,SAAA;MAAbI,qCAAaJ,SAAA;IACrD,MAAAK,WAAA,GAAcJ,SAAU,CAAAF,MAAA,CAAA,IAAWE,SAAU,CAAAzI,KAAA;IAC7C,MAAAjC,KAAA,GAAQ8K,WAAY,CAAAlH,IAAA,CAAA,IAASkH,WAAY,CAAAnK,OAAA;IAC/C,MAAMgK,QAAQC,SAAa,IAAArB,mBAAA;IAE3B,OAAO;MAAC5f,MAAQ,kCAAIkhB,SAAW;QAAA7K,KAAA;QAAO2K;;KAAM;EAC3C,CAAA,EAAA,CAACH,MAAQ,EAAAC,SAAA,EAAW7G,IAAI,CAAC,CAAA;EAE5B,MAAM1b,KAAkC,GAAAgF,OAAA,CACtC,MACEud,SAAa,IAAA;IACXM,OAAS,EAAA,CAAA;IACTzhB,KAAO,EAAAmhB,SAAA;IACPD,MAAA;IACA5G;EACF,CAAA,EACF,CAAC6G,SAAW,EAAAD,MAAA,EAAQ5G,IAAI,CAAA,CAC1B;EAEA,IAAI,CAACta,KAAO,EAAA;IACV,OAAQ,eAAA0hB,GAAA,CAAA,KAAA,EAAA;MAAIT,QAAA,EAAA;IAAA,CAA2C,CAAA;EACzD;EAGE,sBAAAS,GAAA,CAACb,aAAac,QAAb,EAAA;IAAsB/iB,KAAA;IACrBqiB,QAAC,EAAA,eAAAS,GAAA,CAAAE,eAAA,EAAA;MAAoB5hB,KAAA;MAAeihB;IAAA,CAAS;EAAA,CAC/C,CAAA;AAEJ;AC5DO,SAASY,SAASjjB,KAAkD,EAAA;EACzE,OAAOwF,OAAQ,CAAAxF,KAAA,IAAS,OAAOA,KAAA,KAAU,QAAQ,CAAA;AACnD;ACMO,SAASkjB,YAAkC,GAAA;EAC1C,MAAAljB,KAAA,GAAiBoiB,WAAWH,YAAY,CAAA;EAE9C,IAAI,CAACjiB,KAAO,EAAA;IACJ,MAAA,IAAIuB,MAAM,uCAAuC,CAAA;EACzD;EAKA,IAAI,CAAC0hB,QAAS,CAAAjjB,KAAK,CAAK,IAAAA,KAAA,CAAM6iB,YAAY,CAAK,EAAA;IACvC,MAAA,IAAIthB,MAAM,qDAAqD,CAAA;EACvE;EAEO,OAAAvB,KAAA;AACT;ACPO,SAASmjB,mBAAmB9hB,KAAoD,EAAA;EACrF,MAAM;IAACghB,QAAA;IAAUC,MAAQ;IAAA5G;EAAA,CAAQ,GAAAra,KAAA;EACjC,MAAM+hB,OAAOF,YAAa,EAAA;EAE1B,OACG,eAAAJ,GAAA,CAAAZ,aAAA,EAAA;IAAcI,MAAA,EAAQA,UAAUc,IAAK,CAAAd,MAAA;IAAQlhB,OAAOgiB,IAAK,CAAAhiB,KAAA;IAAOsa,IAAA;IAC9D2G;EAAA,CACH,CAAA;AAEJ;AClBO,SAASgB,QAAkB,GAAA;EAChC,OAAOC,UAAe,EAAA;AACxB;ACDA,MAAMC,mBAAA,GAAA,mBAA0BtZ,OAAiC,EAAA;AAEjE,SAASuZ,cAAA,CAAejjB,OAAiBkT,KAAe,EAAA;EACtD,IAAIA,UAAU,CAAG,EAAA;IACR,wCAA0BlT,MAAMkT,KAAS,CAAA,GAAA,CAAA;EAClD;EAEI,IAAAA,KAAA,KAAUlT,MAAMiB,MAAQ,EAAA;IACnB,wCAA0BjB,MAAMkT,KAAQ,GAAA,CAAA,CAAA;EACjD;EAEA,wCAAiClT,KAAA,CAAMkT,KAAQ,GAAA,CAAA,CAAA,iCAAyBlT,MAAMkT,KAAS,CAAA,GAAA,CAAA;AACzF;AAEA,SAASgQ,oBAAoBljB,KAAgC,EAAA;EAC3D,MAAMmjB,WAAWnjB,KAAM,CAAAiB,MAAA;EACvB,MAAMU,QAA+C,EAAC;EAElD,IAAA,OAAO0E,WAAW,WAAa,EAAA;IACjC,KAAA,IAAS6M,KAAQ,GAAAiQ,QAAA,EAAUjQ,KAAQ,GAAA,CAAA,CAAA,EAAIA,SAAS,CAAG,EAAA;MAC3C,MAAAkQ,UAAA,GAAaH,cAAe,CAAAjjB,KAAA,EAAOkT,KAAK,CAAA;MAExCvR,KAAA,CAAAoD,IAAA,CAAK;QAACmO,KAAO;QAAAmQ,EAAA,EAAIhd,OAAOid,UAAW,CAAAF,UAAU;OAAE,CAAA;IACvD;EACF;EAEA,MAAMG,kBAAkB,MAAM;IAC5B,KAAA,MAAW;MAACrQ,KAAA;MAAOmQ;IAAE,CAAA,IAAK1hB,KAAO,EAAA;MAC/B,IAAI0hB,EAAG,CAAAG,OAAA,EAAgB,OAAAtQ,KAAA;IACzB;IAEO,OAAA,CAAA;EAAA,CACT;EAEM,MAAAY,SAAA,GAAaC,UAAwC,IAAA;IACzD,MAAM0P,aAA6B,EAAC;IAEpC,KAAA,MAAW;MAACvQ,KAAA;MAAOmQ;IAAE,CAAA,IAAK1hB,KAAO,EAAA;MAC/B,MAAM+hB,eAAe,MAAM;QACzB,IAAIL,EAAG,CAAAG,OAAA,EAASzP,UAAA,CAAWb,KAAK,CAAA;MAAA,CAClC;MAEA,IAAImQ,GAAG/c,gBAAkB,EAAA;QACpB+c,EAAA,CAAA/c,gBAAA,CAAiB,UAAUod,YAAY,CAAA;MAAA,CACrC,MAAA;QACLL,EAAA,CAAGM,YAAYD,YAAY,CAAA;MAC7B;MAEAD,UAAA,CAAW1e,KAAK,MAAM;QACpB,IAAIse,GAAG9c,mBAAqB,EAAA;UACvB8c,EAAA,CAAA9c,mBAAA,CAAoB,UAAUmd,YAAY,CAAA;QAAA,CACxC,MAAA;UACLL,EAAA,CAAGO,eAAeF,YAAY,CAAA;QAChC;MAAA,CACD,CAAA;IACH;IAEA,OAAO,MAAM;MACX,KAAA,MAAWG,aAAaJ,UAAY,EAAA;QACxBI,SAAA,EAAA;MACZ;IAAA,CACF;EAAA,CACF;EAEO,OAAA;IAACN;IAAiBzP;GAAS;AACpC;AAKO,SAASgQ,iBAAiB9jB,KAAgC,EAAA;EAC3D,IAAA+jB,OAAA,GAAUf,mBAAoB,CAAAnY,GAAA,CAAI7K,KAAK,CAAA;EAE3C,IAAI,CAAC+jB,OAAS,EAAA;IACZA,OAAA,GAAUb,oBAAoBljB,KAAK,CAAA;IACfgjB,mBAAA,CAAAlY,GAAA,CAAI9K,OAAO+jB,OAAO,CAAA;EACxC;EAEO,OAAAA,OAAA;AACT;AC/EO,SAASC,aAAwB,GAAA;EACtC,MAAMnjB,QAAQiiB,QAAS,EAAA;EACjB,MAAA;IAAC9iB;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAChB,MAAA6iB,OAAA,GAAUtf,QAAQ,MAAMqf,gBAAA,CAAiB9jB,KAAK,CAAG,EAAA,CAACA,KAAK,CAAC,CAAA;EAC9D,MAAM,CAACkT,KAAO,EAAA+Q,QAAQ,CAAI,GAAA3e,QAAA,CAASye,QAAQR,eAAe,CAAA;EAE1D5d,SAAA,CAAU,MAAMoe,OAAQ,CAAAjQ,SAAA,CAAUmQ,QAAQ,CAAG,EAAA,CAACF,OAAO,CAAC,CAAA;EAE/C,OAAA7Q,KAAA;AACT;ACZO,SAASgR,cAA0B,GAAA;EAClC,MAAAb,EAAA,GAAK5e,QAAQ,MAAM;IACvB,IAAI,OAAO4B,MAAW,KAAA,WAAA,EAAoB,OAAA,KAAA,CAAA;IAEnC,OAAAA,MAAA,CAAOid,WAAW,8BAA8B,CAAA;EACzD,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM,CAACxL,IAAM,EAAAqM,OAAO,IAAI7e,QAAS,CAAA,CAAA+d,EAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAIG,YAAW,KAAK,CAAA;EAErD7d,SAAA,CAAU,MAAM;IACd,IAAI,CAAC0d,EAAA,EAAW,OAAA,KAAA,CAAA;IAEhBc,OAAA,CAAQd,GAAGG,OAAO,CAAA;IAElB,MAAME,YAAe,GAAA,MAAMS,OAAQ,CAAAd,EAAA,CAAGG,OAAO,CAAA;IAE1CH,EAAA,CAAA/c,gBAAA,CAAiB,UAAUod,YAAY,CAAA;IAE1C,OAAO,MAAML,EAAA,CAAG9c,mBAAoB,CAAA,QAAA,EAAUmd,YAAY,CAAA;EAAA,CAC5D,EAAG,CAACL,EAAE,CAAC,CAAA;EAEA,OAAAvL,IAAA;AACT;ACtBO,MAAMsM,mBAAsB,GAAA,OAAO/d,MAAW,KAAA,WAAA,GAAcge,eAAkB,GAAA1e,SAAA;ACC9E,SAAS2e,gBAAmBC,GAA8D,EAAA;EACzF,MAAAC,QAAA,GAAW9e,OAAiB,IAAI,CAAA;EAEtC0e,mBAAA,CAAoB,MAAM;IACxB,IAAI,CAACG,GAAA,EAAK;IAEN,IAAA,OAAOA,QAAQ,UAAY,EAAA;MAC7BA,GAAA,CAAIC,SAAS3e,OAAO,CAAA;IAAA,CACf,MAAA;MACL0e,GAAA,CAAI1e,UAAU2e,QAAS,CAAA3e,OAAA;IACzB;EAAA,CACD,CAAA;EAEM,OAAA2e,QAAA;AACT;ACfgB,SAAAC,iBAAA,CACdF,KACAG,cACM,EAAA;EACN/e,SAAA,CAAU,MAAM;IACd,IAAI4e,IAAI1e,OAAS,EAAA;MACX0e,GAAA,CAAA1e,OAAA,CAAQ8e,iBAAkB,CAAAD,cAAA,IAAkB,EAAE,CAAA;IACpD;EAAA,CACC,EAAA,CAACA,cAAgB,EAAAH,GAAG,CAAC,CAAA;AAC1B;ACTA,MAAMK,YAAe,GAAA,oCAAA;AAEd,SAASC,qBAEd,GAAA;EACA,OAAO,CAAC5Q,MAAA,EAAQnI,SAAW,EAAAE,WAAA,EAAaE,cAAcE,UAAU,CAAA;AAClE;AAEA,SAAS6H,OAAOnT,KAAgD,EAAA;EACxD,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEf,OAAAnB,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAgkB,OAAA,EAAUrlB,KAAA,IACxCA,KAAQ,GAAA;IAAC,MAAM;MAACwU,MAAA,EAAQ2Q;IAAY;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC3Q,MAAA,EAAQ;;EAAE,CAAA,CAC7D;AACF;AAEA,SAASnI,UAAUhL,KAAgD,EAAA;EAC3D,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEf,OAAAnB,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAikB,UAAA,EAAatlB,KAAA,IAC3CA,KAAQ,GAAA;IAAC,MAAM;MAACqM,SAAA,EAAW8Y;IAAY;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC9Y,SAAA,EAAW;;EAAE,CAAA,CACnE;AACF;AAEA,SAASE,YAAYlL,KAAgD,EAAA;EAC7D,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEf,OAAAnB,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAkkB,YAAA,EAAevlB,KAAA,IAC7CA,KAAQ,GAAA;IAAC,MAAM;MAACuM,WAAA,EAAa4Y;IAAY;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC5Y,WAAA,EAAa;;EAAE,CAAA,CACvE;AACF;AAEA,SAASE,aAAapL,KAAgD,EAAA;EAC9D,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEf,OAAAnB,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAmkB,aAAA,EAAgBxlB,KAAA,IAC9CA,KAAQ,GAAA;IAAC,MAAM;MAACyM,YAAA,EAAc0Y;IAAY;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC1Y,YAAA,EAAc;;EAAE,CAAA,CACzE;AACF;AAEA,SAASE,WAAWtL,KAAgD,EAAA;EAC5D,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEf,OAAAnB,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAokB,WAAA,EAAczlB,KAAA,IAC5CA,KAAQ,GAAA;IAAC,MAAM;MAAC2M,UAAA,EAAYwY;IAAY;EAAA,IAAK;IAAC,IAAA,EAAM;MAACxY,UAAA,EAAY;;EAAE,CAAA,CACrE;AACF;AClDA,MAAM+Y,YAAwB,GAAA;EAC5B,iCAAmC,EAAA;IACjCC,SAAW,EAAA;EACb;AACF,CAAA;AAEA,MAAMC,UAAkD,GAAA;EACtDhjB,OAAS,EAAA,aAAA;EACT4R,MAAQ,EAAA;AACV,CAAA;AAEA,MAAMqR,UAAa,GAAA;EACjBC,OAAS,EAAA,SAAA;EACTC,IAAM,EAAA;AACR,CAAA;AAEO,SAASC,QAAsB,GAAA;EAC7B,OAAAN,YAAA;AACT;AAEO,SAASO,kBAEd,GAAA;EACO,OAAA,CACLC,wBAAA,EACAC,wBAAA,EACAC,0BAAA,EACAC,yBAAA,CACF;AACF;AAEA,SAASA,0BAA0BhlB,KAA6C,EAAA;EACxE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAilB,QAAA,EAAWzjB,OAAa,KAAA;IACtD,iBAAA,EAAmB;MAACA;IAAO;EAC3B,CAAA,CAAA,CAAA;AACJ;AAEA,SAASqjB,yBAAyB7kB,KAA6C,EAAA;EACvE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAklB,OAAA,EAAUC,MAAY,KAAA;IACpD7a,WAAWia,UAAW,CAAAY,MAAA;EACtB,CAAA,CAAA,CAAA;AACJ;AAEA,SAASL,yBAAyB9kB,KAA6C,EAAA;EACvE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAolB,OAAA,EAAU3jB,MAAY,KAAA;IACpDA,QAAQ+iB,UAAW,CAAA/iB,MAAA;EACnB,CAAA,CAAA,CAAA;AACJ;AAEA,SAASsjB,2BAA2B/kB,KAA6C,EAAA;EACzE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAqlB,SAAA,EAAYC,QAAc,KAAA;IACxDA;EACA,CAAA,CAAA,CAAA;AACJ;AClEA,MAAMjB,YAAwB,GAAA;EAC5B,kBAAoB,EAAA;IAClB7iB,OAAS,EAAA;EACX;AACF,CAAA;AAEO,SAAS+jB,mBAEd,GAAA;EACO,OAAA,CACLlB,YAAA,EACAmB,wBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,0BAAA,EACAC,4BAAA,CACF;AACF;AAEO,SAASJ,yBACdxlB,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoD,MAAA,EAASyiB,KAAU,IAAA;IAC1C,OAAA;MAACC,YAAYD;KAAK;EAAA,CAC1B,CAAA;AACH;AAEA,SAASJ,uBAAuBzlB,KAA8C,EAAA;EACtE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACd,KAAA;IAAOoB;GAAK,GAAIP,KAAM,CAAAK,MAAA;EAE7B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA+lB,IAAA,EAAOC,GAAS,KAAA;IAC9CA,GAAK,EAAAA,GAAA,GAAMjnB,GAAI,CAAAuB,KAAA,CAAM0lB,IAAI,CAAI,GAAA,KAAA;EAC7B,CAAA,CAAA,CAAA;AACJ;AAEO,SAASN,wBAAwB1lB,KAA2D,EAAA;EAC3F,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAimB,KAAA,EAAQC,IAAS,IAAA;IACxC,OAAA;MAACC,UAAUD;KAAI;EAAA,CACvB,CAAA;AACH;AAEO,SAASP,2BACd3lB,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAomB,QAAA,EAAWC,OAAY,IAAA;IAC9C,OAAA;MAACC,gBAAgBD;KAAO;EAAA,CAChC,CAAA;AACH;AAEO,SAAST,6BACd5lB,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAumB,UAAA,EAAaC,SAAc,IAAA;IAClD,OAAA;MAACC,eAAeD;KAAS;EAAA,CACjC,CAAA;AACH;ACnEA,MAAMnC,YAAwB,GAAA;EAC5BqC,QAAU,EAAA,CAAA;EACVC,SAAW,EAAA;AACb,CAAA;AAEO,SAASC,aAEd,GAAA;EACO,OAAA,CAACvC,cAAYwC,uBAAuB,CAAA;AAC7C;AAEO,SAASA,wBACd7mB,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,IAAI,CAACJ,KAAM,CAAA8mB,KAAA,EAAc,OAAA5oB,WAAA;EAElB,OAAAe,WAAA,CAAYC,OAAOc,KAAM,CAAA8mB,KAAA,EAAQC,IAAU,KAAA;IAACA;EAAM,CAAA,CAAA,CAAA;AAC3D;AC1BO,SAASC,qBAAqB7T,MAAgD,EAAA;EAC5E,6BAAeA,MAAO,CAAA/L,KAAA,gBAAW+L,MAAO,CAAAsD,KAAA;AACjD;AAEO,SAASwQ,eAAelQ,IAIpB,EAAA;EACT,MAAM;IAAC7V,IAAA;IAAMiS,MAAQ;IAAAwG;EAAA,CAAa,GAAA5C,IAAA;EAC5B,MAAAmQ,oBAAA,GAAuBvN,SAAU,CAAA4F,MAAA,GAAS5F,SAAU,CAAAvS,KAAA;EACpD,MAAA+f,mBAAA,GAAsB,IAAIxN,SAAU,CAAA4F,MAAA;EACpC,MAAA6H,OAAA,GAAUlmB,IAAO,GAAAA,IAAA,CAAKuY,EAAK,GAAA,sBAAA;EAE1B,OAAA,CACL0N,mBAAA,GAAsB,2BAAoBA,mBAAA,oCAAA,EAC1ChU,MAAA,IAAU6T,qBAAqB7T,MAAM,CAAA,EACrCgU,mBAAsB,GAAA,CAAA,oBAAc,CAAA,GAAIA,mBAAyB,gBAAAC,OAAA,CAAA,EACjEF,oBAAA,GAAuB,qBAAcA,oBAAA,oCAAA,CAEpC,CAAAhjB,MAAA,CAAOC,OAAO,CAAA,CACdkjB,KAAK,GAAG,CAAA;AACb;ACjBA,MAAMC,QAAW,GAAA;EACf,kBAAoB,EAAA;IAClB9lB,OAAS,EAAA;EACX,CAAA;EACA,iCAAmC,EAAA;IACjC8iB,SAAW,EAAA;EACb;AACF,CAAA;AAEA,MAAMiD,gBAAmB,GAAA;EACvBC,IAAM,EAAA,MAAA;EACN9S,GAAK,EAAA,aAAA;EACLD,GAAK,EAAA,aAAA;EACLgT,EAAI,EAAA;AACN,CAAA;AAEA,MAAMC,cAAiB,GAAA;EACrBF,IAAM,EAAA,MAAA;EACN9S,GAAK,EAAA,aAAA;EACLD,GAAK,EAAA,aAAA;EACLgT,EAAI,EAAA;AACN,CAAA;AAEO,SAASE,mBAEd,GAAA;EACO,OAAA,CACLL,QAAA,EACAM,2BAAA,EACAC,2BAAA,EACAC,2BAAA,EACAC,0BAAA,EACAC,uBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,uBAAA,CACF;AACF;AAEA,SAASP,4BAA4B5nB,KAA8C,EAAA;EAC3E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAooB,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAc,EAAAD;EACd,CAAA,CAAA,CAAA;AACJ;AAEA,SAASR,4BAA4B7nB,KAA8C,EAAA;EAC3E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAuoB,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAA,EAAcD,YAAYd,cAAe,CAAAc,QAAA;EACzC,CAAA,CAAA,CAAA;AACJ;AAEA,SAASV,4BAA4B9nB,KAA8C,EAAA;EAC3E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA0oB,SAAA,EAAYC,QAAc,KAAA;IACxDC,eAAA,EAAiBD,YAAYpB,gBAAiB,CAAAoB,QAAA;EAC9C,CAAA,CAAA,CAAA;AACJ;AAEA,SAASZ,2BAA2B/nB,KAA8C,EAAA;EAC1E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6oB,QAAA,EAAWC,OAAa,KAAA;IACtDC,mBAAA,EAAqBD,4BAAqBA,OAAA;EAC1C,CAAA,CAAA,CAAA;AACJ;AAEA,SAASd,wBAAwBhoB,KAA8C,EAAA;EACvE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAgpB,KAAA,EAAQC,IAAU,KAAA;IAChDC,gBAAA,EAAkBD,yBAAkBA,IAAA;EACpC,CAAA,CAAA,CAAA;AACJ;AAEA,SAAShB,uBAAuBjoB,KAA8C,EAAA;EACtE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACd,KAAA;IAAOoB;GAAK,GAAIP,KAAM,CAAAK,MAAA;EAE7B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA+lB,IAAA,EAAOC,GAAS,KAAA;IAC9CmD,OAAS,EAAAnD,GAAA,GAAMjnB,GAAI,CAAAuB,KAAA,CAAM0lB,IAAI,CAAI,GAAA,KAAA;EACjC,CAAA,CAAA,CAAA;AACJ;AAEA,SAASkC,wBAAwBloB,KAA8C,EAAA;EACvE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACd,KAAA;IAAOoB;GAAK,GAAIP,KAAM,CAAAK,MAAA;EAE7B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAopB,KAAA,EAAQC,IAAU,KAAA;IAChDC,SAAW,EAAAD,IAAA,GAAOtqB,GAAI,CAAAuB,KAAA,CAAM+oB,KAAK,CAAI,GAAA,KAAA;EACrC,CAAA,CAAA,CAAA;AACJ;AAEA,SAASlB,wBAAwBnoB,KAA8C,EAAA;EACvE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACd,KAAA;IAAOoB;GAAK,GAAIP,KAAM,CAAAK,MAAA;EAE7B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAupB,KAAA,EAAQC,IAAU,KAAA;IAChDC,MAAQ,EAAAD,IAAA,GAAOzqB,GAAI,CAAAuB,KAAA,CAAMkpB,KAAK,CAAI,GAAA,KAAA;EAClC,CAAA,CAAA,CAAA;AACJ;AC7GO,SAASE,uBAEd,GAAA;EACO,OAAA,CACLC,0BAAA,EACAC,+BAAA,EACAC,6BAAA,EACAC,6BAAA,EACAC,kCAAA,EACAC,gCAAA,CACF;AACF;AAEA,MAAMC,aAAgB,GAAA;EACpBzC,IAAM,EAAA,MAAA;EACN0C,IAAM,EAAA;AACR,CAAA;AAEA,MAAMC,gBAAmB,GAAA;EACvB3C,IAAM,EAAA,MAAA;EACN0C,IAAM,EAAA;AACR,CAAA;AAEA,SAASP,2BAA2B3pB,KAAkD,EAAA;EAC9E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoqB,IAAA,EAAOC,GAAQ,IAAA;IACzC,IAAA,OAAOA,QAAQ,QAAU,EAAA;MAC3B,OAAO;QAACC,OAAA,iBAAiBD,GAAA,qBAAcA,GAAK;OAAA;IAC9C;IAEO,OAAA;MAACC,OAAS,EAAAL,aAAA,CAAcI,GAAI;IAAA,CAAA;EAAA,CACpC,CAAA;AACH;AAEA,SAAST,gCAAgC5pB,KAAkD,EAAA;EACnF,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAuqB,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAc,EAAAD;EACd,CAAA,CAAA,CAAA;AACJ;AAEA,SAASX,8BAA8B7pB,KAAkD,EAAA;EACjF,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEf,OAAAnB,WAAA,CAAYC,OAAOc,KAAM,CAAA0qB,OAAA,EAAUC,MAAY,KAAA;IAACC,UAAY,EAAAD;EAAQ,CAAA,CAAA,CAAA;AAC7E;AAEA,SAASb,8BAA8B9pB,KAAkD,EAAA;EACjF,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6qB,OAAA,EAAUC,MAAW,IAAA;IAC/C,IAAA,OAAOA,WAAW,QAAU,EAAA;MAC9B,OAAO;QAACC,UAAA,iBAAoBD,MAAA,qBAAiBA,MAAQ;OAAA;IACvD;IAEO,OAAA;MAACC,UAAY,EAAAZ,gBAAA,CAAiBW,MAAO;IAAA,CAAA;EAAA,CAC7C,CAAA;AACH;AAEA,SAASf,mCAAmC/pB,KAAkD,EAAA;EACtF,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAgrB,YAAA,EAAeC,WAAiB,KAAA;IAC9DC,eAAiB,EAAAD;EACjB,CAAA,CAAA,CAAA;AACJ;AAEA,SAASjB,iCAAiChqB,KAAkD,EAAA;EACpF,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEtB,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmrB,UAAA,EAAaC,SAAe,KAAA;IAC1DC,aAAe,EAAAD;EACf,CAAA,CAAA,CAAA;AACJ;AC1EO,SAASE,4BACdtrB,KACa,EAAA;EACb,MAAM;IAACurB,SAAW;IAAAC,SAAA;IAAWC;IAAYC,QAAU;IAAAC,MAAA;IAAQ5rB;EAAS,CAAA,GAAAC,KAAA;EACpE,MAAM;IAACW,KAAO;IAAAzB,KAAA;IAAOoB,KAAO,EAAAsrB;MAAc7rB,KAAM,CAAAK,MAAA;EAC1C,MAAAyrB,GAAA,GAAMnpB,KAAK+R,GAAI,CAAAiX,QAAA,CAASvrB,QAAQwrB,MAAO,CAAAxrB,MAAA,EAAQorB,UAAUprB,MAAM,CAAA;EACrE,MAAM2rB,WAAqB,EAAC;EAC5B,MAAMC,SAAmB,EAAC;EAC1B,MAAMC,YAAsB,EAAC;EAE7B,KAAA,IAASpa,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAia,GAAA,EAAKja,KAAK,CAAG,EAAA;IAC/Boa,SAAA,CAAUpa,KAAK2Z,SAAU,CAAA3Z,CAAA,CAAA,KAAO,SAAYoa,SAAU,CAAApa,CAAA,GAAI,KAAK2Z,SAAU,CAAA3Z,CAAA,CAAA;IACzEka,QAAA,CAASla,KAAK8Z,QAAS,CAAA9Z,CAAA,CAAA,KAAO,SAAYka,QAAS,CAAAla,CAAA,GAAI,KAAK8Z,QAAS,CAAA9Z,CAAA,CAAA;IACrEma,MAAA,CAAOna,KAAK+Z,MAAO,CAAA/Z,CAAA,CAAA,KAAO,SAAYma,MAAO,CAAAna,CAAA,GAAI,KAAK+Z,MAAO,CAAA/Z,CAAA,CAAA;EAC/D;EAEA,OAAO3S,WAAY,CAAAC,KAAA,EAAO4sB,QAAU,EAAA,CAACG,GAAGra,CAAM,KAAA;IACtC,MAAA5P,IAAA,GAAOrB,MAAMse,IAAK,CAAApe,KAAA,CAAMmrB,UAAUpa,CAAO,CAAA,CAAA,IAAAjR,KAAA,CAAMse,KAAKpe,KAAM,CAAA,CAAA,CAAA;IAChE,MAAMqrB,MAAS,GAAAlqB,IAAA,CAAKK,UAAa,GAAAL,IAAA,CAAKC,iBAAiBD,IAAK,CAAAE,eAAA;IACtD,MAAAiqB,CAAA,GAAIP,WAAWE,QAAS,CAAAla,CAAA,CAAA,CAAA;IACxB,MAAAuC,CAAA,GAAIyX,WAAWG,MAAO,CAAAna,CAAA,CAAA,CAAA;IAE5B,MAAMwa,MAAS,GAAA;MACbxhB,UAAY,EAAA7L,GAAA,CAAIotB,CAAI,GAAAnqB,IAAA,CAAKC,cAAc,CAAA;MACvC4I,YAAA,EAAc9L,IAAIotB,CAAC,CAAA;MACnBrhB,aAAe,EAAA/L,GAAA,CAAIotB,CAAI,GAAAnqB,IAAA,CAAKE,eAAe,CAAA;MAC3C6I,WAAA,EAAahM,IAAIotB,CAAC;IAAA,CACpB;IAEI,IAAAV,UAAA,EAAYW,MAAA,CAAOvhB,YAAe,GAAA9L,GAAA,CAAIotB,CAAI,GAAAD,MAAA,GAAS/X,CAAC,CAAA;IACpD,IAAAqX,SAAA,EAAWY,MAAA,CAAOrhB,WAAc,GAAAhM,GAAA,CAAIotB,CAAI,GAAAD,MAAA,GAAS/X,CAAC,CAAA;IAE/C,OAAAiY,MAAA;EAAA,CACR,CAAA;AACH;AAsBO,SAASC,qCACdrsB,KAKa,EAAA;EACb,OAAOsrB,4DAAgCtrB,KAAO;IAAAyrB,UAAA,EAAY;KAAK;AACjE;ACjDA,MAAMa,UAAa,GAAAC,GAAA,+IAAA;AAQZ,SAASC,kBAAiD,GAAA;EACxD,OAAAF,UAAA;AACT;AAEO,SAASG,mBACdzsB,KAC4B,EAAA;EAC5B,MAAM;IAACD,KAAA;IAAO2sB,OAAS;IAAAC,KAAA;IAAOjsB;GAAW,GAAAV,KAAA;EACnC,MAAA4sB,IAAA,GAAO7sB,KAAM,CAAAK,MAAA,CAAOO,KAAM,CAAAse,IAAA;EAC1B,MAAAxI,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAiE,KAAA;EAE1B,OAAA6R,GAAA,2jDAQUK,IAAK,CAAAhsB,MAAA,EACJF,OAAW,IAAAksB,IAAA,CAAK9rB,OAAQ,CAAAJ,OAAA,CAAA,IAAaksB,KAAK9rB,OAAQ,CAAAE,OAAA,EA2BjD0rB,OAAwB,EAAAC,KAAA,EACnBlW,KAAA,CAAMW,QAAQU,OAAQ,CAAA4B,EAAA,EACbjD,KAAA,CAAMW,QAAQU,OAAQ,CAAA6C,WAAA,EAI7BlE,KAAA,CAAMW,QAAQU,OAAQ,CAAA4B,EAAA,EACbjD,KAAA,CAAMW,QAAQU,OAAQ,CAAA6C,WAAA,EAK/BlE,KAAA,CAAMW,QAAQa,QAAS,CAAAyB,EAAA,EACdjD,KAAA,CAAMW,QAAQa,QAAS,CAAA0C,WAAA,EAKhClE,KAAA,CAAM4G,QAAQvF,OAAQ,CAAA4B,EAAA,EACbjD,KAAA,CAAM4G,QAAQvF,OAAQ,CAAA6C,WAAA,EAK/BlE,KAAA,CAAMW,QAAQgG,QAAS,CAAA1D,EAAA,EACdjD,KAAA,CAAMW,QAAQgG,QAAS,CAAAzC,WAAA;AAI5D;AAEO,SAASkS,uBAAuB7sB,KAA2D,EAAA;EAC1F,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACW,KAAA;IAAOzB;GAAK,GAAIa,KAAM,CAAAK,MAAA;EAE7B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAurB,SAAA,EAAYzpB,SAAc,IAAA;IACxD,MAAME,OAAOrB,KAAM,CAAAse,IAAA,CAAKpe,MAAMiB,SAAc,CAAA,IAAAnB,KAAA,CAAMse,KAAKpe,KAAM,CAAA,CAAA,CAAA;IAEtD,OAAA;MACLkB,QAAA,EAAUhD,GAAI,CAAAiD,IAAA,CAAKD,QAAQ,CAAA;MAC3BM,UAAA,EAAYL,IAAK,CAAAK,UAAA,GAAaL,IAAK,CAAAD;IAAA,CACrC;EAAA,CACD,CAAA;AACH;AAEO,SAAS+qB,6BACd9sB,KAC4B,EAAA;EAC5B,MAAM;IAAC+sB,UAAY;IAAAC,UAAA;IAAYN,OAAS;IAAAC,KAAA;IAAO5sB;EAAS,CAAA,GAAAC,KAAA;EACxD,MAAM;IAAC2Z,SAAA;IAAWe;GAAK,GAAI3a,KAAM,CAAAK,MAAA;EAC3B,MAAAqW,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAiE,KAAA;EAE1B,OAAA6R,GAAA,g1DAeqBQ,aAAa,CAAI,GAAA,KAAA,CAAA,EACdA,aAAa,CAAI,GAAA,KAAA,CAAA,EACnBC,aAAa,CAAI,GAAA,KAAA,CAAA,EACdA,aAAa,CAAI,GAAA,KAAA,CAAA,EAE9BN,OAAwB,EAAAC,KAAA,EACpBlW,KAAA,CAAMW,QAAQU,OAAQ,CAAA2B,EAAA,EACtBhD,KAAA,CAAMW,QAAQU,OAAQ,CAAA4B,EAAA,EAIjBsN,oBAAqB,CAAA;IACzCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQU,OAAQ,CAAA3E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAKkBqP,KAAA,CAAM4G,QAAQvF,OAAQ,CAAA2B,EAAA,EACtBhD,KAAA,CAAM4G,QAAQvF,OAAQ,CAAA4B,EAAA,EAGjBsN,oBAAqB,CAAA;IACzCvQ,KAAA,EAAOA,KAAM,CAAA4G,OAAA,CAAQvF,OAAQ,CAAA3E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAOqB6f,cAAe,CAAA;IACnC9T,MAAA,EAAQ;MAACsD,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQU,QAAQ3E,MAAQ;MAAA/L,KAAA,EAAOsT,KAAM,CAAAvH,MAAA,CAAO/L;IAAK,CAAA;IACvEuS;EAAA,CACD,CAAA,EAIqBsN,cAAA,CAAe;IAACtN;EAAA,CAAU,CAAA,EAM/BlD,KAAA,CAAMW,QAAQa,QAAS,CAAAwB,EAAA,EACvBhD,KAAA,CAAMW,QAAQa,QAAS,CAAAyB,EAAA,EAGlBsN,oBAAqB,CAAA;IACzCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQa,QAAS,CAAA9E,MAAA;IAC9B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAMgBqP,KAAA,CAAMW,QAAQgG,QAAS,CAAA3D,EAAA,EACvBhD,KAAA,CAAMW,QAAQgG,QAAS,CAAA1D,EAAA,EAMrBjD,KAAA,CAAMW,QAAQc,OAAQ,CAAAuB,EAAA,EACtBhD,KAAA,CAAMW,QAAQc,OAAQ,CAAAwB,EAAA,EAInBsN,oBAAqB,CAAA;IACzCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQc,OAAQ,CAAA/E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA;AAKX;AC/NO,SAAS6lB,sBACdjtB,KACe,EAAA;EACT,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAET,OAAA,CACLF,oBAAoBC,KAAO,EAAA,CAAC,QAAQ,CAAA,EAAGC,MAAMktB,OAAO,CAAA,EACpDptB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,aAAa,CAAA,EAAGC,MAAMmtB,QAAQ,CAAA,EACxErtB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,cAAc,CAAA,EAAGC,MAAMotB,QAAQ,CAAA,EACxEttB,oBAAoBC,KAAO,EAAA,CAAC,WAAW,CAAA,EAAGC,MAAMqtB,UAAU,CAAA,EAC1DvtB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,CAAA,EAAGC,MAAMstB,YAAY,CAAA,EAC9DxtB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,CAAA,EAAGC,MAAMutB,aAAa,CAAA,EAChEztB,oBAAoBC,KAAO,EAAA,CAAC,YAAY,CAAA,EAAGC,MAAMwtB,WAAW,CAAA,CAC9D,CAAEtpB,OAAOC,OAAO,CAAA;AAClB;ACdO,SAASspB,uBACdztB,KACe,EAAA;EACT,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAET,OAAA,CACLF,oBAAoBC,KAAO,EAAA,CAAC,SAAS,CAAA,EAAGC,MAAM0rB,QAAQ,CAAA,EACtD5rB,oBAAoBC,KAAO,EAAA,CAAC,eAAe,cAAc,CAAA,EAAGC,MAAM0tB,SAAS,CAAA,EAC3E5tB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,eAAe,CAAA,EAAGC,MAAM2tB,SAAS,CAAA,EAC3E7tB,oBAAoBC,KAAO,EAAA,CAAC,YAAY,CAAA,EAAGC,MAAM4tB,WAAW,CAAA,EAC5D9tB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,CAAA,EAAGC,MAAM6tB,aAAa,CAAA,EAChE/tB,oBAAoBC,KAAO,EAAA,CAAC,eAAe,CAAA,EAAGC,MAAM8tB,cAAc,CAAA,EAClEhuB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,CAAA,EAAGC,MAAM+tB,YAAY,CAAA,CAChE,CAAE7pB,OAAOC,OAAO,CAAA;AAClB;ACdO,SAAS6pB,sBAAsBhuB,KAA6D,EAAA;EAC3F,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACd,KAAA;IAAOsgB;GAAM,GAAIzf,KAAM,CAAAK,MAAA;EAE9B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAiuB,OAAA,EAAUC,WAAiB,KAAA;IACzDC,YAAA,EAAcpvB,GAAI,CAAAygB,MAAA,CAAO0O,WAAY,CAAA;EACrC,CAAA,CAAA,CAAA;AACJ;ACLA,SAASE,WAAA,CAAYvU,QAAmBpD,KAAe,EAAA;EACrD,iBAAUoD,MAAO,CAAAva,GAAA,CAAIP,GAAG,CAAE,CAAAsoB,IAAA,CAAK,GAAG,CAAK,cAAA5Q,KAAA;AACzC;AAEA,SAAS4X,YAAYxU,MAAuC,EAAA;EAC1D,IAAI,CAACA,MAAA,EAAe,OAAA1b,YAAA;EAEd,MAAA2b,OAAA,mBAAmB/a,GAAA,CAAI,CAAC,CAAA,sCAAA;EAC9B,MAAMgb,KAAQ,GAAAqU,WAAA,CAAYvU,MAAO,CAAAE,KAAA,EAAO,gCAAgC,CAAA;EACxE,MAAMC,QAAW,GAAAoU,WAAA,CAAYvU,MAAO,CAAAG,QAAA,EAAU,mCAAmC,CAAA;EACjF,MAAMC,OAAU,GAAAmU,WAAA,CAAYvU,MAAO,CAAAI,OAAA,EAAS,kCAAkC,CAAA;EAE9E,OAAO;IAACqU,SAAW,YAAGxU,OAAY,eAAAC,KAAA,eAAUC,uBAAaC,OAAS;EAAA,CAAA;AACpE;AAEO,SAASsU,sBAAsBvuB,KAA6D,EAAA;EAC3F,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACd,KAAA;IAAOugB;GAAO,GAAI1f,KAAM,CAAAK,MAAA;EAExB,OAAAnB,WAAA,CAAYC,OAAOc,KAAM,CAAAwuB,OAAA,EAAU3U,MAAW,IAAAwU,WAAA,CAAY5O,OAAQ,CAAA5F,MAAA,CAAO,CAAC,CAAA;AACnF;ACxBO,SAAS4U,cACdzuB,KAC4B,EAAA;EAC5B,MAAM;IAAC0uB,OAAA;IAASC,MAAQ;IAAA5uB;EAAA,CAAS,GAAAC,KAAA;EACjC,MAAM;IAACc;EAAA,CAAW,GAAAf,KAAA,CAAMK,OAAOO,KAAM,CAAAse,IAAA;EAE9B,OAAAsN,GAAA,o2BAGHmC,OACF,IAAAnC,GAAA,wHAAA,EAIEoC,MACF,IAAApC,GAAA,uHAAA,EAKiBxsB,KAAA,CAAMK,MAAO,CAAAO,KAAA,CAAM8Z,IAAK,CAAA7Z,MAAA,EA4BxBE,OAAQ,CAAAge,IAAA;AAO7B;AC5BA,MAAM8P,SAAOC,MAAO,CAAAC,GAAA,CAClBxrB,kBAAA,EACAH,wBAAA,EACAsrB,aAAA,CACF;AAEA,MAAMM,yBAAuBF,MAAO,CAAAG,IAAA,qKAAA;AAU7B,MAAMC,IAAO,GAAAC,UAAA,CAAW,SAASD,KAAAA,CACtCjvB,OACAyjB,GACA,EAAA;EACM,MAAA;MACJlJ,MAAS,GAAA,KAAA;MACTsL,KAAA;MACA7E,QAAU,EAAAmO,YAAA;MACVjY,KAAQ,GAAA,KAAA;MACRlV,IAAO,GAAA,CAAA;MACPotB,YAAA;MACAC;IAEE,CAAA,GAAArvB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEJ,IAAIghB,QAAW,GAAAmO,YAAA;EAEf,IAAIC,iBAAiB,UAAY,EAAA;IAC/BpO,QAAA,GAAA,eAAYS,GAAA,CAAAsN,sBAAA,EAAA;MAAsB/N;IAAA,CAAS,CAAA;EAC7C;EAEA,OACG,eAAAS,GAAA,CAAAmN,MAAA;IACC,SAAQ,EAAA;EAAA,GACJU,SAAA;IACJZ,OAAS,EAAAnU,MAAA;IACTnX,MAAA,EAAQG,aAAasiB,KAAK,CAAA;IAC1B8I,MAAQ,EAAAzX,KAAA;IACRuM,GAAA;IACAhjB,KAAA,EAAO8C,aAAavB,IAAI,CAAA;IACxBtB,OAAS,EAAA2uB,MAAA;IAETrO,QAAC,EAAA,eAAAS,GAAA,CAAA,MAAA,EAAA;MAAMT;IAAA,CAAS;EAAA,GAClB;AAEJ,CAAC,CAAA;AC5EM,MAAMuO,WAAc,GAAA;EACzBxN,IAAM,EAAAyN,eAAA;EACNC,KAAO,EAAAC,gBAAA;EACPC,QAAU,EAAAC,mBAAA;EACVC,MAAQ,EAAAC,iBAAA;EACRC,QAAU,EAAAC;AACZ,CAAA;AAEA,SAASN,gBAA8B,GAAA;EAC9B,OAAA;IACLvuB,QAAU,EAAA,UAAA;IACVmJ,SAAW,EAAA,YAAA;IACX2lB,MAAQ,EAAA,CAAA;IACRC,OAAS,EAAA,CAAA;IACTC,UAAY,EAAA,iBAAA;IACZttB,SAAW,EAAA,uCAAA;IACXrE,IAAM,EAAA,CAAA;IACNF,KAAO,EAAA,CAAA;IACPD,GAAK,EAAA,CAAA;IACLE,MAAQ,EAAA,CAAA;IAER,SAAW,EAAA;MACT6I,KAAO,EAAA,MAAA;MACP3F,MAAQ,EAAA,KAAA;MACRN,QAAU,EAAA,UAAA;MACV9C,GAAK,EAAA,MAAA;MACLG,IAAM,EAAA,KAAA;MACNqE,SAAW,EAAA,kBAAA;MAEX,iBAAmB,EAAA;QACjBrB,OAAS,EAAA;MACX;IACF,CAAA;IAEA,oCAAsC,EAAA;MACpCqB,SAAW,EAAA,uCAAA;MACXqtB,OAAS,EAAA;IACX,CAAA;IAEA,iCAAmC,EAAA;MACjCA,OAAS,EAAA,CAAA;MACTrtB,SAAW,EAAA;IACb,CAAA;IAEA,oCAAsC,EAAA;MACpCqtB,OAAS,EAAA,CAAA;MACTrtB,SAAW,EAAA;IACb;EAAA,CACF;AACF;AAEO,SAAS2sB,gBAAgBxvB,KAAqD,EAAA;EAC7E,MAAA;IAACowB,MAAQ;IAAArwB;EAAS,CAAA,GAAAC,KAAA;EAClB,MAAA;IAAC2Z;EAAS,CAAA,GAAI5Z,KAAM,CAAAK,MAAA;EAEnB,OAAA;IACLiwB,eAAiB,EAAAD,MAAA;IACjBjvB,QAAU,EAAA,UAAA;IACVmJ,SAAW,EAAA,YAAA;IACXgmB,UAAY,EAAA,MAAA;IACZhC,SAAW,EAAA,gCAAA;IAEX,2BAA6B,EAAA;MAC3B4B,OAAS,EAAA;IACX,CAAA;IAEA,OAAS,EAAA;MACP,iBAAmB,EAAA;QACjB1uB,OAAS,EAAA;MACX;IACF,CAAA;IAGA,qBAAuB,EAAA;MACrB,wBAA0B,EAAA,SAAA;MAC1B+uB,UAAY,EAAA,MAAA;MACZjvB,MAAQ,EAAA,CAAA;MACRD,OAAS,EAAA,CAAA;MACT8R,MAAQ,EAAA,CAAA;MACRyZ,IAAM,EAAA,SAAA;MACNnW,KAAO,EAAA,SAAA;MACPqD,OAAS,EAAA,MAAA;MAET,SAAW,EAAA;QACTwU,SAAW,EAAArH,cAAA,CAAe;UAACtN;SAAU;MACvC,CAAA;MAEA,6BAA+B,EAAA;QAC7B2U,SAAW,EAAA;MACb;IACF;EAAA,CACF;AACF;AAEO,SAASkC,0BACdxwB,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACmf,MAAA;IAAQjgB;GAAK,GAAIa,KAAM,CAAAK,MAAA;EAE9B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAS,KAAA,EAAQuB,IAAS,IAAA;IAC/C,MAAMyuB,UAAa,GAAAtR,MAAA,CAAOte,KAAM,CAAAmB,IAAA,CAAA,IAASmd,OAAOte,KAAM,CAAA,CAAA,CAAA;IAE/C,OAAA;MACLuG,KAAA,EAAOrI,GAAI,CAAA0xB,UAAA,CAAWzuB,IAAI,CAAA;MAC1BP,MAAA,EAAQ1C,GAAI,CAAA0xB,UAAA,CAAWzuB,IAAI,CAAA;MAC3BmsB,YAAc,EAAApvB,GAAA,CAAI0xB,UAAW,CAAAzuB,IAAA,GAAO,CAAC,CAAA;MAErC,OAAS,EAAA;QACPoF,KAAA,EAAOrI,GAAI,CAAA0xB,UAAA,CAAWzuB,IAAI,CAAA;QAC1BP,MAAA,EAAQ1C,GAAI,CAAA0xB,UAAA,CAAWzuB,IAAI,CAAA;QAC3BmsB,YAAc,EAAApvB,GAAA,CAAI0xB,UAAW,CAAAzuB,IAAA,GAAO,CAAC;MACvC;IAAA,CACF;EAAA,CACD,CAAA;AACH;AAEO,SAASguB,oBAAoBhwB,KAA8B,EAAA;EAC1D,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACkB;EAAQ,CAAA,GAAAnB,KAAA,CAAMK,MAAO,CAAAqW,KAAA;EAErB,OAAA;IACLrP,KAAO,EAAA,MAAA;IACP3F,MAAQ,EAAA,MAAA;IACRgV,OAAOvV,IAAK,CAAAwY,EAAA;IACZoM,UAAY,EAAA,QAAA;IACZQ,cAAgB,EAAA,QAAA;IAChBoK,aAAe,EAAA,WAAA;IACfrtB,SAAW,EAAA,QAAA;IACX8qB,YAAc,EAAA,KAAA;IAEd,iBAAmB,EAAA;MACjB3sB,OAAS,EAAA;IACX;EAAA,CACF;AACF;AAEA,SAASouB,mBAAiC,GAAA;EACjC,OAAA;IACLe,WAAa,EAAA,KAAA;IACbd,MAAQ,EAAA;EAAA,CACV;AACF;AAEA,SAASC,iBAA+B,GAAA;EAC/B,OAAA;IACLa,WAAa,EAAA,KAAA;IAEb,2BAA6B,EAAA;MAC3BC,eAAiB,EAAA,KAAA;MACjBC,aAAe,EAAA;IACjB;EAAA,CACF;AACF;ACjIA,MAAMjC,SAAOC,MAAO,CAAAC,GAAA,CAClB0B,yBAAA,EACAjB,WAAY,CAAAxN,IAAA,CACd;AAEA,MAAM+O,KAAQ,GAAAjC,MAAA,CAAOC,GAAI,CAAAS,WAAA,CAAYE,KAAK,CAAA;AAE1C,MAAMsB,QAAW,GAAAlC,MAAA,CAAOmC,OAAQ,CAAAzB,WAAA,CAAYI,QAAQ,CAAA;AAEpD,MAAMsB,MAAS,GAAApC,MAAA,CAAOmC,OAAQ,CAAAzB,WAAA,CAAYM,MAAM,CAAA;AAEhD,MAAMqB,QAAW,GAAArC,MAAA,CAAOC,GAAI,CAAAS,WAAA,CAAYQ,QAAQ,CAAA;AAKzC,MAAMoB,MAAS,GAAAjC,UAAA,CAAW,SAASiC,OAAAA,CACxCnxB,OACAyjB,GACA,EAAA;EACM,MAAA;MACJ2N,EAAI,EAAAC,MAAA;MACJ5a,OAAO6a,QAAW,GAAA,MAAA;MAClBC,GAAA;MACAC,KAAA;MACAzB,QAAA;MACA0B,gBAAA;MACAC,aAAe,EAAAC,iBAAA;MACfC,gBAAA;MACAC,MAAS,GAAA,QAAA;MACT7vB,MAAM8vB,QAAW,GAAA;IAEf,CAAA,GAAA9xB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACJ,MAAMoxB,EAAK,GAAAW,OAAA,CAAQC,kBAAmB,CAAAX,MAAM,IAAIA,MAAS,GAAA,KAAA;EACnD,MAAArvB,IAAA,GAAOuB,aAAauuB,QAAQ,CAAA;EAClC,MAAM/xB,QAAQiiB,QAAS,EAAA;EACjB,MAAAvL,KAAA,GAAQ1W,MAAMK,MAAO,CAAAqW,KAAA,CAAMoE,KAAKyW,QAAa,CAAA,IAAAvxB,KAAA,CAAMK,MAAO,CAAAqW,KAAA,CAAMoE,IAAK,CAAA9B,IAAA;EAGrE,MAAA0X,UAAA,GAAa1wB,KAAM,CAAAK,MAAA,CAAO+e,MAAO,CAAAte,KAAA,CAAMmB,KAAK,CAAO,CAAA,CAAA,IAAAjC,KAAA,CAAMK,MAAO,CAAA+e,MAAA,CAAOte,KAAM,CAAA,CAAA,CAAA;EACnF,MAAMoxB,WAAWxB,UAAW,CAAAzuB,IAAA;EAC5B,MAAMkwB,UAAUD,QAAW,GAAA,CAAA;EAE3B,MAAME,YAAYC,KAAM,EAAA;EAClB,MAAA,CAACV,aAAe,EAAAW,gBAAgB,CAAI,GAAA7tB,QAAA,CACxCotB,oBAAoBD,iBAAqB,IAAA,QAAA,CAC3C;EAEA,MAAM,CAACW,WAAA,EAAaC,cAAc,CAAA,GAAI/tB,SAAkB,KAAK,CAAA;EAE7D,MAAMguB,iCAA0BL,SAAA,CAAA;EAEhCttB,SAAA,CAAU,MAAM;IACd,IAAI6sB,aAAkB,KAAAC,iBAAA,EAA0B,OAAA,KAAA,CAAA;IAGhD,MAAMc,GAAM,GAAAjjB,qBAAA,CAAsB,MAAM6iB,gBAAA,CAAiBV,iBAAiB,CAAC,CAAA;IAEpE,OAAA,MAAMe,qBAAqBD,GAAG,CAAA;EAAA,CACpC,EAAA,CAACf,aAAe,EAAAC,iBAAiB,CAAC,CAAA;EAErC9sB,SAAA,CAAU,MAAM;IACV,IAAA0sB,GAAA,EAAKgB,cAAA,CAAe,KAAK,CAAA;EAAA,CAC/B,EAAG,CAAChB,GAAG,CAAC,CAAA;EAEF,MAAAoB,gBAAA,GAAmBC,YAAY,MAAM;IACzCL,cAAA,CAAe,IAAI,CAAA;IAEnB,IAAId,gBAAkB,EAAA;MACHA,gBAAA,CAAA,IAAIvxB,KAAM,CAAA,kCAAkC,CAAC,CAAA;IAChE;EAAA,CACF,EAAG,CAACuxB,gBAAgB,CAAC,CAAA;EAErB,MAAMoB,YAAe,GAAAlvB,OAAA,CAAQ,MAAM3B,IAAA,CAAK1C,IAAK6U,CAAA,IAAOA,CAAM,KAAA,CAAA,GAAI,IAAIA,CAAI,GAAA,CAAE,CAAG,EAAA,CAACnS,IAAI,CAAC,CAAA;EAEjF,OACG,eAAA8wB,IAAA,CAAAlE,MAAA;IACCwC,EAAA;IACA,SAAS,EAAA,OAAOA,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA;EAAA,GACJ9B,SAAA;IACJ7uB,KAAO,EAAAuB,IAAA;IACPouB,MAAQ,EAAA3Z,KAAA;IACR,YAAY,EAAA+a,KAAA;IACZ,qBAAqB,EAAAE,aAAA;IACrB,aAAa,EAAAG,MAAA;IACbpO,GAAA;IACA+N,KAAA;IAEAxQ,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAqP,KAAA,EAAA;MACC9P,QAAC,EAAA,eAAAS,GAAA,CAAA,KAAA,EAAA;QAAIra,KAAM,EAAA,IAAA;QAAK3F,MAAO,EAAA,GAAA;QAAIsxB,OAAQ,EAAA,UAAA;QAAWrO,IAAK,EAAA,MAAA;QACjD1D,QAAC,EAAA,eAAAS,GAAA,CAAA,MAAA,EAAA;UACCuR,CAAE,EAAA,8FAAA;UACFtO,IAAM,EAAAjO;QAAA,CACR;MAAA,CACF;IAAA,CACF,CAAA,EAEC,CAAC6b,WAAe,IAAAf,GAAA,mBACduB,IAAA,CAAA,KAAA,EAAA;MAAIC,OAAA,gBAAgBd,QAAY,cAAAA,QAAA,CAAA;MAAYvN,IAAK,EAAA,MAAA;MAChD1D,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAA,MAAA,EAAA;QACCT,QAAC,EAAA,eAAAS,GAAA,CAAA,SAAA,EAAA;UAAQzF,EAAI,EAAAwW,OAAA;UAASS,mBAAoB,EAAA,mBAAA;UAAoB7rB,KAAM,EAAA,GAAA;UAAI3F,MAAO,EAAA,GAAA;UAC7Euf,QAAC,EAAA,eAAAS,GAAA,CAAA,OAAA,EAAA;YACCyR,IAAM,EAAA3B,GAAA;YACNnqB,KAAM,EAAA,GAAA;YACN3F,MAAO,EAAA,GAAA;YAEP0xB,OAAS,EAAAR;UAAA,CACX;QAAA,CACF;MAAA,CACF,CAAA,EAEC,eAAAlR,GAAA,CAAA,QAAA,EAAA;QAAO2R,EAAI,EAAAlB,OAAA;QAASmB,EAAI,EAAAnB,OAAA;QAAS7d,CAAG,EAAA6d,OAAA;QAASxN,qBAAc8N,OAAA;MAAA,CAAY,CAAA,EACvE,eAAA/Q,GAAA,CAAAsP,QAAA,EAAA;QACCqC,EAAI,EAAAlB,OAAA;QACJmB,EAAI,EAAAnB,OAAA;QACJoB,EAAI,EAAApB,OAAA;QACJqB,EAAI,EAAArB,OAAA;QACJsB,YAAa,EAAA;MAAA,CACf,CAAA,EACC,eAAA/R,GAAA,CAAAwP,MAAA,EAAA;QACCmC,EAAI,EAAAlB,OAAA;QACJmB,EAAI,EAAAnB,OAAA;QACJoB,EAAI,EAAApB,OAAA;QACJqB,EAAI,EAAArB,OAAA;QACJrC,MAAQ,EAAApZ,KAAA;QACR+c,YAAa,EAAA;MAAA,CACf,CAAA;IAAA,CACF,CAAA,EAGA,CAAAlB,WAAA,IAAe,CAACf,GAAA,KAAQxB,QACxB,IAAA,eAAAtO,GAAA,CAAAgS,QAAA,EAAA;MACEzS,QAAC,EAAA,eAAAS,GAAA,CAAAyP,QAAA,EAAA;QACClQ,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;UAAKmC,EAAG,EAAA,MAAA;UAAOpvB,IAAM,EAAA6wB,YAAA;UACpB7R,QAAC,EAAA,eAAAS,GAAA,CAAA,QAAA,EAAA;YAAQT,QAAA,EAAA+O;UAAA,CAAS;QAAA,CACpB;MAAA,CACF;IAAA,CACF,CAAA;EAAA,GAEJ;AAEJ,CAAC,CAAA;ACnKD,SAAS2D,kCAAkC1zB,KAA2C,EAAA;EAC9E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACmf,MAAA;IAAQjgB;GAAK,GAAIa,KAAM,CAAAK,MAAA;EAE9B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAS,KAAA,EAAQuB,IAAS,IAAA;IACzC,MAAAyuB,UAAA,GAAatR,OAAOte,KAAM,CAAAmB,IAAA,CAAA;IAEhC,IAAI,CAACyuB,UAAA,EAAmB,OAAAtyB,YAAA;IAEjB,OAAA;MACLgwB,YAAc,EAAApvB,GAAA,CAAI0xB,UAAW,CAAAzuB,IAAA,GAAO,CAAC,CAAA;MACrC0kB,QAAA,EAAU3nB,GAAI,CAAA0xB,UAAA,CAAWzuB,IAAI,CAAA;MAC7BP,MAAA,EAAQ1C,GAAI,CAAA0xB,UAAA,CAAWzuB,IAAI;IAAA,CAC7B;EAAA,CACD,CAAA;AACH;AAEA,SAAS2xB,wBAAwB3zB,KAAmB,EAAA;EAC5C,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAET,OAAAusB,GAAA,ucASQxtB,GAAI,CAAAgB,KAAA,CAAMK,MAAO,CAAAE,KAAA,CAAM,CAAE,CAAA,CAAA;AAM1C;AAEA,MAAMsuB,SAAOC,MAAO,CAAAC,GAAA,CAClB4E,iCAAA,EACAC,uBAAA,CACF;AAeO,MAAMC,aAAgB,GAAA1E,UAAA,CAAW,SAAS0E,cAAAA,CAC/C5zB,OACAyjB,GACA,EAAA;EACA,MAAM;IAACoQ,KAAA;IAAO7xB,IAAM,EAAA8vB,QAAA,GAAW;GAAK,GAAA9xB,KAAA;EAC9B,MAAAgC,IAAA,GAAOuB,aAAauuB,QAAQ,CAAA;EAClC,MAAMgC,WAAc,GAAAnwB,OAAA,CAAQ,MAAM3B,IAAA,CAAK1C,IAAK6U,CAAA,IAAOA,CAAM,KAAA,CAAA,GAAI,IAAIA,CAAI,GAAA,CAAE,CAAG,EAAA,CAACnS,IAAI,CAAC,CAAA;EAEhF,OACG,eAAAyf,GAAA,CAAAmN,MAAA,EAAA;IAAKnuB,KAAO,EAAAuB,IAAA;IAAM,SAAQ,EAAA,eAAA;IAAgByhB,GAAA;IACzCzC,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;MAAKmC,EAAG,EAAA,MAAA;MAAOpvB,IAAM,EAAA8xB,WAAA;MACpB9S,QAAC,EAAA,eAAAS,GAAA,CAAA,QAAA,EAAA;QAAQT,QAAA,EAAA6S;MAAA,CAAM;IAAA,CACjB;EAAA,CACF,CAAA;AAEJ,CAAC,CAAA;AC5EM,SAASE,uBACd/S,QACoC,EAAA;EACpC,MAAMgT,gBAAgBp0B,KAAM,CAAAC,OAAA,CAAQmhB,QAAQ,CAAI,GAAAA,QAAA,GAAW,CAACA,QAAQ,CAAA;EAEpE,OAAOgT,aAAc,CAAA9vB,MAAA,CAClB6I,QAAS7E,WAAU,CAAA6E,IAAI,KAAKknB,UAAW,CAAAlnB,IAAI,CAAK,IAAA,OAAOA,IAAS,KAAA,QAAA,CACnE;AACF;ACDA,MAAMmnB,WAAc,GAAA3H,GAAA,6MAAA;AAYpB,SAAS4H,gBAAmB,GAAA;EACnB,OAAAD,WAAA;AACT;AAEA,SAASE,+BAA+Bp0B,KAA2C,EAAA;EAC3E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACmf,MAAA;IAAQjgB;GAAK,GAAIa,KAAM,CAAAK,MAAA;EAE9B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAS,KAAA,EAAQuB,IAAS,IAAA;IACzC,MAAAyuB,UAAA,GAAatR,OAAOte,KAAM,CAAAmB,IAAA,CAAA;IAEhC,IAAI,CAACyuB,UAAA,EAAmB,OAAAtyB,YAAA;IAEjB,OAAA;MACL,eAAiB,EAAA;QACfk2B,UAAA,EAAYt1B,GAAI,CAAA0xB,UAAA,CAAWrR,QAAQ;MACrC;IAAA,CACF;EAAA,CACD,CAAA;AACH;AAEA,MAAMwP,MAAO,GAAAC,MAAA,CAAOC,GAA2B,CAAAsF,8BAAA,EAAgCD,gBAAgB,CAAA;AAgBxF,MAAMG,WAAc,GAAApF,UAAA,CAAW,SAASoF,YAAAA,CAC7Ct0B,OACAyjB,GACA,EAAA;EACM,MAAA;MACJzC,QAAU,EAAAmO,YAAA;MACVoF,WAAWC,aAAgB,GAAA,CAAA;MAC3BxyB,MAAM8vB,QAAW,GAAA;IAEf,CAAA,GAAA9xB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACE,MAAAghB,QAAA,GAAW+S,sBAAuB,CAAA5E,YAAY,CAAE,CAAAjrB,MAAA,CACnDuwB,KAAU,IAAA,OAAOA,KAAU,KAAA,QAAA,CAC9B;EACA,MAAMF,SAAY,GAAA7xB,IAAA,CAAK+R,GAAI,CAAA+f,aAAA,EAAe,CAAC,CAAA;EACrC,MAAAxyB,IAAA,GAAOuB,aAAauuB,QAAQ,CAAA;EAElC,MAAMjG,MAAM7K,QAAS,CAAA7gB,MAAA;EACrB,MAAMu0B,eAAeH,SAAY,GAAA,CAAA;EACjC,MAAMI,aAAa9I,GAAM,GAAA6I,YAAA;EACzB,MAAME,kBAAkBD,UAAa,GAAA,CAAA,GAAI3T,SAASzO,KAAM,CAAAoiB,UAAA,EAAY9I,GAAG,CAAI,GAAA7K,QAAA;EAE3E,OACG,eAAA8R,IAAA,CAAAlE,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAkBU,SAAA;IAAW7L,GAAA;IAAUhjB,KAAO,EAAAuB,IAAA;IACzDgf,QAAA,EAAA,CAAA6K,GAAA,KAAQ,oBACNpK,GAAA,CAAA,KAAA,EAAA;MACCT,QAAC,EAAA,eAAAS,GAAA,CAAAmS,aAAA,EAAA;QAAcC,KAAO,EAAAhI;MAAA,CAAK;IAAA,CAC7B,CAAA,EAGDA,GAAQ,KAAA,CAAA,IAAK8I,UAAa,GAAA,CAAA,IACxB,eAAAlT,GAAA,CAAA,KAAA,EAAA;MACCT,QAAC,EAAA,eAAAS,GAAA,CAAAmS,aAAA,EAAA;QAAcC,KAAO,EAAAc,UAAA;QAAY3yB;MAAA,CAAY;IAAA,CAChD,CAAA,EAGD4yB,eAAgB,CAAAt1B,GAAA,CAAI,CAACm1B,KAAA,EAAOI,eAC1B,eAAApT,GAAA,CAAA,KAAA,EAAA;MAA8BT,QAAa,EAAA8T,YAAA,CAAAL,KAAA,EAAO;QAACzyB;MAAA,CAAK;IAAA,CAA/C,EAAA+yB,MAAA,CAAOF,UAAU,CAAgC,CAC5D,CAAA;EAAA,GACH;AAEJ,CAAC,CAAA;AC9DD,MAAMjG,SAAOC,MAAO,CAAAC,GAAA,CAOlBnK,QAAA,EACAiC,aAAA,EACAhC,kBAAA,EACA8E,uBAAA,EACAuD,qBAAA,EACAQ,sBAAA,CACF;AAKO,MAAMuH,GAAM,GAAA9F,UAAA,CAAW,SAAS8F,IAAAA,CACrCh1B,OACAyjB,GACA,EAAA;EACM,MAAA;MACJ2N,IAAIC,MAAS,GAAA,KAAA;MACbvG,MAAA;MACAG,WAAA;MACAG,SAAA;MACA5pB,OAAU,GAAA,OAAA;MACVulB,IAAA;MACAtlB,MAAA;MACAH,MAAS,GAAA,CAAA;MACT2zB,OAAA;MACAC,OAAA;MACApyB,SAAA;MACAqyB,WAAA;MACApyB,YAAA;MACAsxB,UAAA;MACA/O,QAAA;MACAjkB,OAAU,GAAA,CAAA;MACV+zB,QAAA;MACAC,QAAA;MACAzqB,UAAA;MACAC,YAAA;MACAC,aAAA;MACAC,WAAA;MACAsf,GAAA;MACAG,QAAA;MACAG,MAAA;MACAxF;IAEE,CAAA,GAAAnlB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEJ,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IACC,SAAS,EAAA,OAAOyC,MAAW,KAAA,QAAA,GAAWA,MAAS,GAAA,KAAA,CAAA;IAC/C,SAAQ,EAAA;EAAA,GACJ/B,SAAA;IACJzE,OAAA,EAAStnB,aAAaunB,MAAM,CAAA;IAC5BE,YAAA,EAAcznB,aAAa0nB,WAAW,CAAA;IACtCE,UAAA,EAAY5nB,aAAa6nB,SAAS,CAAA;IAClCnG,QAAA,EAAU1hB,aAAa/B,OAAO,CAAA;IAC9BslB,KAAA,EAAOvjB,aAAawjB,IAAI,CAAA;IACxB3B,OAAA,EAAS7hB,aAAa9B,MAAM,CAAA;IAC5ByrB,OAAA,EAAS3pB,aAAajC,MAAM,CAAA;IAC5B6rB,QAAA,EAAU5pB,aAAa0xB,OAAO,CAAA;IAC9B7H,QAAA,EAAU7pB,aAAa2xB,OAAO,CAAA;IAC9B7H,UAAA,EAAY9pB,aAAaT,SAAS,CAAA;IAClCwqB,YAAA,EAAc/pB,aAAa4xB,WAAW,CAAA;IACtC5H,aAAA,EAAehqB,aAAaR,YAAY,CAAA;IACxCyqB,WAAA,EAAajqB,aAAa8wB,UAAU,CAAA;IACpChP,SAAA,EAAW9hB,aAAa+hB,QAAQ,CAAA;IAChCoG,QAAA,EAAUnoB,aAAalC,OAAO,CAAA;IAC9BqsB,SAAA,EAAWnqB,aAAa6xB,QAAQ,CAAA;IAChCzH,SAAA,EAAWpqB,aAAa8xB,QAAQ,CAAA;IAChCzH,WAAA,EAAarqB,aAAaqH,UAAU,CAAA;IACpCijB,aAAA,EAAetqB,aAAasH,YAAY,CAAA;IACxCijB,cAAA,EAAgBvqB,aAAauH,aAAa,CAAA;IAC1CijB,YAAA,EAAcxqB,aAAawH,WAAW,CAAA;IACtCqf,IAAA,EAAM7mB,aAAa8mB,GAAG,CAAA;IACtBE,SAAA,EAAWhnB,aAAainB,QAAQ,CAAA;IAChCE,OAAA,EAASnnB,aAAaonB,MAAM,CAAA;IAC5BzF,OAAA,EAAS3hB,aAAa4hB,MAAM,CAAA;IAC5BiM,EAAI,EAAAC,MAAA;IACJ5N,GAAA;IAECzC,QAAM,EAAAhhB,KAAA,CAAAghB;EAAA,GACT;AAEJ,CAAC,CAAA;ACzHM,SAASsU,eACdt1B,KAC4B,EAAA;EAC5B,MAAM;IAAC0uB,OAAA;IAASC,MAAQ;IAAA5uB;EAAA,CAAS,GAAAC,KAAA;EAC3B,MAAA;IAACW;EAAK,CAAA,GAAIZ,KAAM,CAAAK,MAAA;EAEf,OAAAmsB,GAAA,qWAGHmC,OACF,IAAAnC,GAAA,0HAAA,EAIEoC,MACF,IAAApC,GAAA,yHAAA,EAKiB5rB,MAAM8Z,IAAK,CAAA7Z,MAAA;AAahC;ACVA,MAAMguB,MAAO,GAAAC,MAAA,CAAOC,GAKjB,CAAA5rB,mBAAA,EAAqBC,0BAA0BmyB,cAAc,CAAA;AAEhE,MAAMvG,yBAAuBF,MAAO,CAAAG,IAAA,uKAAA;AAU7B,MAAMuG,KAAQ,GAAArG,UAAA,CAAW,SAASqG,MAAAA,CACvCv1B,OACAyjB,GACA,EAAA;EACM,MAAA;MACJlJ,MAAA;MACAsL,KAAA;MACA7E,QAAU,EAAAmO,YAAA;MACVjY,KAAQ,GAAA,KAAA;MACRlV,IAAO,GAAA,CAAA;MACPotB,YAAA;MACAC;IAEE,CAAA,GAAArvB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEJ,IAAIghB,QAAW,GAAAmO,YAAA;EAEf,IAAIC,iBAAiB,UAAY,EAAA;IAC/BpO,QAAA,GAAA,eAAYS,GAAA,CAAAsN,sBAAA,EAAA;MAAsB/N;IAAA,CAAS,CAAA;EAAA,CACtC,MAAA;IACLA,QAAA,GAAA,eAAYS,GAAA,CAAA,MAAA,EAAA;MAAMT;IAAA,CAAS,CAAA;EAC7B;EAEA,OACG,eAAAS,GAAA,CAAAmN,MAAA;IACC,SAAQ,EAAA;EAAA,GACJU,SAAA;IACJZ,OAAS,EAAAnU,MAAA;IACTnX,MAAA,EAAQG,aAAasiB,KAAK,CAAA;IAC1B8I,MAAQ,EAAAzX,KAAA;IACRzW,KAAA,EAAO8C,aAAavB,IAAI,CAAA;IACxBtB,OAAS,EAAA2uB,MAAA;IACT5L,GAAA;IAECzC;EAAA,GACH;AAEJ,CAAC,CAAA;AC5EM,SAASwU,WAAWx1B,KAAgD,EAAA;EACzE,MAAM;IAACy1B,KAAA;IAAO9I,KAAO;IAAA5sB;EAAA,CAAS,GAAAC,KAAA;EAC9B,MAAM01B,UAAU31B,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAgf,KAAA,KAAU,YAAY,OAAU,GAAA,OAAA,CAAA;EAC7D,MAAAhf,KAAA,GAAQif,OAAQ,CAAA/I,KAAA,CAAA,IAAU+I,OAAQ,CAAAte,OAAA;EAEjC,OAAA;IACLiZ,eAAA,EAAiB5Z,MAAMqB,OAAQ,CAAA2B,EAAA;IAC/BhD,KAAA,EAAOA,MAAMqB,OAAQ,CAAA4B,EAAA;IACrB4U,SAAA,4BAA8B7X,KAAA,CAAMqB,OAAQ,CAAA3E,MAAA,CAAA;IAC5CwiB,MAAQ,EAAA,SAAA;IAER,iBAAmB,EAAA;MACjBn0B,OAAS,EAAA;IACX;EAAA,CACF;AACF;ACEA,MAAMotB,MAAA,GAAOC,OAAOmG,GAAG,CAAA,CACrBhH,qBAAA,EACAwH,UAAA,CACF;AAKO,MAAMI,KAAQ,GAAA1G,UAAA,CAAW,SAAS0G,MAAAA,CACvC51B,OACAyjB,GACA,EAAA;EACM,MAAA;MACJzC,QAAA;MACAjf,QAAA;MACAoV,IAAO,GAAA,SAAA;MACP9V,OAAU,GAAA,CAAA;MACVme,MAAS,GAAA,CAAA;MACTnF,IAAO,GAAA;IAEL,CAAA,GAAAra,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEJ,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IACC,SAAQ,EAAA;EAAA,GACJU,SAAA;IACJmG,KAAO,EAAAte,IAAA;IACPwV,KAAO,EAAAtS,IAAA;IACP4T,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;IAC5Bne,OAAA,EAASkC,aAAalC,OAAO,CAAA;IAC7BoiB,GAAA;IAEAzC,QAAC,EAAA,eAAAS,GAAA,CAAA8T,KAAA,EAAA;MAAMvzB,IAAM,EAAAD,QAAA;MAAWif;IAAA,CAAS;EAAA,GACnC;AAEJ,CAAC,CAAA;AClCD,MAAM4N,MAAA,GAAOC,OAAOmG,GAAG,CAAA,CACrBpO,aAAA,EACArB,mBAAA,CACF;AAKO,MAAMsQ,IAAO,GAAA3G,UAAA,CAAW,SAAS2G,KAAAA,CACtC71B,OACAyjB,GACA,EAAA;EACM,MAAA;MAACoC;MAAOuL,EAAI;MAAA5K,SAAA,GAAY;MAAOR,GAAK;MAAAK,OAAA;MAASH;IAAS,CAAa,GAAAlmB,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAEzE,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IACC,SAAQ,EAAA;EAAA,GACJU,SAAA;IACJlsB,MAAA,EAAQG,aAAasiB,KAAK,CAAA;IAC1BU,UAAA,EAAYhjB,aAAaijB,SAAS,CAAA;IAClCT,IAAA,EAAMxiB,aAAayiB,GAAG,CAAA;IACtBI,QAAA,EAAU7iB,aAAa8iB,OAAO,CAAA;IAC9BJ,KAAA,EAAO1iB,aAAa2iB,IAAI,CAAA;IACxB4P,WAAa,EAAA1E,EAAA;IACb3N;EAAA,GACF;AAEJ,CAAC,CAAA;ACpCD,MAAMsS,QAAS,GAAAC,SAAA,uKAAA;AAUf,MAAMpH,MAAA,GAAOC,OAAOI,IAAI,CAAA,iJAEP8G,QAAA,CAAA;AAOV,MAAME,OAAU,GAAA/G,UAAA,CAAW,SAAS+G,QAAAA,CACzCj2B,OACAyjB,GACA,EAAA;EACA,OACG,eAAAhC,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAc5uB,KAAA;IAAOyjB,GAAA;IACjCzC,6BAACkV,WAAY,EAAA,EAAA;EAAA,GACf;AAEJ,CAAC,CAAA;ACnCM,SAASC,eACd,CAAAj1B,IAAA,EACAuV,KACA,EACW;EAAA,IADX2f,SAAA,uEAAY,KACD;EAVb,IAAA7uB,EAAA,EAAAO,EAAA,EAAAuuB,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA;EAWS,OAAA;IAGL,6BAAA,EAA+Bx1B,KAAK2Y,MAAO,CAAAC,OAAA;IAC3C,2BAAA,EAA6B5Y,KAAK2Y,MAAO,CAAAE,KAAA;IACzC,8BAAA,EAAgC7Y,KAAK2Y,MAAO,CAAAG,QAAA;IAC5C,6BAAA,EAA+B9Y,KAAK2Y,MAAO,CAAAI,OAAA;IAC3C,2BAA2B/Y,IAAK,CAAAyY,SAAA;IAGhC,mBAAmBlD,KAAM,CAAAgD,EAAA;IACzB,iBAAA,EAAmB2c,+CACa3f,KAAA,CAAMgD,wBAAchD,KAAM,CAAA6D,GAAA,IAAO7D,MAAMgD,EACnE,gBAAA,KAAA,CAAA;IACJ,mBAAmBhD,KAAM,CAAAiD,EAAA;IACzB,uBAAuBjD,KAAM,CAAAtD,MAAA;IAC7B,uBAAA,EAAA,CAAyB5L,EAAM,GAAAkP,KAAA,CAAAS,KAAA,KAAN,IAAa,GAAA,KAAA,CAAA,GAAA3P,EAAA,CAAAmS,EAAA;IACtC,wBAAA,EAAA,CAA0B5R,EAAM,GAAA2O,KAAA,CAAA8D,MAAA,KAAN,IAAc,GAAA,KAAA,CAAA,GAAAzS,EAAA,CAAA4R,EAAA;IACxC,sBAAA,EAAA,CAAwB2c,EAAM,GAAA5f,KAAA,CAAA+D,IAAA,KAAN,IAAY,GAAA,KAAA,CAAA,GAAA6b,EAAA,CAAA3c,EAAA;IACpC,sBAAA,EAAA,CAAwB4c,EAAM,GAAA7f,KAAA,CAAAgE,IAAA,KAAN,IAAY,GAAA,KAAA,CAAA,GAAA6b,EAAA,CAAA7c,EAAA;IACpC,sBAAA,EAAA,CAAwB8c,EAAM,GAAA9f,KAAA,CAAAgE,IAAA,KAAN,IAAY,GAAA,KAAA,CAAA,GAAA8b,EAAA,CAAA7c,EAAA;IACpC,4BAAA,EAAA,CAA8B8c,EAAM,GAAA/f,KAAA,CAAAyD,QAAA,KAAN,IAAgB,GAAA,KAAA,CAAA,GAAAsc,EAAA,CAAArc,IAAA;IAC9C,0BAAA,EAAA,CAA4Bsc,EAAM,GAAAhgB,KAAA,CAAAyD,QAAA,KAAN,IAAgB,GAAA,KAAA,CAAA,GAAAuc,EAAA,CAAArc,EAAA;IAG5C,mBAAA,EAAA,CAAqBsc,EAAM,GAAAjgB,KAAA,CAAA+D,IAAA,KAAN,IAAY,GAAA,KAAA,CAAA,GAAAkc,EAAA,CAAAhd,EAAA;IACjC,8BAA8BjD,KAAM,CAAAtD,MAAA;IACpC,8BAA8BsD,KAAM,CAAAtD;EAAA,CACtC;AACF;AC/BO,SAASwjB,gBAA+C,GAAA;EACtD,OAAApK,GAAA;AA8BT;AAEA,MAAMqK,cAAc;EAACzjB,MAAA,EAAQ;IAAC/L,KAAA,EAAO;EAAE;AAAA,CAAA;AAKhC,SAASyvB,kBACd72B,KACa,EAAA;EAjDf,IAAAuH,EAAA,EAAAO,EAAA;EAkDQ,MAAA;IAAC2tB,KAAO;IAAA11B;EAAS,CAAA,GAAAC,KAAA;EACjB,MAAA;IAAC2Z;EAAS,CAAA,GAAI5Z,KAAM,CAAAK,MAAA;EACpB,MAAAc,IAAA,GAAOnB,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAvV,IAAA;EAC1B,MAAAiW,IAAA,GAAOpX,MAAMK,MAAO,CAAAqW,KAAA,CAAMY,OAAOoe,KAAU,CAAA,IAAA11B,KAAA,CAAMK,MAAO,CAAAqW,KAAA,CAAMY,MAAO,CAAAD,OAAA;EAC3E,MAAMX,KAAQ,GAAAU,IAAA,CAAKnX,KAAM,CAAA2sB,KAAA,CAAA,IAAUxV,IAAK,CAAAC,OAAA;EACxC,MAAMjE,SAAS;IAAC/L,KAAA,EAAOwvB,YAAYzjB,MAAO,CAAA/L,KAAA;IAAOqP,OAAO;GAA0B;EAE3E,OAAA,CACL0f,eAAA,CAAgBj1B,IAAM,EAAAuV,KAAA,CAAMqB,OAAO,CAAA,EACnC;IACEuY,eAAiB,EAAA,sBAAA;IACjB5Z,KAAO,EAAA,sBAAA;IACP6X,SAAA,EAAWtH,qBAAqB7T,MAAM,CAAA;IACtC,qCAAuC,EAAAgjB,eAAA,CAAgBj1B,IAAM,EAAAuV,KAAA,CAAMwB,QAAQ,CAAA;IAC3E,+BAAiC,EAAA;MAC/B,SAAW,EAAA;QACTqW,WAAWrH,cAAe,CAAA;UAAC/lB,IAAM;UAAAiS,MAAA;UAAQwG;SAAU;MACrD,CAAA;MACA,6BAA+B,EAAA;QAC7B2U,SAAA,EAAWtH,qBAAqB7T,MAAM;MACxC,CAAA;MACA,uBAAyB,EAAA;QACvB,SAAW,EAAAgjB,eAAA,CAAgBj1B,IAAM,EAAAuV,KAAA,CAAMyB,OAAO,CAAA;QAC9C,UAAY,EAAAie,eAAA,CAAgBj1B,IAAM,EAAAuV,KAAA,CAAM0B,OAAO;MACjD,CAAA;MACA,kBAAoB,EAAAge,eAAA,CAAgBj1B,IAAM,EAAAuV,KAAA,CAAM0B,OAAO;IACzD;EACF,CAAA,EAAA,CACArQ,EAAM,GAAA,CAAAP,EAAA,GAAAxH,KAAA,CAAAK,MAAA,CAAOgsB,MAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA7kB,EAAA,CAAqB8P,WAArB,IAA6B,GAAA,KAAA,CAAA,GAAAvP,EAAA,CAAAia,IAAA,CAC/B,CAAE7d,OAAOC,OAAO,CAAA;AAClB;AC3CA,MAAMyqB,MAAO,GAAAC,MAAA,CAAOxX,MAElB,CAAA2W,qBAAA,EAAuB2I,kBAAkBE,iBAAiB,CAAA;AAE5D,MAAMC,aAAajI,MAAO,CAAAC,GAAA,uUAAA;AAkBnB,MAAMiI,MAAS,GAAA7H,UAAA,CAAW,SAAS6H,OAAAA,CACxC/2B,OACAyjB,GACA,EAAA;EACM,MAAA;MACJzC,QAAA;MACA/I,QAAA;MACAlW,QAAA;MACAi1B,IAAA;MACAC,SAAA;MACA5Q,SAAS6Q,WAAc,GAAA,QAAA;MACvBC,OAAA;MACAhgB,IAAO,GAAA,SAAA;MACP9V,SAAS+1B,WAAc,GAAA,CAAA;MACvBhC,QAAU,EAAAiC,YAAA;MACVhC,QAAU,EAAAiC,YAAA;MACV1sB,UAAY,EAAA2sB,cAAA;MACZzsB,aAAe,EAAA0sB,iBAAA;MACfzsB,WAAa,EAAA0sB,eAAA;MACb5sB,YAAc,EAAA6sB,gBAAA;MACdlY,QAAQmY,UAAa,GAAA,CAAA;MACrBvf,QAAA;MACA9X,OAAOs3B,SAAY,GAAA,CAAA;MACnB3Y,IAAA;MACA5b,SAAA;MACAgX,IAAO,GAAA,SAAA;MACP5R,IAAO,GAAA;IAEL,CAAA,GAAAzI,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEE,MAAAqmB,OAAA,GAAU9iB,aAAa2zB,WAAW,CAAA;EAClC,MAAA71B,OAAA,GAAUkC,aAAa6zB,WAAW,CAAA;EAClC,MAAAhC,QAAA,GAAW7xB,aAAa8zB,YAAY,CAAA;EACpC,MAAAhC,QAAA,GAAW9xB,aAAa+zB,YAAY,CAAA;EACpC,MAAA1sB,UAAA,GAAarH,aAAag0B,cAAc,CAAA;EACxC,MAAAzsB,aAAA,GAAgBvH,aAAai0B,iBAAiB,CAAA;EAC9C,MAAAzsB,WAAA,GAAcxH,aAAak0B,eAAe,CAAA;EAC1C,MAAA5sB,YAAA,GAAetH,aAAam0B,gBAAgB,CAAA;EAC5C,MAAAlY,MAAA,GAASjc,aAAao0B,UAAU,CAAA;EAChC,MAAAr3B,KAAA,GAAQiD,aAAaq0B,SAAS,CAAA;EAEpC,MAAM73B,QAAQiiB,QAAS,EAAA;EAEvB,MAAM6V,QAAW,GAAAl0B,OAAA,CACf,OAAO;IAELtC,OAAA;IACA+zB,QAAA;IACAC,QAAA;IACAzqB,UAAA;IACAE,aAAA;IACAC,WAAA;IACAF;EAAA,CACF,CAAA,EACA,CAACxJ,OAAS,EAAA+zB,QAAA,EAAUC,UAAUzqB,UAAY,EAAAE,aAAA,EAAeC,aAAaF,YAAY,CAAA,CACpF;EAEA,OACG,eAAAioB,IAAA,CAAAlE,MAAA;IACC,SAAQ,EAAA;EAAA,GACJU,SAAA;IACJmG,KAAO,EAAAte,IAAA;IACP8W,OAAS,EAAAzO,MAAA;IACTmN,KAAO,EAAAtS,IAAA;IACP,eAAA,EAAelW,OAAQ,CAAAgzB,OAAA,IAAWlf,QAAQ,CAAA;IAC1C,eAAA,EAAeG,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/BH,QAAA,EAAU9T,OAAQ,CAAAgzB,OAAA,IAAWlf,QAAQ,CAAA;IACrCwL,GAAA;IACAhb,IAAA;IAECuY,QAAA,EAAA,CAAQ7c,OAAA,CAAAgzB,OAAO,oBACb1V,GAAA,CAAAqV,UAAA,EAAA;MACC9V,6BAACiV,OAAQ,EAAA,EAAA;IAAA,CACX,CAAA,EAGA,CAAAe,IAAA,IAAQ/X,IAAQ,IAAAgY,SAAA,KACf,eAAAxV,GAAA,CAAAuT,GAAA;MAAI5D,EAAG,EAAA;IAAA,GAAWyG,QAAA;MACjB7W,QAAC,EAAA,eAAA8R,IAAA,CAAA+C,IAAA,EAAA;QAAKzE,EAAG,EAAA,MAAA;QAAO/K,OAAA;QACbrF,QAAA,EAAA,CAAAgW,IAAA,IAAA,eACElE,IAAA,CAAA7D,IAAA,EAAA;UAAKjtB,IAAM,EAAAD,QAAA;UACTif,QAAA,EAAA,CAAA8W,cAAA,CAAed,IAAI,CAAK,IAAAA,IAAA,EACxBhF,kBAAmB,CAAAgF,IAAI,CAAK,IAAAe,aAAA,CAAcf,IAAI,CAAA;QAAA,CACjD,CAAA,EAGD/X,uBACEwC,GAAA,CAAAuT,GAAA,EAAA;UACCjO,IAAA,EAAMkQ,YAAY,CAAI,GAAA,KAAA,CAAA;UACtB5C,UAAA,EAAY2C,OAAO12B,KAAQ,GAAA,KAAA,CAAA;UAC3B60B,WAAA,EAAa8B,YAAY32B,KAAQ,GAAA,KAAA,CAAA;UAEjC0gB,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;YACCpJ,KAAO,EAAAxiB,SAAA;YACPrB,IAAM,EAAAD,QAAA;YACNqtB,YAAa,EAAA,UAAA;YACbC,MAAA,EAAQtvB,KAAM,CAAAK,MAAA,CAAOiX,MAAO,CAAAgI,UAAA;YAE3B2B,QAAA,EAAA/B;UAAA,CACH;QAAA,CACF,CAAA,EAGDgY,4BACEnE,IAAA,CAAA7D,IAAA,EAAA;UAAKjtB,IAAM,EAAAD,QAAA;UACTif,QAAA,EAAA,CAAA8W,cAAA,CAAeb,SAAS,CAAK,IAAAA,SAAA,EAC7BjF,kBAAmB,CAAAiF,SAAS,CAAK,IAAAc,aAAA,CAAcd,SAAS,CAAA;QAAA,CAC3D,CAAA;MAAA,CAEJ;IAAA,GACF,EAGDjW,2BACES,GAAA,CAAAuT,GAAA;MAAI5D,EAAG,EAAA;IAAA,GAAWyG,QAAA;MAChB7W;IAAA,GACH;EAAA,GAEJ;AAEJ,CAAC,CAAA;AC7KM,SAASgX,UACdh4B,KACwE,EAAA;EACxE,OAAO,CAACi4B,aAAc,CAAAj4B,KAAK,CAAG,EAAAk4B,cAAA,CAAel4B,KAAK,CAAC,CAAA;AACrD;AAEO,SAASi4B,cAAcj4B,KAAgE,EAAA;EACtF,MAAA;IAACm4B,UAAY;IAAAp4B;EAAS,CAAA,GAAAC,KAAA;EACtB,MAAAM,KAAA,GAAQP,MAAMK,MAAO,CAAAE,KAAA;EAEpB,OAAAisB,GAAA,geACH4L,UACF,IAAA5L,GAAA,2MACqBjsB,KAAA,CAAM,IAAQA,KAAM,CAAA,CAAA,CAAA,CAAA;AA0B7C;AAEO,SAAS43B,eAAel4B,KAAgE,EAAA;EA/C/F,IAAAuH,EAAA,EAAAO,EAAA;EAgDE,MAAM;IAACqwB,UAAA;IAAYC,UAAY;IAAAr4B;EAAA,CAAS,GAAAC,KAAA;EAClC,MAAA;IAAC2Z;EAAS,CAAA,GAAI5Z,KAAM,CAAAK,MAAA;EAC1B,MAAM;IAACc,IAAM;IAAA6W,IAAA;IAAMf;EAAI,CAAA,GAAIjX,MAAMK,MAAO,CAAAqW,KAAA;EACxC,MAAMtD,MAAS,GAAA;IAAC/L,KAAO,EAAA,CAAA;IAAGqP,OAAO;EAA0B,CAAA;EAEpD,OAAA8V,GAAA,6sDACWvV,OAAO,MAAS,GAAA,OAAA,EAE9Bmf,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAD,OAAA,EAASqgB,UAAU,CAAA,EAa1ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAE,QAAA,EAAUkgB,UAAU,CAAA,EAK7ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAI,OAAA,EAASggB,UAAU,CAAA,EAI9ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAK,QAAA,EAAU+f,UAAU,CAAA,EAM3ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAG,OAAA,EAASigB,UAAU,CAAA,EAI9ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAI,OAAA,EAASggB,UAAU,CAAA,EAMpBC,aAC5BnR,cAAe,CAAA;IAAC/lB;IAAMiS,MAAQ;IAAAwG;EAAU,CAAA,CACxC,GAAA,KAAA,CAAA,EAI4Bye,UAAA,GAAapR,oBAAqB,CAAA7T,MAAM,CAAI,GAAA,KAAA,CAAA,EAW5EgjB,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAE,QAAA,EAAUkgB,UAAU,CAAA,EAK7ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAI,OAAA,EAASggB,UAAU,CAAA,EAI9ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAK,QAAA,EAAU+f,UAAU,CAAA,EAM3ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAG,OAAA,EAASigB,UAAU,CAAA,EAI9ChC,eAAgB,CAAAj1B,IAAA,EAAM6W,IAAK,CAAAI,OAAA,EAASggB,UAAU,CAAA,EAMpBC,aAC5BnR,cAAe,CAAA;IAAC/lB;IAAMiS,MAAQ;IAAAwG;EAAU,CAAA,CACxC,GAAA,KAAA,CAAA,EAI4Bye,UAAA,GAAapR,oBAAqB,CAAA7T,MAAM,CAAI,GAAA,KAAA,CAAA,EAAA,CAKhFrL,EAAM,GAAA,CAAAP,EAAA,GAAAxH,KAAA,CAAAK,MAAA,CAAOgsB,MAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA7kB,EAAA,CAAqBwQ,SAArB,IAA2B,GAAA,KAAA,CAAA,GAAAjQ,EAAA,CAAAia,IAAA;AAEjC;AC3GA,MAAM6M,SAAOC,MAAO,CAAAmG,GAAG,EAKrBjR,qBAAuB,EAAAiK,qBAAA,EAAuBO,uBAAuByJ,SAAS,CAAA;AAKzE,MAAMK,IAAO,GAAAnJ,UAAA,CAAW,SAASmJ,KAAAA,CACtCr4B,OACAyjB,GACA,EAAA;EACM,MAAA;MACJ6U,sBAAsBlC,SAAY,GAAA,KAAA;MAClCmC,sBAAsB5e,SAAY,GAAA,KAAA;MAClCyX,EAAI,EAAAC,MAAA;MACJle,MAAA;MACAnI,SAAA;MACAE,WAAA;MACAE,YAAA;MACAE,UAAA;MACA6M,OAAA;MACAqH,MAAS,GAAA,CAAA;MACTyB,MAAA;MACA7I,QAAA;MACAyB,MAAA;MACAQ,MAAMme,QAAW,GAAA;IAEf,CAAA,GAAAx4B,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEJ,MAAMoxB,EAAK,GAAAY,kBAAA,CAAmBX,MAAM,CAAA,GAAIA,MAAS,GAAA,KAAA;EACjD,MAAMoH,YAAY5W,YAAa,EAAA;EAC/B,MAAMxH,IAAO,GAAAme,QAAA,KAAa,SAAY,GAAAC,SAAA,CAAUpe,IAAO,GAAAme,QAAA;EAEvD,OACG,eAAA/W,GAAA,CAAAK,kBAAA,EAAA;IAAmBb,MAAA;IAAgB5G,IAAA;IAClC2G,QAAC,EAAA,eAAAS,GAAA,CAAAmN,MAAA;MACC,SAAS,EAAA,OAAOwC,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;MACvC,eAAaqH,SAAU,CAAAxX,MAAA;MACvB,SAAQ,EAAA,MAAA;MACR,WAAW,EAAA5G;IAAA,GACPiV,SAAA;MACJtL,OAAA,EAASzgB,aAAa4P,MAAM,CAAA;MAC5B8Q,UAAA,EAAY1gB,aAAayH,SAAS,CAAA;MAClCkZ,YAAA,EAAc3gB,aAAa2H,WAAW,CAAA;MACtCiZ,aAAA,EAAe5gB,aAAa6H,YAAY,CAAA;MACxCgZ,WAAA,EAAa7gB,aAAa+H,UAAU,CAAA;MACpC6sB,UAAY,EAAA/B,SAAA;MACZgC,UAAY,EAAAze,SAAA;MACZsU,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;MAC5BgP,OAAA,EAASjrB,aAAasW,MAAM,CAAA;MAC5B8S,KAAO,EAAAtS,IAAA;MACP,gBAAA,EAAgB+b,YAAY,EAAK,GAAA,KAAA,CAAA;MACjC,cAAA,EAAcje,UAAU,EAAK,GAAA,KAAA,CAAA;MAC7B,eAAA,EAAeC,WAAW,EAAK,GAAA,KAAA,CAAA;MAC/B0d,WAAa,EAAA1E,EAAA;MACb3N,GAAA;MACArL;IAAA;EACF,CACF,CAAA;AAEJ,CAAC,CAAA;ACrGM,SAASsgB,kBAAiD,GAAA;EACxD,OAAAnM,GAAA;AAIT;AAEO,SAASoM,mBAAmB34B,KAA+C,EAAA;EAC1E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAAyW,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAiE,KAAA;EACjC,MAAM;IAACf,SAAA;IAAWe,KAAO;IAAA8E;EAAA,IAAUzf,KAAM,CAAAK,MAAA;EAElC,OAAAmsB,GAAA,kzCAeOxtB,GAAA,CAAI2b,KAAM,CAAAgF,QAAA,CAAS1d,IAAI,CAAA,EACxBjD,GAAA,CAAI2b,KAAM,CAAAgF,QAAA,CAAS1d,IAAI,CAAA,EAElBglB,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQU,OAAQ,CAAA3E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EACgBrI,GAAA,CAAIygB,OAAO,CAAE,CAAA,CAAA,EAEV/I,KAAA,CAAMW,QAAQU,OAAQ,CAAA2B,EAAA,EAiB5BwN,cAAe,CAAA;IAC3B9T,MAAA,EAAQ;MAAC/L,KAAA,EAAOsT,KAAM,CAAAvH,MAAA,CAAO/L;MAAOqP,KAAO,EAAAA,KAAA,CAAMW,OAAQ,CAAAU,OAAA,CAAQ3E;IAAM,CAAA;IACvEwG;EAAA,CACD,CAAA,EAIaqN,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQU,OAAQ,CAAA3E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAQmBqP,KAAA,CAAMW,QAAQgG,QAAS,CAAA3D,EAAA,EAC7BuN,oBAAqB,CAAA;IACjC5f,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L,KAAA;IACpBqP,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQgG,QAAS,CAAAjK;EAAA,CAC/B,CAAA,EACQsD,KAAA,CAAMW,QAAQgG,QAAS,CAAA1D,EAAA,EAIZjD,KAAA,CAAMW,QAAQa,QAAS,CAAAwB,EAAA,EAC7BuN,oBAAqB,CAAA;IACjC5f,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L,KAAA;IACpBqP,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQa,QAAS,CAAA9E;EAAA,CAC/B,CAAA,EACQsD,KAAA,CAAMW,QAAQa,QAAS,CAAAyB,EAAA;AAOtC;AClFA,MAAMkV,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAI4J,kBAAkB,CAAA;AAC1C,MAAME,OAAA,GAAQ/J,MAAO,CAAAnU,KAAA,CAAMie,kBAAkB,CAAA;AAKtC,MAAME,QAAW,GAAA3J,UAAA,CAAW,SAAS2J,SAAAA,CAC1C74B,OACA84B,YACA,EAAA;EACM,MAAA;MACJC,OAAA;MACAvd,SAAA;MACAvD,QAAA;MACA+gB,aAAA;MACApV,cAAA;MACAxG,QAAA;MACAve;IAEE,CAAA,GAAAmB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACE,MAAAyjB,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExCnV,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC/e,SAAA,CAAU,MAAM;IACd,IAAI4e,IAAI1e,OAAS,EAAA;MAEX0e,GAAA,CAAA1e,OAAA,CAAQi0B,gBAAgBA,aAAiB,IAAA,KAAA;IAC/C;EAAA,CACC,EAAA,CAACA,aAAe,EAAAvV,GAAG,CAAC,CAAA;EAEvB,OACG,eAAAqP,IAAA,CAAAlE,MAAA,EAAA;IAAKpT,SAAA;IAAsB,SAAQ,EAAA,UAAA;IAAW3c,KAAA;IAC7CmiB,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmX,OAAA;MACC,gBAAgB,EAAA,CAAC3gB,QAAY,IAAAmF,QAAA,GAAW,EAAK,GAAA,KAAA;IAAA,GACzCkS,SAAA;MACJyJ,OAAA;MACA9gB,UAAUA,QAAY,IAAAmF,QAAA;MACtB3U,IAAK,EAAA,UAAA;MACL2U,QAAA;MACAqG;IAAA,GACF,EACC,eAAAqP,IAAA,CAAA,MAAA,EAAA;MACC9R,QAAA,EAAA,CAAA,eAAAS,GAAA,CAACwX,aAAc,EAAA,EAAA,CAAA,EAAA,mBACdC,UAAW,EAAA,EAAA,CAAA;IAAA,CACd,CAAA;EAAA,CACF,CAAA;AAEJ,CAAC,CAAA;AC1DD,SAASC,2BAAA,SAAiD;EAAA,IAArB;IAACp5B;GAAoB;EAClD,MAAA0W,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAqE,MAAA;EAE1B,OAAA;IACL,UAAY,EAAA;MAACrE,KAAO,EAAAA,KAAA,CAAMsE;IAAM,CAAA;IAChC,aAAe,EAAA;MAACtE,KAAO,EAAAA,KAAA,CAAMuE;IAAQ,CAAA;IACrC,cAAgB,EAAA;MAACvE,KAAO,EAAAA,KAAA,CAAMwE;IAAS,CAAA;IACvC,aAAe,EAAA;MAACxE,KAAO,EAAAA,KAAA,CAAMyE;IAAS,CAAA;IACtC,WAAa,EAAA;MAACzE,KAAO,EAAAA,KAAA,CAAM0E;IAAO,CAAA;IAClC,WAAa,EAAA;MAAC1E,KAAO,EAAAA,KAAA,CAAM2E;IAAO,CAAA;IAClC,SAAW,EAAA;MAAC3E,KAAO,EAAAA,KAAA,CAAM4E;IAAK,CAAA;IAC9B,QAAU,EAAA;MAAC5E,KAAO,EAAAA,KAAA,CAAM6E;IAAI,CAAA;IAC5B,SAAW,EAAA;MAAC7E,KAAO,EAAAA,KAAA,CAAM8E;IAAK,CAAA;IAC9B,cAAgB,EAAA;MAAC9E,KAAO,EAAAA,KAAA,CAAM+E;IAAS,CAAA;IACvC,WAAa,EAAA;MAAC/E,KAAO,EAAAA,KAAA,CAAMgF;IAAO,CAAA;IAClC,YAAc,EAAA;MAAChF,KAAO,EAAAA,KAAA,CAAMiF;IAAQ,CAAA;IACpC,WAAa,EAAA;MAACjF,KAAO,EAAAA,KAAA,CAAMkF;IAAO,CAAA;IAClC,WAAa,EAAA;MAAClF,KAAO,EAAAA,KAAA,CAAMmF;IAAO,CAAA;IAClC,UAAY,EAAA;MAACnF,KAAO,EAAAA,KAAA,CAAMoF;IAAM,CAAA;IAChC,YAAc,EAAA;MAACpF,KAAO,EAAAA,KAAA,CAAMqF;IAAQ,CAAA;IACpC,WAAa,EAAA;MAACrF,KAAO,EAAAA,KAAA,CAAMsF;IAAO,CAAA;IAClC,MAAQ,EAAA;MAACtF,KAAO,EAAAA,KAAA,CAAMuF;IAAE,CAAA;IACxB,aAAe,EAAA;MAACvF,KAAO,EAAAA,KAAA,CAAMwF;IAAS,CAAA;IACtC,YAAc,EAAA;MAACxF,KAAO,EAAAA,KAAA,CAAMyF;IAAQ,CAAA;IACpC,WAAa,EAAA;MAACzF,KAAO,EAAAA,KAAA,CAAM0F;IAAO,CAAA;IAClC,UAAY,EAAA;MAAC1F,KAAO,EAAAA,KAAA,CAAM2F;IAAM,CAAA;IAChC,YAAc,EAAA;MAAC3F,KAAO,EAAAA,KAAA,CAAM4F;IAAQ,CAAA;IACpC,UAAY,EAAA;MAAC5F,KAAO,EAAAA,KAAA,CAAM6F;IAAM,CAAA;IAChC,YAAc,EAAA;MAAC7F,KAAO,EAAAA,KAAA,CAAM8F;IAAQ,CAAA;IACpC,gBAAkB,EAAA;MAAC9F,KAAO,EAAAA,KAAA,CAAM+F;IAAW,CAAA;IAC3C,kBAAoB,EAAA;MAAC/F,KAAO,EAAAA,KAAA,CAAMgG;IAAa,CAAA;IAC/C,eAAiB,EAAA;MAAChG,KAAO,EAAAA,KAAA,CAAMiG;IAAW,CAAA;IAC1C,SAAW,EAAA;MAACjG,KAAO,EAAAA,KAAA,CAAMkG;IAAK,CAAA;IAC9B,YAAc,EAAA;MAAClG,KAAO,EAAAA,KAAA,CAAMmG;IAAQ,CAAA;IACpC,UAAY,EAAA;MAACnG,KAAO,EAAAA,KAAA,CAAMoG;IAAM,CAAA;IAChC,UAAY,EAAA;MAACpG,KAAO,EAAAA,KAAA,CAAMqG;IAAM,CAAA;IAChC,OAAS,EAAA;MAACrG,KAAO,EAAAA,KAAA,CAAMsG;IAAG,CAAA;IAC1B,QAAU,EAAA;MAACtG,KAAO,EAAAA,KAAA,CAAMuG;IAAI,CAAA;IAC5B,OAAS,EAAA;MAACvG,KAAO,EAAAA,KAAA,CAAMwG;IAAG,CAAA;IAC1B,YAAc,EAAA;MAACxG,KAAO,EAAAA,KAAA,CAAMyG;IAAQ;EAAA,CACtC;AACF;AAEO,SAASkc,aAA+D,GAAA;EACtE,OAAA7M,GAAA,6YAOC4M,2BAAA;AAcV;ACpDA,MAAMvK,MAAO,GAAAC,MAAA,CAAOwK,GAA8B,CAAAD,aAAA,EAAep2B,uBAAuB,CAAA;AAKjF,MAAMs2B,IAAO,GAAApK,UAAA,CAAW,SAASoK,KAAAA,CACtCt5B,OACAyjB,GACA,EAAA;EACM,MAAA;MAACzC;MAAUuY,QAAU,EAAAC,YAAA;MAAcx3B,OAAO,CAAG;MAAAqtB;IAAwB,CAAA,GAAArvB,KAAA;IAAbsvB,qCAAatvB,KAAA;EAC3E,MAAMu5B,QAAW,GAAA,OAAOC,YAAiB,KAAA,QAAA,GAAWA,YAAe,GAAA,KAAA,CAAA;EACnE,MAAMC,UAAa,GAAAF,QAAA,GAAWG,SAAU,CAAAC,WAAA,CAAYJ,QAAe,CAAI,GAAA,KAAA;EAEvE,OACG,eAAAzG,IAAA,CAAAlE,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAWU,SAAA;IAAW7uB,KAAA,EAAO8C,aAAavB,IAAI,CAAA;IAAGtB,OAAS,EAAA2uB,MAAA;IAAQ5L,GAAA;IAC7EzC,QAAA,EAAA,CAAE,EAAAuY,QAAA,IAAYE,eAAgB,eAAAhY,GAAA,CAAA,MAAA,EAAA;MAAMT;IAAA,CAAS,CAAA,EAC7CuY,QAAA,IAAYE,6BAAehY,GAAA,CAAAiY,SAAA,EAAA;MAAUE,MAAM,EAAA,IAAA;MAACL,QAAA;MAAoB56B,KAAA,EAAOo2B,OAAO/T,QAAQ;IAAA,CAAG,CAAA;EAAA,GAC5F;AAEJ,CAAC,CAAA;AChCD,MAAMqD,YAAwB,GAAA;EAC5Bjd,KAAO,EAAA,MAAA;EACP9F,MAAQ,EAAA;AACV,CAAA;AAEO,SAASu4B,kBAAgC,GAAA;EACvC,OAAAxV,YAAA;AACT;AAEO,SAASyV,8BACd95B,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACsf,SAAA;IAAWpgB;GAAK,GAAIa,KAAM,CAAAK,MAAA;EAEjC,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA+5B,MAAA,EAASr6B,GAAS,KAAA;IAChDs6B,UAAUt6B,GAAQ,KAAA,MAAA,GAAS,MAAS,GAAAX,GAAA,CAAIugB,UAAU5f,GAAI,CAAA;EACtD,CAAA,CAAA,CAAA;AACJ;ACTA,MAAMkvB,MAAA,GAAOC,OAAOmG,GAAG,CAAA,CACrB6E,kBAAA,EACAC,6BAAA,CACF;AAKO,MAAMG,SAAY,GAAA/K,UAAA,CAAW,SAAS+K,UAAAA,CAC3Cj6B,OACAyjB,GACA,EAAA;EACA,MAAM;MAAC2N,EAAA;MAAIhqB,KAAQ,GAAA;IAAmB,CAAA,GAAApH,KAAA;IAAbsvB,qCAAatvB,KAAA;EAEtC,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IACC,SAAQ,EAAA;EAAA,GACJU,SAAA;IACJyK,MAAA,EAAQx2B,aAAa6D,KAAK,CAAA;IAC1B0uB,WAAa,EAAA1E,EAAA;IACb3N;EAAA,GACF;AAEJ,CAAC,CAAA;ACxBD,MAAMmL,MAAO,GAAAC,MAAA,CAAOmG,GAAG,CAAA,CAA4BrN,mBAAmB,CAAA;AAK/D,MAAMuS,IAAO,GAAAhL,UAAA,CAAW,SAASgL,KAAAA,CACtCl6B,OACAyjB,GACA,EAAA;EACA,MAAM;MAAC2N,EAAA;MAAI5I,QAAU;MAAAG,QAAA;MAAUN,QAAU;MAAAS,OAAA;MAAS9C,GAAK;MAAAqD,IAAA;MAAMG,IAAM;MAAAP,IAAA;MAAMjI;IAAa,CACpF,GAAAhhB,KAAA;IADoFsvB,SAAA,4BACpFtvB,KAAA;EAEF,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IACC,SAAS,EAAA,OAAOwC,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA;EAAA,GACJ9B,SAAA;IACJ/G,SAAA,EAAWhlB,aAAailB,QAAQ,CAAA;IAChCE,SAAA,EAAWnlB,aAAaolB,QAAQ,CAAA;IAChCP,SAAA,EAAW7kB,aAAa8kB,QAAQ,CAAA;IAChCQ,QAAA,EAAUtlB,aAAaulB,OAAO,CAAA;IAC9B/C,IAAA,EAAMxiB,aAAayiB,GAAG,CAAA;IACtBoD,KAAA,EAAO7lB,aAAa8lB,IAAI,CAAA;IACxBE,KAAA,EAAOhmB,aAAaimB,IAAI,CAAA;IACxBR,KAAA,EAAOzlB,aAAa0lB,IAAI,CAAA;IACxB6M,WAAa,EAAA1E,EAAA;IACb3N,GAAA;IAECzC;EAAA,GACH;AAEJ,CAAC,CAAA;ACvCM,SAASmZ,iBACdn6B,KAC4B,EAAA;EAC5B,MAAM;IAAC0uB,OAAA;IAASC,MAAQ;IAAA5uB;EAAA,CAAS,GAAAC,KAAA;EAE1B,OAAAusB,GAAA,krBACHmC,OACF,IAAAnC,GAAA,0HAAA,EAIEoC,MACF,IAAApC,GAAA,yHAAA,EAKiBxsB,KAAA,CAAMK,MAAO,CAAAO,KAAA,CAAM8Z,IAAK,CAAA7Z,MAAA;AA6B7C;AClBA,MAAMguB,MAAO,GAAAC,MAAA,CAAOC,GAElB,CAAAqL,gBAAA,EAAkBh3B,0BAA0BF,qBAAqB,CAAA;AAEnE,MAAM8rB,uBAAuBF,MAAO,CAAAG,IAAA,uKAAA;AAU7B,MAAMoL,OAAU,GAAAlL,UAAA,CAAW,SAASkL,QAAAA,CACzCp6B,OACAyjB,GACA,EAAA;EACM,MAAA;MACJlJ,MAAS,GAAA,KAAA;MACTsL,KAAA;MACA7E,QAAU,EAAAmO,YAAA;MACVjY,KAAQ,GAAA,KAAA;MACRlV,IAAO,GAAA,CAAA;MACPotB,YAAA;MACAC;IAEE,CAAA,GAAArvB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEJ,IAAIghB,QAAW,GAAAmO,YAAA;EAEf,IAAIC,iBAAiB,UAAY,EAAA;IAC/BpO,QAAA,GAAA,eAAYS,GAAA,CAAAsN,oBAAA,EAAA;MAAsB/N;IAAA,CAAS,CAAA;EAC7C;EAEA,OACG,eAAAS,GAAA,CAAAmN,MAAA;IACC,SAAQ,EAAA;EAAA,GACJU,SAAA;IACJZ,OAAS,EAAAnU,MAAA;IACTnX,MAAA,EAAQG,aAAasiB,KAAK,CAAA;IAC1B8I,MAAQ,EAAAzX,KAAA;IACRzW,KAAA,EAAO8C,aAAavB,IAAI,CAAA;IACxBtB,OAAS,EAAA2uB,MAAA;IACT5L,GAAA;IAEAzC,QAAC,EAAA,eAAAS,GAAA,CAAA,MAAA,EAAA;MAAMT;IAAA,CAAS;EAAA,GAClB;AAEJ,CAAC,CAAA;AC7EM,SAASqZ,eAA6B,GAAA;EACpC,OAAA;IACLh4B,UAAY,EAAA,CAAA;IAEZ,kBAAoB,EAAA;MAClBb,OAAS,EAAA;IACX,CAAA;IAEA,SAAW,EAAA;MACTA,OAAS,EAAA,cAAA;MACT84B,aAAe,EAAA;IACjB;EAAA,CACF;AACF;AAEO,SAASC,iBAAiBv6B,KAAkE,EAAA;EAC3F,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAEhB,OAAOf,YAAYc,KAAM,CAAAK,MAAA,CAAOlB,OAAOc,KAAM,CAAA2rB,MAAA,EAAStrB,UAAe,IAAA;IACnE,MAAMC,KAAQ,GAAAvB,GAAA,CAAIgB,KAAM,CAAAK,MAAA,CAAOE,MAAMD,UAAW,CAAA,CAAA;IAEzC,OAAA;MACLiB,MAAA,aAAYhB,KAAc,mBAAAA,KAAA,CAAA;MAC1B,SAAW,EAAA;QAACe,OAAS,YAAGf,uBAAaA,KAAO;MAAA;IAAA,CAC9C;EAAA,CACD,CAAA;AACH;ACfA,MAAMsuB,MAAO,GAAAC,MAAA,CAAOmG,GAAG,CAAA,CAAmCqF,iBAAiBE,gBAAgB,CAAA;AAKpF,MAAMC,MAAS,GAAAtL,UAAA,CAAW,SAASsL,OAAAA,CACxCx6B,OACAyjB,GACA,EAAA;EACA,MAAM;MAAC2N,EAAI;MAAApQ,QAAA,EAAUmO,YAAc;MAAA7uB;IAAuB,CAAA,GAAAN,KAAA;IAAbsvB,qCAAatvB,KAAA;EAE1D,MAAMghB,QAAW,GAAArd,OAAA,CACf,MACEowB,sBAAuB,CAAA5E,YAAY,CAChC,CAAAjrB,MAAA,CAAOC,OAAO,CAAA,CACd7E,GAAI,CAAA,CAACm1B,KAAO,EAAA/gB,GAAA,KAAS,eAAA+N,GAAA,CAAA,KAAA,EAAA;IAAeT,QAAA,EAAAyT;EAAA,CAAA,EAAN/gB,GAAY,CAAM,CAAA,EACrD,CAACyb,YAAY,CAAA,CACf;EAEA,OACG,eAAA1N,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAaU,SAAA;IAAW3D,MAAA,EAAQpoB,aAAajD,KAAK,CAAA;IAAGw1B,WAAa,EAAA1E,EAAA;IAAI3N,GAAA;IACjFzC;EAAA,GACH;AAEJ,CAAC,CAAA;ACtBD,SAASyZ,QAAW,GAAA;EACX,OAAAlO,GAAA;AAST;AAEA,MAAMqC,MAAO,GAAAC,MAAA,CAAO6L,GAAgC,CAAA1M,qBAAA,EAAuByM,QAAQ,CAAA;AAK5E,MAAME,GAAM,GAAAzL,UAAA,CAAW,SAASyL,IAAAA,CACrC36B,OACAyjB,GACA,EAAA;EACM,MAAA;MAACzC;MAAUjf,QAAW,GAAA,CAAA;MAAGV,UAAU,CAAG;MAAAme,MAAA,GAAS;IAAM,CAAa,GAAAxf,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAExE,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAUU,SAAA;IAAWrB,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;IAAGiE,GAAA;IAChEzC,QAAC,EAAA,eAAAS,GAAA,CAAAuT,GAAA,EAAA;MAAI5D,EAAG,EAAA,MAAA;MAAO/vB,OAAA;MACb2f,QAAC,EAAA,eAAAS,GAAA,CAAA6X,IAAA,EAAA;QAAKlI,EAAG,EAAA,MAAA;QAAOla,KAAK,EAAA,IAAA;QAAClV,IAAM,EAAAD,QAAA;QACzBif;MAAA,CACH;IAAA,CACF;EAAA,GACF;AAEJ,CAAC,CAAA;AC7CD,MAAMliB,KAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,oCAAoC,CAAA;AAE3DF,WAAA,CAAY1hB,KAAO,CAAA,GAAA0hB,WAAA,CAAY1hB,KAAQ,CAAA,IAAA6hB,aAAA,CAAkD,IAAI,CAAA;AAEtF,MAAMia,yBACXpa,WAAY,CAAA1hB,KAAA,CAAA;ACMP,SAAS+7B,wBAAwB76B,KAAyD,EAAA;EACzF,MAAA;IAACghB,QAAU;IAAAnd;EAAW,CAAA,GAAA7D,KAAA;EACtB,MAAArB,KAAA,GAAqCgF,OAAQ,CAAA,OAAO;IAAC6d,OAAA,EAAS;IAAK3d;GAAO,CAAA,EAAI,CAACA,OAAO,CAAC,CAAA;EAEtF,sBAAA4d,GAAA,CAACmZ,uBAAuBlZ,QAAvB,EAAA;IAAgC/iB,KAAA;IAAeqiB;EAAA,CAAS,CAAA;AAClE;ACfA,MAAM8Z,aAA6C,GAAA;EACjDtZ,OAAS,EAAA,CAAA;EACT3d,OAAS,EAAA;AACX,CAAA;AAKO,SAASk3B,kBAAkD,GAAA;EAC1D,MAAAp8B,KAAA,GAAQoiB,WAAW6Z,sBAAsB,CAAA;EAK/C,IAAIj8B,UAAU,CAACijB,QAAA,CAASjjB,KAAK,CAAK,IAAAA,KAAA,CAAM6iB,YAAY,CAAM,CAAA,EAAA;IAClD,MAAA,IAAIthB,MAAM,2DAA2D,CAAA;EAC7E;EAEA,OAAOvB,KAAS,IAAAm8B,aAAA;AAClB;ACxBgB,SAAAE,kBAAA,CAAmB97B,OAAiBkI,KAAyB,EAAA;EAC3E,MAAMrD,MAAgB,EAAC;EAEvB,KAAA,IAAS6N,IAAI,CAAG,EAAAA,CAAA,GAAI1S,KAAM,CAAAiB,MAAA,EAAQyR,KAAK,CAAG,EAAA;IACxC,MAAMqpB,KAAK/7B,KAAM,CAAA0S,CAAA,CAAA;IAEjB,IAAIqpB,KAAK7zB,KAAO,EAAA;MACdrD,GAAA,CAAIE,KAAK2N,CAAC,CAAA;IACZ;EACF;EAEO,OAAA7N,GAAA;AACT;AAEgB,SAAAm3B,kBAAA,CAAmBh8B,OAAiBkI,KAAyB,EAAA;EAC3E,MAAMrD,MAAgB,EAAC;EAEvB,KAAA,IAAS6N,IAAI,CAAG,EAAAA,CAAA,GAAI1S,KAAM,CAAAiB,MAAA,EAAQyR,KAAK,CAAG,EAAA;IACxC,MAAMqpB,KAAK/7B,KAAM,CAAA0S,CAAA,CAAA;IAEjB,IAAIqpB,MAAM7zB,KAAO,EAAA;MACfrD,GAAA,CAAIE,KAAK2N,CAAC,CAAA;IACZ;EACF;EAEO,OAAA7N,GAAA;AACT;ACRO,MAAMo3B,YAAe,GAAAjM,UAAA,CAAW,SAASiM,aAAAA,CAC9Cn7B,OACAyjB,GACA,EAAA;EACA,MAAM1jB,QAAQiiB,QAAS,EAAA;EACvB,MAAM;MAAChB,QAAU;MAAA9hB,KAAA,GAAQa,MAAMK,MAAO,CAAAlB;IAAuB,CAAA,GAAAc,KAAA;IAAbsvB,qCAAatvB,KAAA;EAEvD,MAAA84B,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC5f,OAAA,EAASU,UAAU,CAAA,GAAIC,SAAgC,IAAI,CAAA;EAC5D,MAAAsP,WAAA,GAAcH,eAAe9P,OAAO,CAAA;EACpC,MAAAuD,KAAA,GAAQzD,QAAQ,MAAG;IA5B3B,IAAA4D,EAAA;IA4B2C,OAAA,CAAAA,EAAA,GAAAuM,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAAX,MAAA,CAAO/L,KAApB,KAAA,IAAA,GAAAG,EAAA,GAA6BhC,MAAO,CAAA61B,UAAA;EAAA,CAAY,EAAA,CAACtnB,WAAW,CAAC,CAAA;EAEnF,MAAAW,GAAA,GAAM9Q,OAAQ,CAAA,MAAMq3B,kBAAmB,CAAA97B,KAAA,EAAOkI,KAAK,CAAG,EAAA,CAAClI,KAAO,EAAAkI,KAAK,CAAC,CAAA;EACpE,MAAAsN,GAAA,GAAM/Q,OAAQ,CAAA,MAAMu3B,kBAAmB,CAAAh8B,KAAA,EAAOkI,KAAK,CAAG,EAAA,CAAClI,KAAO,EAAAkI,KAAK,CAAC,CAAA;EAE1E,MAAMi0B,MAAS,GAAAzI,WAAA,CACZ5uB,EAA8B,IAAA;IAC7B80B,YAAA,CAAa/zB,OAAU,GAAAf,EAAA;IACvBO,UAAA,CAAWP,EAAE,CAAA;EACf,CAAA,EACA,CAAC80B,YAAY,CAAA,CACf;EAEA,OACG,eAAArX,GAAA,CAAA,KAAA;IACC,SAAQ,EAAA;EAAA,GACJ6N,SAAA;IACJ,eAAa7a,GAAI,CAAAtU,MAAA,GAASsU,GAAI,CAAA4S,IAAA,CAAK,GAAG,CAAI,GAAA,KAAA,CAAA;IAC1C,eAAa3S,GAAI,CAAAvU,MAAA,GAASuU,GAAI,CAAA2S,IAAA,CAAK,GAAG,CAAI,GAAA,KAAA,CAAA;IAC1C5D,GAAK,EAAA4X,MAAA;IAEJra;EAAA,GACH;AAEJ,CAAC,CAAA;AC7BM,MAAMsa,sBAAsBC,SAAkD,CAAA;EAA9EC,WAAA,GAAA;IAAA,KAAA,CAAA,GAAAhpB,SAAA,CAAA;IACuB,IAAA,CAAAwF,KAAA,GAAA;MAACyjB,OAAO;IAAI,CAAA;EAAA;EAExC,OAAOC,yBAAyBD,KAAkC,EAAA;IAEhE,OAAO;MAACA;IAAK,CAAA;EACf;EAEAE,iBAAA,CAAkBF,OAAcG,IAA6B,EAAA;IAC3D,IAAA,CAAK57B,KAAM,CAAA67B,OAAA,CAAQ;MAACJ,KAAA;MAAOG;IAAK,CAAA,CAAA;EAClC;EAEAE,MAA0B,GAAA;IAClB,MAAA;MAACL;IAAK,CAAA,GAAI,IAAK,CAAAzjB,KAAA;IAErB,IAAIyjB,KAAO,EAAA;MACT,MAAMp1B,UAAU,QAAOo1B,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAOp1B,OAAY,CAAA,KAAA,QAAA,GAAWo1B,MAAMp1B,OAAU,GAAA,OAAA;MAErE,OAAQ,eAAAob,GAAA,CAAA6X,IAAA,EAAA;QAAMtY,QAAA,EAAA3a;MAAA,CAAQ,CAAA;IACxB;IAEA,OAAO,KAAKrG,KAAM,CAAAghB,QAAA;EACpB;AACF;AC1CA,MAAMliB,KAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDF,WAAA,CAAY1hB,KAAO,CAAA,GAAA0hB,WAAA,CAAY1hB,KAAQ,CAAA,IAAA6hB,aAAA,CAAwC,IAAI,CAAA;AAE5E,MAAMob,eAAwDvb,WAAY,CAAA1hB,KAAA,CAAA;ACA1E,SAASk9B,QAA8B,GAAA;EACtC,MAAAr9B,KAAA,GAAQoiB,WAAWgb,YAAY,CAAA;EAErC,IAAI,CAACp9B,KAAO,EAAA;IACJ,MAAA,IAAIuB,MAAM,mCAAmC,CAAA;EACrD;EAKA,IAAI,CAAC0hB,QAAS,CAAAjjB,KAAK,CAAK,IAAAA,KAAA,CAAM6iB,YAAY,CAAK,EAAA;IACvC,MAAA,IAAIthB,MAAM,iDAAiD,CAAA;EACnE;EAEO,OAAAvB,KAAA;AACT;ACPO,SAASs9B,cAAcj8B,KAA+C,EAAA;EAC3E,MAAM;IAACghB,QAAA;IAAUd,OAAS,EAAAgc,WAAA,GAAc;GAAK,GAAAl8B,KAAA;EACvC,MAAAkN,MAAA,GAAS6T,WAAWgb,YAAY,CAAA;EAChC,MAAA7b,OAAA,GAAU3c,aAAa24B,WAAW,CAAA;EAClC,MAAAC,aAAA,GAAgBjc,QAAQ/f,MAAS,GAAA,CAAA;EACvC,MAAMX,UAAa,GAAAkD,IAAA,CAAKgS,GAAI,CAAAwO,aAAA,IAAiBiZ,aAAa,CAAA;EAC1D,MAAMlM,SAAS/iB,MAAS,GAAAA,MAAA,CAAO+iB,MAAS,GAAA/P,OAAA,CAAQ1gB,cAAc0gB,OAAQ,CAAA1gB,UAAA,CAAA;EACtE,MAAM,CAACwC,IAAA,EAAM4R,OAAO,CAAA,GAAIpP,SAAS,CAAC,CAAA;EAE5B,MAAA43B,aAAA,GAAgBxJ,YAAY,MAAM;IAC9Bhf,OAAA,CAACyoB,CAAM,IAAAA,CAAA,GAAI,CAAC,CAAA;IAEpB,OAAO,MAAMzoB,OAAA,CAASyoB,CAAA,IAAMA,IAAI,CAAC,CAAA;EACnC,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,sBAAsBpvB,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAkvB,aAAA;EAEpCv3B,SAAA,CAAU,MAAM;IACd,IAAI,CAACy3B,mBAAA,EAAqB;IAE1B,OAAOA,mBAAoB,EAAA;EAAA,CAC7B,EAAG,CAACA,mBAAmB,CAAC,CAAA;EAExB,MAAM39B,KAA2B,GAAAgF,OAAA,CAC/B,OAAO;IAAC6d,OAAS,EAAA,CAAA;IAAK+a,YAAYv6B,IAAS,KAAA,CAAA;IAAGo6B,aAAe;IAAAp6B,IAAA;IAAMiuB;GAAM,CAAA,EACzE,CAACjuB,IAAM,EAAAo6B,aAAA,EAAenM,MAAM,CAAA,CAC9B;EAEO,sBAAAxO,GAAA,CAACsa,aAAara,QAAb,EAAA;IAAsB/iB,KAAA;IAAeqiB;EAAA,CAAS,CAAA;AACxD;AC3BA,MAAM4N,SAAOC,MAAO,CAAAC,GAAA,kGAAA;AAIpB,MAAM0N,aAAgB,GAAAtN,UAAA,CAAW,SAASsN,cAAAA,CACxCx8B,OACAyjB,GACA,EAAA;EACA,MAAM;MAACzC,QAAA;MAAUniB,KAAQ,GAAAV;IAA8B,CAAA,GAAA6B,KAAA;IAAbsvB,qCAAatvB,KAAA;EACjD,MAAA;IAACiwB;GAAM,GAAI+L,QAAS,EAAA;EAE1B,OACG,eAAAva,GAAA,CAAAmN,MAAA,kCAASU,SAAA;IAAW,SAAQ,EAAA,OAAA;IAAQ7L,GAAA;IAAU5kB,KAAO,kCAAIA,KAAA;MAAOoxB;IAAM,EAAA;IACpEjP;EAAA,GACH;AAEJ,CAAC,CAAA;AAKM,MAAMyb,KAAQ,GAAAvN,UAAA,CAAW,SAASuN,MAAAA,CACvCz8B,OACAyjB,GACA,EAAA;EACA,MAAM;MAACzC,QAAA;MAAUd,OAAU,GAAA;IAAmB,CAAA,GAAAlgB,KAAA;IAAbsvB,qCAAatvB,KAAA;EAE9C,OACG,eAAAyhB,GAAA,CAAAwa,aAAA,EAAA;IAAc/b,OAAA;IACbc,QAAC,EAAA,eAAAS,GAAA,CAAA+a,aAAA,kCAAkBlN,SAAA;MAAW7L,GAAA;MAC3BzC;IAAA;EACH,CACF,CAAA;AAEJ,CAAC,CAAA;AChDD,MAAMliB,KAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,2BAA2B,CAAA;AAClD,MAAMgc,UAAA,GAAajc,MAAO,CAAAC,GAAA,CAAI,mCAAmC,CAAA;AAEjEF,WAAA,CAAYkc,UAAc,CAAA,GAAA,IAAA;AAEnB,MAAMC,mBAA0C,GAAA;EACrDnb,OAAS,EAAA,CAAA;EACTld,eAAiB,EAAA,IAAA;EACjB,IAAIT,OAAU,GAAA;IACR,IAAA,OAAO0B,WAAW,WAAa,EAAA;MAC1B,OAAA,IAAA;IACT;IAEA,IAAIib,YAAYkc,UAAa,CAAA,EAAA;MAC3B,OAAOlc,WAAY,CAAAkc,UAAA,CAAA;IACrB;IAEYlc,WAAA,CAAAkc,UAAA,CAAA,GAAcp2B,QAAS,CAAAyxB,aAAA,CAAc,KAAK,CAAA;IAC1CvX,WAAA,CAAAkc,UAAA,CAAA,CAAYE,YAAa,CAAA,aAAA,EAAe,EAAE,CAAA;IAE7Ct2B,QAAA,CAAAyK,IAAA,CAAK8rB,WAAY,CAAArc,WAAA,CAAYkc,UAAW,CAAA,CAAA;IAEjD,OAAOlc,WAAY,CAAAkc,UAAA,CAAA;EACrB;AACF,CAAA;AAEAlc,WAAA,CAAY1hB,KAAO,CAAA,GAAA0hB,WAAA,CAAY1hB,KAAQ,CAAA,IAAA6hB,aAAA,CAAkCgc,mBAAmB,CAAA;AAErF,MAAMG,gBAAmDtc,WAAY,CAAA1hB,KAAA,CAAA;ACxBrE,SAASi+B,SAAgC,GAAA;EACxC,MAAAp+B,KAAA,GAAQoiB,WAAW+b,aAAa,CAAA;EAEtC,IAAI,CAACn+B,KAAO,EAAA;IACJ,MAAA,IAAIuB,MAAM,oCAAoC,CAAA;EACtD;EAKA,IAAI,CAAC0hB,QAAS,CAAAjjB,KAAK,CAAK,IAAAA,KAAA,CAAM6iB,YAAY,CAAK,EAAA;IACvC,MAAA,IAAIthB,MAAM,kDAAkD,CAAA;EACpE;EAEO,OAAAvB,KAAA;AACT;ACNO,SAASq+B,OAAOh9B,KAA8C,EAAA;EAjBrE,IAAAuH,EAAA;EAkBE,MAAM;IAACyZ,QAAA;IAAUic,eAAiB,EAAAjsB;EAAA,CAAQ,GAAAhR,KAAA;EAC1C,MAAMk9B,SAASH,SAAU,EAAA;EACnB,MAAAI,aAAA,GAAA,CACHnsB,IAAO,GAAAksB,MAAA,CAAOz4B,QAAY,IAAAy4B,MAAA,CAAOz4B,QAAS,CAAAuM,IAAA,CAAA,GAAQksB,MAAO,CAAAr5B,OAAA,MAAA,CAAY0D,EAAO,GAAA21B,MAAA,CAAAz4B,QAAA,KAAP,IAAiB,GAAA,KAAA,CAAA,GAAA8C,EAAA,CAAA6P,OAAA,CAAA;EAEzF,IAAI,CAAC+lB,aAAe,EAAA;IACX,OAAA,IAAA;EACT;EAEO,OAAAC,YAAA,CAAapc,UAAUmc,aAAa,CAAA;AAC7C;AClBO,SAASE,UAAqD1+B,KAA6B,EAAA;EAC1F,MAAA2+B,QAAA,GAAW14B,OAAkBjG,KAAK,CAAA;EAExC,IAAI,CAAC4+B,QAAA,CAASD,QAAS,CAAAv4B,OAAA,EAASpG,KAAK,CAAG,EAAA;IACtC2+B,QAAA,CAASv4B,OAAU,GAAApG,KAAA;EACrB;EAEA,OAAO2+B,QAAS,CAAAv4B,OAAA;AAClB;AAEA,SAASw4B,QAAA,CAASC,MAAkBC,IAA2B,EAAA;EACzD,IAAA,CAACD,IAAQ,IAAA,CAACC,IAAM,EAAA;IAClB,OAAOD,IAAS,KAAAC,IAAA;EAClB;EAEM,MAAAC,KAAA,GAAQ72B,MAAO,CAAAnI,IAAA,CAAK8+B,IAAI,CAAA;EACxB,MAAAG,KAAA,GAAQ92B,MAAO,CAAAnI,IAAA,CAAK++B,IAAI,CAAA;EAE1B,IAAAC,KAAA,CAAMv9B,MAAW,KAAAw9B,KAAA,CAAMx9B,MAAQ,EAAA;IAC1B,OAAA,KAAA;EACT;EAEA,OAAOu9B,MAAME,KAAM,CAAC9+B,OAAQ0+B,IAAK,CAAA1+B,GAAA,CAAA,KAAS2+B,KAAK3+B,GAAI,CAAA,CAAA;AACrD;ACZA,MAAM++B,WAAA,GAAc,OAAOt4B,MAAW,KAAA,WAAA;AAK/B,SAASu4B,eAAe99B,KAAgD,EAAA;EAC7E,MAAM;IAACsE,eAAiB;IAAA0c,QAAA;IAAUnd,OAAS;IAAAk6B,mBAAA,EAAqBC;EAAgB,CAAA,GAAAh+B,KAAA;EAC1E,MAAAyE,QAAA,GAAW44B,UAAUW,YAAY,CAAA;EAEjC,MAAAr/B,KAAA,GAA4BgF,QAAQ,MAAM;IACvC,OAAA;MACL6d,OAAS,EAAA,CAAA;MACTld,iBAAiBA,eAAmB,IAAA,IAAA;MACpCT,OAAS,EAAAA,OAAA,IAAYg6B,WAAe,IAAAv3B,QAAA,CAASyK,IAAS,IAAA,IAAA;MACtDtM;IAAA,CACF;EACC,CAAA,EAAA,CAACH,eAAiB,EAAAT,OAAA,EAASY,QAAQ,CAAC,CAAA;EAEhC,sBAAAgd,GAAA,CAACqb,cAAcpb,QAAd,EAAA;IAAuB/iB,KAAA;IAAeqiB;EAAA,CAAS,CAAA;AACzD;AC7BA,MAAM4N,SAAOC,MAAO,CAAAC,GAAA,qKAAA;AAWb,MAAMmP,MAAS,GAAA/O,UAAA,CAAW,SAAS+O,OAAAA,CACxCj+B,OACAyjB,GACA,EAAA;EACM,MAAA;IAAC2N,EAAI;IAAApQ;EAAY,CAAA,GAAAhhB,KAAA;EAEvB,OACG,eAAAyhB,GAAA,CAAAmN,MAAA,EAAA;IAAK,aAAW,EAAA,IAAA;IAACwC,EAAA;IAAQ,SAAQ,EAAA,QAAA;IAAS3N,GAAA;IACxCzC;EAAA,CACH,CAAA;AAEJ,CAAC,CAAA;AC9BM,SAASkd,KAAKC,EAA4B,EAAA;EACzC,MAAAC,OAAA,GAAU5uB,sBAAsB2uB,EAAE,CAAA;EAExC,OAAO,MAAM;IACXzL,oBAAA,CAAqB0L,OAAO,CAAA;EAAA,CAC9B;AACF;AAKO,SAASC,MAAMF,EAA4B,EAAA;EAChD,IAAIG,YAAoC,GAAA,IAAA;EAElC,MAAAC,YAAA,GAAeL,KAAK,MAAM;IAC9BI,YAAA,GAAeJ,KAAKC,EAAE,CAAA;EAAA,CACvB,CAAA;EAED,OAAO,MAAM;IACP,IAAAG,YAAA,EAA2BA,YAAA,EAAA;IAElBC,YAAA,EAAA;EAAA,CACf;AACF;ACvBO,SAASC,uBAAuB36B,OAA+B,EAAA;EACpE,OAAO46B,mBAAoB,CAAA56B,OAAO,CAAK,IAAA66B,mBAAA,CAAoB76B,OAAO,CAAA;AACpE;AAKO,SAAS86B,cAAc5xB,IAAoC,EAAA;EAChE,OAAOA,IAAgB,YAAA1H,IAAA,IAAQ0H,IAAK,CAAA6xB,QAAA,KAAav5B,IAAK,CAAAw5B,YAAA;AACxD;AAKO,SAASJ,oBAAoB56B,OAAgD,EAAA;EAClF,OAAO86B,aAAc,CAAA96B,OAAO,CAAK,IAAAA,OAAA,CAAQi7B,QAAa,KAAA,GAAA;AACxD;AAKO,SAASC,mBAAmBl7B,OAA+C,EAAA;EAChF,OAAO86B,aAAc,CAAA96B,OAAO,CAAK,IAAAA,OAAA,CAAQi7B,QAAa,KAAA,OAAA;AACxD;AAKO,SAASJ,oBAAoB76B,OAAgD,EAAA;EAClF,OAAO86B,aAAc,CAAA96B,OAAO,CAAK,IAAAA,OAAA,CAAQi7B,QAAa,KAAA,QAAA;AACxD;AAKO,SAASE,oBAAoBn7B,OAAgD,EAAA;EAClF,OAAO86B,aAAc,CAAA96B,OAAO,CAAK,IAAAA,OAAA,CAAQi7B,QAAa,KAAA,QAAA;AACxD;AAKO,SAASG,sBAAsBp7B,OAAkD,EAAA;EACtF,OAAO86B,aAAc,CAAA96B,OAAO,CAAK,IAAAA,OAAA,CAAQi7B,QAAa,KAAA,UAAA;AACxD;AC/BO,SAASI,UAAUr7B,OAA+B,EAAA;EACvD,OAAOM,QAAQmC,QAAS,CAAA64B,aAAa,KAAKt7B,OAAQ,CAAAyB,QAAA,CAASgB,SAAS64B,aAAa,CAAA;AACnF;AAKO,SAASC,YAAYv7B,OAA+B,EAAA;EAEvD,IAAAA,OAAA,CAAQw7B,QAAW,GAAA,CAAA,IAClBx7B,OAAQ,CAAAw7B,QAAA,KAAa,KAAKx7B,OAAQ,CAAAy7B,YAAA,CAAa,UAAU,CAAA,KAAM,IAChE,EAAA;IACO,OAAA,IAAA;EACT;EAEI,IAAAb,mBAAA,CAAoB56B,OAAO,CAAG,EAAA;IAChC,OAAOM,OAAQ,CAAAN,OAAA,CAAQqvB,IAAI,CAAA,IAAKrvB,QAAQ07B,GAAQ,KAAA,QAAA;EAClD;EAEI,IAAAR,kBAAA,CAAmBl7B,OAAO,CAAG,EAAA;IAC/B,OAAOA,QAAQ4E,IAAS,KAAA,QAAA,IAAY5E,QAAQ4E,IAAS,KAAA,MAAA,IAAU,CAAC5E,OAAQ,CAAAoU,QAAA;EAC1E;EAGE,IAAAymB,mBAAA,CAAoB76B,OAAO,CAC3B,IAAAm7B,mBAAA,CAAoBn7B,OAAO,CAC3B,IAAAo7B,qBAAA,CAAsBp7B,OAAO,CAC7B,EAAA;IACA,OAAO,CAACA,OAAQ,CAAAoU,QAAA;EAClB;EAEO,OAAA,KAAA;AACT;AAKO,SAASunB,aAAa37B,OAA+B,EAAA;EACtD,IAAA,CAACu7B,WAAY,CAAAv7B,OAAO,CAAG,EAAA;IAClB,OAAA,KAAA;EACT;EAII,IAAA;IACFA,OAAA,CAAQ47B,KAAM,EAAA;WACPxT,CAAP,EAAA,CAEF;EAIA,OAAO3lB,SAAS64B,aAAkB,KAAAt7B,OAAA;AACpC;AAKO,SAAS67B,qBAAqB77B,OAA+B,EAAA;EAClE,KAAA,IAAS+N,IAAI,CAAG,EAAAA,CAAA,GAAI/N,OAAQ,CAAA87B,UAAA,CAAWx/B,QAAQyR,CAAK,EAAA,EAAA;IAC5C,MAAA6iB,KAAA,GAAQ5wB,QAAQ87B,UAAW,CAAA/tB,CAAA,CAAA;IAE7B,IAAA+sB,aAAA,CAAclK,KAAK,CAAM,KAAA+K,YAAA,CAAa/K,KAAK,CAAK,IAAAiL,oBAAA,CAAqBjL,KAAK,CAAI,CAAA,EAAA;MACzE,OAAA,IAAA;IACT;EACF;EAEO,OAAA,KAAA;AACT;AAKO,SAASmL,oBAAoB/7B,OAA+B,EAAA;EACjE,KAAA,IAAS+N,IAAI/N,OAAQ,CAAA87B,UAAA,CAAWx/B,SAAS,CAAG,EAAAyR,CAAA,IAAK,GAAGA,CAAK,EAAA,EAAA;IACjD,MAAA6iB,KAAA,GAAQ5wB,QAAQ87B,UAAW,CAAA/tB,CAAA,CAAA;IAE7B,IAAA+sB,aAAA,CAAclK,KAAK,CAAM,KAAA+K,YAAA,CAAa/K,KAAK,CAAK,IAAAmL,mBAAA,CAAoBnL,KAAK,CAAI,CAAA,EAAA;MACxE,OAAA,IAAA;IACT;EACF;EAEO,OAAA,KAAA;AACT;AChGO,SAASoL,cAAc77B,EAAmB,EAAA;EAC/C,IAAI,EAAEA,EAAc,YAAAmE,OAAA,CAAA,EAAiB,OAAA,KAAA;EAE/B,MAAAtJ,KAAA,GAAQ0G,MAAO,CAAA2E,gBAAA,CAAiBlG,EAAE,CAAA;EAExC,OACEnF,MAAM8L,SAAU,CAAA1F,QAAA,CAAS,MAAM,CAC/B,IAAApG,KAAA,CAAM8L,UAAU1F,QAAS,CAAA,QAAQ,CACjC,IAAApG,KAAA,CAAM4L,UAAUxF,QAAS,CAAA,MAAM,KAC/BpG,KAAM,CAAA4L,SAAA,CAAUxF,SAAS,QAAQ,CAAA;AAErC;ACkBA,MAAM2pB,SAAOC,MAAO,CAAAC,GAAA,kGAAA;AAIpB,MAAMgR,cAAcjR,MAAO,CAAAC,GAAA,2HAAA;AASpB,MAAMiR,WAAc,GAAA7Q,UAAA,CAAW,SAAS6Q,YAAAA,CAC7C//B,OAGAyjB,GACoB,EAAA;EACpB,MAAM;MAAC2N,EAAA,GAAK,KAAO;MAAApL,GAAA,GAAM,CAAG;MAAAga,UAAA;MAAYC,KAAQ,GAAA,EAAI;MAAAC,QAAA;MAAUC;IAAe,CAAa,GAAAngC,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAC1F,MAAM;IAACM;EAAA,CAAS,GAAA0hB,QAAA,EAAW,CAAA5hB,MAAA;EACrB,MAAA04B,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EAClC,MAAA2c,UAAA,GAAax7B,OAA8B,IAAI,CAAA;EACrD,MAAM,CAACy7B,SAAA,EAAWC,YAAY,CAAA,GAAI97B,SAAS,CAAC,CAAA;EAC5C,MAAM,CAAC+7B,YAAA,EAAcC,eAAe,CAAA,GAAIh8B,SAAS,CAAC,CAAA;EAClD,MAAM,CAACi8B,UAAA,EAAYC,aAAa,CAAA,GAAIl8B,SAAS,CAAE,CAAA,CAAA;EAE/CK,SAAA,CAAU,MAAM;IACd,IAAI,CAACu7B,UAAW,CAAAr7B,OAAA,EAAS;IAEnB,MAAA47B,YAAA,GAAeP,WAAWr7B,OAAQ,CAAA67B,UAAA;IAExC,IAAID,wBAAwBE,WAAa,EAAA;MACvCH,aAAA,CAAcC,aAAa34B,YAAY,CAAA;IACzC;EAAA,CACF,EAAG,CAACm4B,UAAU,CAAC,CAAA;EAEft7B,SAAA,CAAU,MAAM;IACd,IAAI,CAACi0B,YAAa,CAAA/zB,OAAA,EAAS;IAEvB,IAAA+7B,SAAA,GAAYhI,aAAa/zB,OAAQ,CAAAoI,UAAA;IAErC,OAAO2zB,SAAa,IAAA,CAACjB,aAAc,CAAAiB,SAAS,CAAG,EAAA;MAC7CA,SAAA,GAAYA,SAAU,CAAA3zB,UAAA;IACxB;IAEA,IAAI2zB,SAAW,EAAA;MACb,MAAMC,QAAW,GAAAD,SAAA;MAEjB,IAAI,EAAEC,QAAoB,YAAAF,WAAA,CAAA,EAAc;MAExC,MAAMG,gBAAe,MAAM;QACzBV,YAAA,CAAaS,SAASV,SAAS,CAAA;MAAA,CACjC;MAEAU,QAAA,CAASv7B,iBAAiB,QAAUw7B,EAAAA,aAAAA,EAAc;QAACC,OAAA,EAAS;OAAK,CAAA;MAEjE,MAAMp7B,EAAK,GAAA,IAAI8M,eAAgB,CAAClF,OAAY,IAAA;QAC1B+yB,eAAA,CAAA/yB,OAAA,CAAQ,CAAG,CAAA,CAAA9D,WAAA,CAAYlI,MAAM,CAAA;MAAA,CAC9C,CAAA;MAEDoE,EAAA,CAAGsJ,QAAQ4xB,QAAQ,CAAA;MAEnBC,aAAa,EAAA;MAEb,OAAO,MAAM;QACFD,QAAA,CAAAt7B,mBAAA,CAAoB,UAAUu7B,aAAY,CAAA;QAEnDn7B,EAAA,CAAGsM,UAAU4uB,QAAQ,CAAA;QACrBl7B,EAAA,CAAGoL,UAAW,EAAA;MAAA,CAChB;IACF;IAEA,MAAM+vB,eAAe,MAAM;MACzBV,YAAA,CAAa/6B,OAAO27B,OAAO,CAAA;IAAA,CAC7B;IAEA,MAAMC,eAAe,MAAM;MACzBX,eAAA,CAAgBj7B,OAAO67B,WAAW,CAAA;IAAA,CACpC;IAEA77B,MAAA,CAAOC,iBAAiB,QAAU,EAAAw7B,YAAA,EAAc;MAACC,OAAA,EAAS;KAAK,CAAA;IACxD17B,MAAA,CAAAC,gBAAA,CAAiB,UAAU27B,YAAY,CAAA;IAE9CX,eAAA,CAAgBj7B,OAAO67B,WAAW,CAAA;IAErBJ,YAAA,EAAA;IAEb,OAAO,MAAM;MACJz7B,MAAA,CAAAE,mBAAA,CAAoB,UAAUu7B,YAAY,CAAA;MAC1Cz7B,MAAA,CAAAE,mBAAA,CAAoB,UAAU07B,YAAY,CAAA;IAAA,CACnD;EAAA,CACF,EAAG,CAACrI,YAAY,CAAC,CAAA;EAEjB,MAAMjN,MAAMoU,KAAM,CAAA9/B,MAAA;EAClB,MAAMsB,SAASg/B,UAAa,GAAA5U,GAAA,IAAO4U,aAAangC,KAAM,CAAA0lB,GAAA,CAAA,CAAA,GAAQ1lB,MAAM0lB,GAAO,CAAA,GAAA,CAAA;EAC3E,MAAMqb,SAAY,GAAA5/B,MAAA,GAASiB,IAAK,CAAA+R,GAAA,CAAI/R,IAAK,CAAAC,KAAA,CAAO09B,SAAY,GAAA5+B,MAAA,GAAUoqB,GAAG,CAAA,GAAI,CAAG,EAAA,CAAC,CAAI,GAAA,CAAA;EAC/E,MAAAyV,OAAA,GAAU7/B,SAASiB,IAAK,CAAA6+B,IAAA,CAAA,CAAOlB,YAAYE,YAAgB,IAAA9+B,MAAA,GAAUoqB,GAAG,CAAA,GAAI,CAAI,GAAA,CAAA;EAEtFhnB,SAAA,CAAU,MAAM;IACd,IAAI,CAACq7B,QAAA,EAAU;IACNA,QAAA,CAAA;MAACmB;MAAWrb,GAAK,EAAA1lB,KAAA,CAAM0lB;MAAMya,UAAY;MAAAF,YAAA;MAAcF,SAAW;MAAAiB;IAAQ,CAAA,CAAA;EAAA,CACrF,EAAG,CAACD,SAAA,EAAWrb,GAAK,EAAAya,UAAA,EAAYP,UAAUK,YAAc,EAAAF,SAAA,EAAW//B,KAAO,EAAAghC,OAAO,CAAC,CAAA;EAE5E,MAAAtgB,QAAA,GAAWrd,QAAQ,MAAM;IACzB,IAAA,CAACw8B,UAAc,IAAAF,KAAA,CAAM9/B,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA;IAE9C,IAAIsgC,eAAe,CAAI,CAAA,EAAA;MACrB,OAAO,CAAA,eAAEhf,GAAA,CAAAqe,WAAA,EAAA;QAAqB9e,QAAA,EAAAmf,UAAA,CAAWF,MAAM,CAAE,CAAA;MAAA,CAAA,EAAvB,CAAyB,CAAc,CAAA;IACnE;IAEO,OAAAA,KAAA,CAAM1tB,MAAM8uB,SAAW,EAAAC,OAAO,EAAEhiC,GAAI,CAAA,CAACkiC,MAAMC,UAAe,KAAA;MAC/D,MAAMC,YAAYL,SAAY,GAAAI,UAAA;MACxB,MAAA10B,IAAA,GAAOozB,WAAWqB,IAAI,CAAA;MAC5B,MAAM1iC,GAAM,GAAAkhC,UAAA,GAAaA,UAAW,CAAAwB,IAAA,EAAME,SAAS,CAAI,GAAAA,SAAA;MAEvD,OACG,eAAAjgB,GAAA,CAAAqe,WAAA,EAAA;QAAsBjhC,OAAO;UAACR,GAAA,EAAKqjC,SAAa,IAAAjB,UAAA,GAAangC,MAAM0lB,GAAK,CAAA;QAAA,CAAA;QACtEhF,QAAA,EAAAjU;MAAA,CAAA,EADejO,GAElB,CAAA;IAAA,CAEH,CAAA;EAAA,CACH,EAAG,CAACuiC,SAAA,EAAWrb,GAAK,EAAAga,UAAA,EAAYS,YAAYR,KAAO,EAAAE,UAAA,EAAY7/B,KAAO,EAAAghC,OAAO,CAAC,CAAA;EAExE,MAAAK,YAAA,GAAeh+B,QAAQ,OAAO;IAAClC;GAAU,CAAA,EAAA,CAACA,MAAM,CAAC,CAAA;EAEvD,OACG,eAAAggB,GAAA,CAAAmN,MAAA;IAAKwC,EAAA;IAAQ,SAAQ,EAAA;EAAA,GAAkB9B,SAAA;IAAW7L,GAAK,EAAAqV,YAAA;IACtD9X,QAAC,EAAA,eAAAS,GAAA,CAAA,KAAA,EAAA;MAAIgC,GAAK,EAAA2c,UAAA;MAAYvhC,KAAO,EAAA8iC,YAAA;MAC1B3gB;IAAA,CACH;EAAA,GACF;AAEJ,CAAC,CAAA;ACnKM,MAAM4gB,wBAA2B,GAAA,CAAA;AACjC,MAAMC,uBAA0B,GAAA,CAAA;AAChC,MAAMC,2BAA8B,GAAA,EAAA;AACpC,MAAMC,4BAA+B,GAAA,EAAA;AACrC,MAAMC,uBAA0C,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA;ACI3D,SAAShgC,KAAKgQ,OAON,EAAA;EACb,MAAM;IAACiwB,KAAA;IAAOC,OAAS;IAAA7gC,OAAA,GAAU;GAAK,GAAA2Q,OAAA;EAE/B,OAAA;IACLhB,IAAM,EAAA,iBAAA;IACN,MAAMmtB,GAAGgE,IAAM,EAAA;MACb,MAAM;QAAC19B,QAAA;QAAU29B,SAAW;QAAAC,QAAA;QAAUC;OAAS,GAAAH,IAAA;MACzC,MAAA;QAACI,QAAU;QAAAC;MAAa,CAAA,GAAAF,KAAA;MAExB,MAAAhd,QAAA,GAAW,MAAMmd,cAAA,CAAeN,IAAM,EAAA;QAC1CO,WAAa,EAAA,IAAA;QACbC,QAAA,EAAU3wB,QAAQ1N,eAAmB,IAAA,KAAA,CAAA;QACrCs+B,cAAgB,EAAA,UAAA;QAChBvhC,OAAA;QACAwhC,YAAc,EAAA;MAAA,CACf,CAAA;MAED,IAAI7I,QAAW,GAAAhtB,QAAA;MACf,IAAI81B,SAAY,GAAA91B,QAAA;MAEhB,MAAM+1B,YAAYR,QAAS,CAAAn7B,KAAA;MAC3B,MAAM47B,YAAYT,QAAS,CAAA9gC,MAAA;MAEvB,IAAA2gC,SAAA,CAAUn9B,QAAS,CAAA,KAAK,CAAG,EAAA;QAClB+0B,QAAA,GAAA+I,SAAA,IAAazd,QAAS,CAAA9mB,IAAA,GAAO8mB,QAAS,CAAAhnB,KAAA,CAAA;QACjDwkC,SAAA,GAAYE,YAAY1d,QAAS,CAAAjnB,GAAA;MACnC;MAEI,IAAA+jC,SAAA,CAAUn9B,QAAS,CAAA,OAAO,CAAG,EAAA;QAC/B+0B,QAAA,GAAW+I,YAAYzd,QAAS,CAAAhnB,KAAA;QACpBwkC,SAAA,GAAAE,SAAA,IAAa1d,QAAS,CAAAjnB,GAAA,GAAMinB,QAAS,CAAA/mB,MAAA,CAAA;MACnD;MAEI,IAAA6jC,SAAA,CAAUn9B,QAAS,CAAA,QAAQ,CAAG,EAAA;QACrB+0B,QAAA,GAAA+I,SAAA,IAAazd,QAAS,CAAA9mB,IAAA,GAAO8mB,QAAS,CAAAhnB,KAAA,CAAA;QACjDwkC,SAAA,GAAYE,YAAY1d,QAAS,CAAA/mB,MAAA;MACnC;MAEI,IAAA6jC,SAAA,CAAUn9B,QAAS,CAAA,MAAM,CAAG,EAAA;QAC9B+0B,QAAA,GAAW+I,YAAYzd,QAAS,CAAA9mB,IAAA;QACpBskC,SAAA,GAAAE,SAAA,IAAa1d,QAAS,CAAAjnB,GAAA,GAAMinB,QAAS,CAAA/mB,MAAA,CAAA;MACnD;MAIM0jC,KAAA,CAAA;QACJgB,cAAgB,EAAAjJ,QAAA,GAAWkI,OAAQ,CAAA,CAAA,CAAA,GAAKA,OAAQ,CAAA,CAAA,CAAA;QAChDgB,eAAiB,EAAAJ,SAAA,GAAYZ,OAAQ,CAAA,CAAA,CAAA,GAAKA,OAAQ,CAAA,CAAA,CAAA;QAClDz9B,QAAA;QACA0+B,cAAgB,EAAAX,SAAA,CAAUp7B,KAAQ,GAAA86B,OAAA,CAAQ,KAAKA,OAAQ,CAAA,CAAA;MAAA,CACxD,CAAA;MAED,MAAMkB,cAAiB,GAAA,MAAMf,QAAS,CAAAgB,aAAA,CAAc5+B,SAAS89B,QAAQ,CAAA;MAErE,MAAMe,UAAUF,cAAe,CAAA3hC,MAAA;MAC/B,MAAM8hC,UAAUH,cAAe,CAAAh8B,KAAA;MAE3B,IAAA27B,SAAA,KAAcQ,OAAW,IAAAP,SAAA,KAAcM,OAAS,EAAA;QAClD,OAAO;UAACE,KAAA,EAAO;YAAClB,KAAA,EAAO;UAAK;QAAA,CAAA;MAC9B;MAEA,OAAO,EAAC;IACV;EAAA,CACF;AACF;AC7EA,MAAM1T,SAAOC,MAAO,CAAAC,GAAA,+sBAGTgT,2BAAA,EACCA,2BAAA,EASYA,2BAAA,GAA8B,GAAOA,2BAA8B,GAAA,CAAA,EAI5EA,2BAAA,EAIFA,2BAAA,EAQCA,2BAAA,EAQFA,2BAAA,CAAA;AAQZ,MAAM2B,aAAa5U,MAAO,CAAA6U,IAAA,sHAAA;AAI1B,MAAMC,YAAY9U,MAAO,CAAA6U,IAAA,0GAAA;AAIlB,MAAME,YAAe,GAAA1U,UAAA,CAAW,SAAS0U,aAAAA,CAC9C5jC,OACAyjB,GACA,EAAA;EACA,OACG,eAAAhC,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAqB5uB,KAAA;IAAOyjB,GAAA;IACxCzC,QAAC,EAAA,eAAA8R,IAAA,CAAA,KAAA,EAAA;MACC1rB,KAAO,EAAA06B,2BAAA;MACPrgC,MAAQ,EAAAsgC,4BAAA;MACRhP,OAAQ,EAAA,WAAA;MACRrO,IAAK,EAAA,MAAA;MACLmf,KAAM,EAAA,4BAAA;MAEN7iB,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAgiB,UAAA,EAAA;QAAWzQ,CAAE,EAAA;MAAA,CAA2W,CAAA,EACxX,eAAAvR,GAAA,CAAAkiB,SAAA,EAAA;QAAU3Q,CAAE,EAAA;MAAA,CAAqL,CAAA;IAAA,CACpM;EAAA,GACF;AAEJ,CAAC,CAAA;AC1DD,SAAS8Q,iBAAiB9jC,KAA0D,EAAA;EAC5E,MAAA;IAAC+jC;EAAkB,CAAA,GAAA/jC,KAAA;EAElB,OAAA;IACL,iBAAmB,EAAA;MACjBwB,OAAS,EAAA;IACX,CAAA;IAEAilB,aAAe,EAAA,QAAA;IAEfrf,KAAO,EAAA,aAAA;IACPsf,QAAU,EAAA,aAAA;IACVsT,UACE,OAAO+J,cAAA,KAAmB,qBACnBA,cAAA,GAAiBlC,0BAA0B,CAC9C,UAAA,KAAA;EAAA,CACR;AACF;AAEA,MAAMjT,SAAOoV,IAAK,CAAAnV,MAAA,CAAOwJ,IAAI,CAAA,CAAEyL,gBAAgB,CAAC,CAAA;AAEhD,MAAMG,gBAAA,GAAmBD,IAAK,CAAAnV,MAAA,CAAOoL,SAAS,CAAA,2HAG7C;AAKM,MAAMiK,WAAc,GAAAF,IAAA,CACzB9U,UAAW,CAAA,SAASgV,YAClB,CAAAlkC,KAAA,EAoBAyjB,GACA,EAAA;EACM,MAAA;MACJ0gB,kBAAoB,EAAAC,WAAA;MACpB3U,KAAA;MACA4U,QAAA;MACAC,MAAA;MACAC,MAAA;MACAC,aAAA;MACAxjB,QAAA;MACA3f,OAAA;MACA+gC,SAAA;MACA9c,QAAA;MACA9F,MAAA;MACAyB,MAAA;MACApH,MAAA;MACA4qB,QAAA;MACA5lC,KAAA;MACAwb,IAAA;MACAjT,KAAQ,GAAA,MAAA;MACRF,CAAG,EAAAw9B,KAAA;MACHv9B,CAAG,EAAAw9B;IAED,CAAA,GAAA3kC,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEE,MAAA;IAACiwB;GAAM,GAAI+L,QAAS,EAAA;EAG1B,MAAMkG,OAA0B,GAAAv+B,OAAA,CAC9B,MAAMygC,WAAe,IAAApC,uBAAA,EACrB,CAACoC,WAAW,CAAA,CACd;EAGM,MAAAl9B,CAAA,GAAA,CAAKw9B,KAAS,IAAA,IAAA,GAAAA,KAAA,GAAA,CAAA,IAAKxC,OAAQ,CAAA,CAAA,CAAA;EAC3B,MAAA/6B,CAAA,GAAA,CAAKw9B,KAAS,IAAA,IAAA,GAAAA,KAAA,GAAA,CAAA,IAAKzC,OAAQ,CAAA,CAAA,CAAA;EAEjC,MAAM0C,SAA2B,GAAAjhC,OAAA,CAC/B;IACExC,QAAU,EAAAsjC,QAAA;IACVpmC,GAAK,EAAA8I,CAAA;IACL3I,IAAM,EAAA0I,CAAA;IACN+oB;EAAA,GACGpxB,KAAA,CACL,EACA,CAAC4lC,QAAA,EAAU5lC,KAAO,EAAAqI,CAAA,EAAGC,GAAG8oB,MAAM,CAAA,CAChC;EAEA,MAAM4U,aAAazC,SAAa,IAAAhkC,qBAAA,CAAsBgkC,SAAU,CAAA0C,KAAA,CAAM,GAAG,CAAE,CAAA,CAAA,CAAA,CAAA;EAErE,MAAAC,UAAA,GAA4BphC,QAAQ,MAAM;IAC9C,MAAM9E,MAAuB,GAAA;MAC3BL,IAAA,EAAM8lC,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;MACjCjmC,GAAA,EAAKkmC,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;MAChCjmC,KAAO,EAAA,KAAA,CAAA;MACPC,MAAQ,EAAA,KAAA;IAAA,CACV;IAEI,IAAAsmC,UAAA,EAAYhmC,MAAAA,CAAMgmC,cAAc,CAAI,GAAA/C,2BAAA;IAEjCjjC,OAAAA,MAAAA;EACN,CAAA,EAAA,CAACylC,MAAQ,EAAAC,MAAA,EAAQM,UAAU,CAAC,CAAA;EAE/B,OACG,eAAA/R,IAAA,CAAAlE,MAAA,kCACKU,SAAA;IACJyU,cAAgB,EAAAS,aAAA;IAChB,gBAAgB,EAAApC,SAAA;IAChB,SAAQ,EAAA,SAAA;IACR5iB,MAAA;IACAiE,GAAA;IACAxC,MAAA;IACApH,MAAA;IACAsL,MAAO,EAAA,QAAA;IACPtmB,KAAO,EAAA+lC,SAAA;IACPvqB,IAAA;IAEA2G,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAwiB,gBAAA,EAAA;MACC,SAAQ,EAAA,kBAAA;MACRld,IAAM,EAAA,CAAA;MACNzB,QAAA;MACAjkB,OAAA;MACA8jB,MAAO,EAAA,QAAA;MACP/d,KAAA;MAEC4Z;IAAA,CACH,CAAA,EAECyO,wBAAUhO,GAAA,CAAAmiB,YAAA,EAAA;MAAangB,GAAK,EAAA4gB,QAAA;MAAUxlC,KAAO,EAAAkmC;IAAA,CAAY,CAAA;EAAA,GAC5D;AAAA,CAEH,CAAA,CACH;AAEAb,WAAA,CAAYc,WAAc,GAAA,aAAA;ACxGnB,MAAMC,OAAU,GAAAjB,IAAA,CACrB9U,UAAW,CAAA,SAAS+V,QAClB,CAAAjlC,KAAA,EAEAyjB,GACoB,EAAA;EA/DxB,IAAAlc,EAAA,EAAAO,EAAA,EAAAuuB,EAAA,EAAAC,EAAA,EAAAC,EAAA;EAgEI,MAAMx2B,QAAQiiB,QAAS,EAAA;EACvB,MAAMkjB,yBAAyBnK,kBAAmB,EAAA;EAE5C,MAAA;MACJoJ,oBAAoBjC,OAAU,GAAAF,uBAAA;MAC9BvS,OAAO0V,SAAY,GAAA,IAAA;MACnB7gC,kBAAkB4gC,sBAAuB,CAAArhC,OAAA;MACzCmd,QAAU,EAAAokB,SAAA;MACVC,aAAgB,GAAA,KAAA;MAChB9jC,OAAA;MACA0W,QAAA;MACAqtB,kBAAA;MACAC,mBAAqB,EAAAC,uBAAA;MACrBC,IAAA;MACAngB,QAAW,GAAA,QAAA;MACXjkB,OAAS,EAAA+1B,WAAA;MACTgL,WAAWsD,aAAgB,GAAA,QAAA;MAC3BxI,MAAA;MACAyI,eAAkB,GAAA,IAAA;MAClBnmB,QAAQmY,UAAa,GAAA,CAAA;MACrBiO,gBAAA;MACA3kB,MAAA;MACApH,QAAQgsB,UAAa,GAAA,CAAA;MACrBxrB,IAAO,GAAA,SAAA;MACPjT,OAAO0+B,SAAY,GAAA,MAAA;MACnB5lB,SAASgc,WAAc,GAAA,CAAA30B,EAAA,GAAAxH,KAAA,CAAMK,MAAO,CAAAghB,KAAA,KAAb,mBAAoBjB,OAAQ,CAAAD;IAEjD,CAAA,GAAAlgB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACJ,MAAM+lC,YAAe,GAAA,CAAAj+B,EAAA,GAAA6L,cAAA,CAAerP,eAAe,CAAA,KAA9B,IAAiC,GAAA,KAAA,CAAA,GAAAwD,EAAA,CAAAqL,MAAA;EAChD,MAAA9R,OAAA,GAAUkC,aAAa6zB,WAAW,CAAA;EAClC,MAAA5X,MAAA,GAASjc,aAAao0B,UAAU,CAAA;EAChC,MAAA9d,MAAA,GAAStW,aAAasiC,UAAU,CAAA;EAChC,MAAAz+B,KAAA,GAAQ7D,aAAauiC,SAAS,CAAA;EAC9B,MAAA5lB,OAAA,GAAU3c,aAAa24B,WAAW,CAAA;EAClC,MAAApD,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EAClC,MAAA4gB,QAAA,GAAWz/B,OAA8B,IAAI,CAAA;EACnD,MAAMi+B,YAA6B,GAAA,UAAA;EAE7B,MAAAmD,UAAA,GAAariC,QAAQ,MAAM;IAC/B,MAAMI,MAAoB,EAAC;IAG3B,IAAIshC,iBAAiBM,eAAiB,EAAA;MAChC5hC,GAAA,CAAAE,IAAA,CACFgiC,IAAK,CAAA;QACHtD,UAAUr+B,eAAmB,IAAA,KAAA,CAAA;QAC7BghC,kBAAA;QACAjkC,OAAS,EAAAwgC,uBAAA;QACTgB;MAAA,CACD,CAAA,CACH;IACF;IAGI9+B,GAAA,CAAAE,IAAA,CACFsb,MAAO,CAAA;MACL2mB,QAAA,EAAUf,YAAYvD,wBAA2B,GAAA;IAAA,CAClD,CAAA,CACH;IAGA,IAAIyD,iBAAiBG,uBAAyB,EAAA;MACxCzhC,GAAA,CAAAE,IAAA,CACFjC,IAAK,CAAA;QACHigC,cAAmE;UAAA,IAA7D;YAACgB,cAAA;YAAgBC,eAAiB;YAAAz+B,QAAA;YAAU0+B;WAAiB;UACjE,IAAIqC,uBAAyB,EAAA;YAClB/gC,QAAA,CAAA89B,QAAA,CAAS1jC,KAAM,CAAAuI,KAAA,aAAW+7B,cAAA,OAAA;UACrC;UAEA,IAAIkC,aAAe,EAAA;YACR5gC,QAAA,CAAA89B,QAAA,CAAS1jC,KAAM,CAAAm7B,QAAA,aAAciJ,cAAA,OAAA;YAC7Bx+B,QAAA,CAAA89B,QAAA,CAAS1jC,KAAM,CAAAikC,SAAA,aAAeI,eAAA,OAAA;UACzC;QACF,CAAA;QACA5+B,eAAA;QACA+gC,aAAA;QACAnD,OAAA;QACAqD,mBAAqB,EAAAC,uBAAA;QACrBnkC,OAAS,EAAAwgC;MAAA,CACV,CAAA,CACH;IACF;IAGA,IAAI8D,eAAiB,EAAA;MACf5hC,GAAA,CAAAE,IAAA,CACFkiC,KAAM,CAAA;QACJxD,UAAUr+B,eAAmB,IAAA,KAAA,CAAA;QAC7Bu+B,YAAA;QACAxhC,OAAS,EAAAwgC;MAAA,CACV,CAAA,CACH;IACF;IAGA,IAAIsD,SAAW,EAAA;MACTphC,GAAA,CAAAE,IAAA,CACFwrB,KAAM,CAAA;QACJ5rB,OAAS,EAAAwgC,QAAA;QACThjC,OAAS,EAAAwgC;MAAA,CACV,CAAA,CACH;IACF;IAEI99B,GAAA,CAAAE,IAAA,CACFmiC,IAAK,CAAA;MACHzD,UAAUr+B,eAAmB,IAAA,KAAA,CAAA;MAC7BjD,OAAS,EAAAwgC,uBAAA;MACT4C,QAAU,EAAA;IAAA,CACX,CAAA,CACH;IAEO,OAAA1gC,GAAA;EAAA,CACN,EAAA,CACDohC,SAAA,EACA7gC,eAAA,EACA+gC,aAAA,EACAC,kBAAA,EACApD,OAAA,EACAsD,uBAAA,EACAG,eAAA,CACD,CAAA;EAED,MAAMU,aAAkC,GAAA1iC,OAAA,CACtC,OAAO;IACLqiC,UAAA;IACA5D,SAAW,EAAAsD,aAAA;IACXY,oBAAsB,EAAAC;EAAA,CACxB,CAAA,EACA,CAACP,YAAYN,aAAa,CAAA,CAC5B;EAEM,MAAA;IACJx+B,CAAA;IACAC,CAAA;IACAi7B,SAAA;IACAI,SAAW,EAAAgE,YAAA;IACXjE,QAAU,EAAAkE,WAAA;IACVC,cAAA;IACAjC;EAAA,CACF,GAAIkC,YAAYN,aAAa,CAAA;EAEvB,MAAAO,eAAA,GAAA,CAAkBvQ,EAAe,GAAAqQ,cAAA,CAAAN,IAAA,KAAf,IAAqB,GAAA,KAAA,CAAA,GAAA/P,EAAA,CAAAuQ,eAAA;EAEvC,MAAAtC,MAAA,GAAA,CAAShO,EAAe,GAAAoQ,cAAA,CAAAjX,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAA6G,EAAA,CAAApvB,CAAA;EAC/B,MAAAq9B,MAAA,GAAA,CAAShO,EAAe,GAAAmQ,cAAA,CAAAjX,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAA8G,EAAA,CAAApvB,CAAA;EAE/B,MAAA0/B,QAAA,GAAWjU,WAAY,CAACkU,OAAmC,IAAA;IAC/DzC,QAAA,CAASt/B,OAAU,GAAA+hC,OAAA;EACrB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,WAAc,GAAAnU,WAAA,CACjB7lB,IAAgC,IAAA;IAC/B+rB,YAAA,CAAa/zB,OAAU,GAAAgI,IAAA;IACvB05B,WAAA,CAAY15B,IAAI,CAAA;EAClB,CAAA,EACA,CAAC05B,aAAa3N,YAAY,CAAA,CAC5B;EAEA,MAAMkO,YAAe,GAAApU,WAAA,CAClB7lB,IAA6B,IAAA;IAC5By5B,YAAA,CAAaz5B,IAAI,CAAA;IAGjB,MAAMk6B,WAAY7B,SAAmB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA3hB,GAAA;IAEjC,IAAA,OAAOwjB,aAAa,UAAY,EAAA;MAClCA,QAAA,CAASl6B,IAAI,CAAA;eACJk6B,QAAU,EAAA;MACnBA,QAAA,CAASliC,OAAU,GAAAgI,IAAA;IACrB;EACF,CAAA,EACA,CAACq4B,WAAWoB,YAAY,CAAA,CAC1B;EAEM,MAAA/R,KAAA,GAAQ9wB,QAAQ,MAAM;IAC1B,IAAI,CAACyhC,SAAa,IAAAQ,gBAAA,EAAyB,OAAA,IAAA;IAE3C,OAAO9Q,YAAa,CAAAsQ,SAAA,EAAW;MAAC3hB,GAAA,EAAKujB;IAAa,CAAA,CAAA;EACjD,CAAA,EAAA,CAAC5B,SAAW,EAAAQ,gBAAA,EAAkBoB,YAAY,CAAC,CAAA;EAE9CniC,SAAA,CAAU,MAAM;IACd2hC,YAAA,CAAaZ,oBAAoB,IAAI,CAAA;EAAA,CACpC,EAAA,CAACY,YAAc,EAAAZ,gBAAgB,CAAC,CAAA;EAEnC,IAAI3tB,QAAU,EAAA;IACZ,OAAOmtB,aAAe,eAAA3jB,GAAA,CAAAgS,QAAA,EAAA,CAAA,CAAA,CAAA;EACxB;EAEA,MAAMtT,yBACHsB,GAAA,CAAAwa,aAAA,EAAA;IAAc/b,OAAA;IACbc,QAAC,EAAA,eAAAS,GAAA,CAAAyiB,WAAA,kCACK5U,SAAA;MACJ6U,kBAAoB,EAAAjC,OAAA;MACpBzS,KAAO,EAAA0V,SAAA;MACPd,QAAU,EAAAwC,QAAA;MACVvC,MAAA;MACAC,MAAA;MACAC,aAAA,EAAemB,eAAkB,GAAAI,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,YAAA,CAAc3+B,KAAQ,GAAA,KAAA,CAAA;MACvD8/B,MAAQ,EAAAN,eAAA;MACRthB,QAAA;MACAjkB,OAAA;MACA+gC,SAAA;MACA5iB,MAAA;MACAiE,GAAK,EAAAsjB,WAAA;MACL9lB,MAAA;MACApH,MAAA;MACA4qB,QAAA;MACApqB,IAAA;MACAnT,CAAA;MACAC,CAAA;MACAC,KAAA;MAEC4Z,QAAA,EAAAzf;IAAA;EACH,CACF,CAAA;EAIA,OAAA,eAAAuxB,IAAA,CAAAW,QAAA,EAAA;IAEGzS,QAAA,EAAA,CACCykB,IAAA,IAAA,eAAAhkB,GAAA,CAAAgS,QAAA,EAAA;MACGzS,kCACES,GAAA,CAAAub,MAAA,EAAA;QAAOC,eAAiB,EAAA,OAAOC,MAAW,KAAA,QAAA,GAAWA,MAAS,GAAA,KAAA,CAAA;QAC5Dlc,QAAA,EAAAb;MACH,CAAA,CAEA,GAAAA;IAAA,CAEJ,CAAA,EAIDsU,KAAA;EAAA,CACH,CAAA;AAAA,CAEH,CAAA,CACH;AAEAwQ,OAAA,CAAQD,WAAc,GAAA,SAAA;AC5Sf,SAASmC,cAA6C,GAAA;EACpD,OAAA5a,GAAA;AAWT;AAEO,SAAS6a,kBAAkBpnC,KAA+C,EAAA;EACzE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAAC2Z,SAAA;IAAWe;GAAK,GAAI3a,KAAM,CAAAK,MAAA;EAC3B,MAAAqW,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAiE,KAAA;EACjC,MAAM2sB,QAAQ3sB,KAAM,CAAAiF,KAAA,CAAM3d,IAAO,GAAA0Y,KAAA,CAAMiF,MAAMC,QAAY,IAAA,CAAA;EAElD,OAAA2M,GAAA,62CAYYxtB,GAAI,CAAA2b,KAAA,CAAMiF,KAAM,CAAA3d,IAAA,GAAO,CAAC,CAAA,EAO7BjD,GAAA,CAAI2b,KAAM,CAAAiF,KAAA,CAAM3d,IAAI,CAAA,EACrBjD,GAAA,CAAI2b,KAAM,CAAAiF,KAAA,CAAM3d,IAAI,CAAA,EACZjD,GAAI,CAAA2b,KAAA,CAAMiF,KAAM,CAAA3d,IAAA,GAAO,CAAC,CAAA,EAC3ByU,KAAA,CAAMW,QAAQU,OAAQ,CAAA2B,EAAA,EACtBuN,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQU,OAAQ,CAAA3E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAKQrI,IAAIsoC,IAAI,CAAA,EACPtoC,IAAIsoC,IAAI,CAAA,EACNtoC,GAAA,CAAI2b,KAAM,CAAAiF,KAAA,CAAMC,QAAQ,CAAA,EACzB7gB,GAAA,CAAI2b,KAAM,CAAAiF,KAAA,CAAMC,QAAQ,CAAA,EAChB7gB,GAAI,CAAA2b,KAAA,CAAMiF,KAAM,CAAAC,QAAA,GAAW,CAAC,CAAA,EAC/BnJ,KAAA,CAAMW,QAAQU,OAAQ,CAAA4B,EAAA,EAOxBuN,cAAe,CAAA;IAC3B9T,MAAA,EAAQ;MAAC/L,KAAA,EAAOsT,KAAM,CAAAvH,MAAA,CAAO/L;MAAOqP,KAAO,EAAAA,KAAA,CAAMW,OAAQ,CAAAU,OAAA,CAAQ3E;IAAM,CAAA;IACvEwG;EAAA,CACD,CAAA,EAIaqN,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQU,OAAQ,CAAA3E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EASuBqP,KAAA,CAAMW,QAAQgG,QAAS,CAAAjK,MAAA,EACjCsD,KAAA,CAAMW,QAAQgG,QAAS,CAAA3D,EAAA,EAGrBhD,KAAA,CAAMW,QAAQgG,QAAS,CAAA1D,EAAA,EAMfjD,KAAA,CAAMW,QAAQa,QAAS,CAAA9E,MAAA,EACjCsD,KAAA,CAAMW,QAAQa,QAAS,CAAAwB,EAAA,EAGrBhD,KAAA,CAAMW,QAAQa,QAAS,CAAAyB,EAAA;AAI7C;AC5FA,MAAMkV,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAIqY,cAAc,CAAA;AACtC,MAAMvO,OAAA,GAAQ/J,MAAO,CAAAnU,KAAA,CAAM0sB,iBAAiB,CAAA;AAKrC,MAAME,KAAQ,GAAApY,UAAA,CAAW,SAASoY,MAAAA,CACvCtnC,OACA84B,YACA,EAAA;EACA,MAAM;MAACtd,SAAW;MAAAvD,QAAA;MAAUpZ;MAAO+kB,cAAgB;MAAAxG;IAA0B,CAAA,GAAApd,KAAA;IAAbsvB,qCAAatvB,KAAA;EACvE,MAAAyjB,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExCnV,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC,OACG,eAAAkP,IAAA,CAAAlE,MAAA,EAAA;IAAKpT,SAAA;IAAsB,SAAQ,EAAA,OAAA;IAAQ3c,KAAA;IAC1CmiB,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmX,OAAA;MACC,gBAAgB,EAAA,CAAC3gB,QAAY,IAAAmF,QAAA,GAAW,EAAK,GAAA,KAAA;IAAA,GACzCkS,SAAA;MACJrX,UAAUA,QAAY,IAAAmF,QAAA;MACtBA,QAAA;MACAqG,GAAA;MACAhb,IAAK,EAAA;IAAA,GACP,EAAA,mBACC,MAAK,EAAA,EAAA,CAAA;EAAA,CACR,CAAA;AAEJ,CAAC,CAAA;AC7BD,SAASm8B,SAAwC,GAAA;EACxC,OAAArY,GAAA;AAQT;AAEA,SAASgb,eAAevnC,KAA+C,EAAA;EAC/D,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA4sB,IAAA,GAAO7sB,KAAM,CAAAK,MAAA,CAAOO,KAAM,CAAAse,IAAA;EAEzB,OAAAsN,GAAA,gTAIUK,IAAK,CAAAhsB,MAAA;AAUxB;AAEA,SAAS4mC,gBAAgBxnC,KAAmB,EAAA;EACpC,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAAC2Z,SAAA;IAAWe;GAAK,GAAI3a,KAAM,CAAAK,MAAA;EAC3B,MAAAqW,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAiE,KAAA;EAE1B,OAAA6R,GAAA,ksBAEe9V,KAAA,CAAMW,QAAQU,OAAQ,CAAA2B,EAAA,EACjChD,KAAA,CAAMW,QAAQU,OAAQ,CAAA4B,EAAA,EACjBsN,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQU,OAAQ,CAAA3E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAKuBqP,KAAA,CAAMW,QAAQc,OAAQ,CAAAuB,EAAA,EACjChD,KAAA,CAAMW,QAAQc,OAAQ,CAAAwB,EAAA,EACjBsN,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQc,OAAQ,CAAA/E,MAAA;IAC7B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAMW6f,cAAe,CAAA;IAC3B9T,MAAA,EAAQ;MAAC/L,KAAA,EAAOsT,KAAM,CAAAvH,MAAA,CAAO/L;MAAOqP,KAAO,EAAAA,KAAA,CAAMW,OAAQ,CAAAU,OAAA,CAAQ3E;IAAM,CAAA;IACvEwG;EAAA,CACD,CAAA,EAKmBlD,KAAA,CAAMW,QAAQgG,QAAS,CAAA3D,EAAA,EAClChD,KAAA,CAAMW,QAAQgG,QAAS,CAAA1D,EAAA,EAClBsN,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQgG,QAAS,CAAAjK,MAAA;IAC9B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA,EAKmBqP,KAAA,CAAMW,QAAQa,QAAS,CAAAwB,EAAA,EAClChD,KAAA,CAAMW,QAAQa,QAAS,CAAAyB,EAAA,EAClBsN,oBAAqB,CAAA;IACjCvQ,KAAA,EAAOA,KAAM,CAAAW,OAAA,CAAQa,QAAS,CAAA9E,MAAA;IAC9B/L,KAAA,EAAOsT,MAAMvH,MAAO,CAAA/L;EAAA,CACrB,CAAA;AAGP;AAEA,SAASqgC,SAASzlC,IAAqB,EAAA;EAC9B,OAAA;IAACD,QAAU,EAAAhD,GAAA,CAAIiD,IAAK,CAAAD,QAAQ;IAAGM,UAAY,EAAAtD,GAAA,CAAIiD,IAAK,CAAAK,UAAU;GAAC;AACxE;AAEA,SAASqlC,mBAAmB1nC,KAA2C,EAAA;EAC/D,MAAA;IAACD,KAAO;IAAAwrB;EAAa,CAAA,GAAAvrB,KAAA;EAC3B,MAAM;IAACa;EAAA,CAAS,GAAAd,KAAA,CAAMK,OAAOO,KAAM,CAAAse,IAAA;EAE5B,OAAAhgB,WAAA,CAAYc,MAAMK,MAAO,CAAAlB,KAAA,EAAOqsB,SAAA,EAAYzpB,SACjD,IAAA2lC,QAAA,CAAS5mC,KAAM,CAAAiB,SAAA,CAAA,IAAcjB,MAAM,CAAE,CAAA,CAAA,CACvC;AACF;AAEA,SAAS8mC,UASP,GAAA;EACO,OAAA,CACL3Z,qBAAA,EACAuZ,cAAA,EACAC,eAAA,EACAE,kBAAA,EACArb,oCAAA,CACF;AACF;AAEA,SAASub,aAAa5nC,KAA+C,EAAA;EAC7D,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAAyW,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAiE,KAAA;EAE1B,OAAA6R,GAAA,8hBAOc9V,KAAA,CAAMW,QAAQU,OAAQ,CAAA4B,EAAA,EAKlBjD,KAAA,CAAMW,QAAQc,OAAQ,CAAAwB,EAAA,EAMxBjD,KAAA,CAAMW,QAAQa,QAAS,CAAAyB,EAAA,EAKvBjD,KAAA,CAAMW,QAAQgG,QAAS,CAAA1D,EAAA;AAGhD;AAEO,MAAMmuB,WAAc,GAAA;EACzB9lB,IAAM,EAAA6iB,SAAA;EACNlqB,KAAO,EAAAitB,UAAA;EACPG,OAAS,EAAAF;AACX,CAAA;ACnJA,MAAMhZ,MAAO,GAAAC,MAAA,CAAOC,GAAI,CAAA+Y,WAAA,CAAY9lB,IAAI,CAAA;AAExC,MAAM6W,OAAQ,GAAA/J,MAAA,CAAOkZ,MAKlB,CAAAF,WAAA,CAAYntB,KAAK,CAAA;AAEpB,MAAMstB,OAAU,GAAAnZ,MAAA,CAAOmG,GAAG,CAAA,CAAE6S,YAAYC,OAAO,CAAA;AAKxC,MAAMG,MAAS,GAAA/Y,UAAA,CAAW,SAAS+Y,OAAAA,CACxCjoC,OACA84B,YACA,EAAA;EACM,MAAA;MACJ9X,QAAA;MACA4C,cAAA;MACA3L,QAAA;MACAlW,QAAW,GAAA,CAAA;MACXV,OAAU,GAAA,CAAA;MACVme,MAAS,GAAA,CAAA;MACTpC,QAAA;MACA9c,KAAQ,GAAA;IAEN,CAAA,GAAAN,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEE,MAAAyjB,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExCnV,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC,OACG,eAAAkP,IAAA,CAAAlE,MAAA,EAAA;IAAK,SAAQ,EAAA,QAAA;IACZ5N,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmX,OAAA;MACC,gBAAgB,EAAA,CAAC3gB,QAAY,IAAAmF,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC7C,SAAQ,EAAA;IAAA,GACJkS,SAAA;MACJ/D,SAAA,EAAWhoB,aAAaxB,QAAQ,CAAA;MAChC2pB,QAAA,EAAUnoB,aAAalC,OAAO,CAAA;MAC9B4sB,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;MAC5BmM,MAAA,EAAQpoB,aAAajD,KAAK,CAAA;MAC1B2X,UAAUA,QAAY,IAAAmF,QAAA;MACtBqG,GAAA;MAECzC;IAAA,GACH,EAEC,eAAAS,GAAA,CAAAumB,OAAA,EAAA;MAAQ3mC,OAAA;MACP2f,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;QAAKjtB,IAAM,EAAAD,QAAA;QACVif,6BAACknB,UAAW,EAAA,EAAA;MAAA,CACd;IAAA,CACF,CAAA;EAAA,CACF,CAAA;AAEJ,CAAC,CAAA;ACrED,MAAM7jB,UAAwB,GAAA;EAC5B,kBAAoB,EAAA;IAClB7iB,OAAS,EAAA;EACX,CAAA;EACA,iCAAmC,EAAA;IACjC8iB,SAAW,EAAA;EACb,CAAA;EACAyE,mBAAqB,EAAA,gBAAA;EACrBN,YAAc,EAAA;AAChB,CAAA;AAEO,SAAS0f,cAA4B,GAAA;EACnC,OAAA9jB,UAAA;AACT;AAEO,SAAS+jB,0BACdpoC,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAACd,KAAA;IAAOoB;GAAK,GAAIP,KAAM,CAAAK,MAAA;EAE7B,OAAOnB,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA2rB,MAAA,EAAStrB,UAAgB,KAAA;IACvD8oB,OAAA,EAASpqB,GAAI,CAAAuB,KAAA,CAAMD,UAAW,CAAA;EAC9B,CAAA,CAAA,CAAA;AACJ;ACjBA,MAAMuuB,MAAO,GAAAC,MAAA,CAAOmG,GAAG,CAAA,CAAkCmT,gBAAgBC,yBAAyB,CAAA;AAK3F,MAAMC,KAAQ,GAAAnZ,UAAA,CAAW,SAASmZ,MAAAA,CACvCroC,OACAyjB,GACA,EAAA;EACA,MAAM;MAAC2N,EAAA;MAAI9wB;IAAU,CAAa,GAAAN,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAElC,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IACC,SAAS,EAAA,OAAOwC,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA;EAAA,GACJ9B,SAAA;IACJ3D,MAAA,EAAQpoB,aAAajD,KAAK,CAAA;IAC1Bw1B,WAAa,EAAA1E,EAAA;IACb3N;EAAA,GACF;AAEJ,CAAC,CAAA;AC9BM,SAAS6kB,gBAA+C,GAAA;EACtD,OAAA/b,GAAA;AAMT;AAGO,SAASgc,iBAAgD,GAAA;EAEvD,OAAAhc,GAAA;AAgBT;AAGO,SAASic,2BAA2BxoC,KAA+C,EAAA;EAClF,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM;IAAC2Z,SAAA;IAAWe;GAAK,GAAI3a,KAAM,CAAAK,MAAA;EACjC,MAAMqW,KAAQ,GAAA1W,KAAA,CAAMK,MAAO,CAAAqW,KAAA,CAAMY,MAAO,CAAAD,OAAA;EAEjC,OAAAmV,GAAA,i1CACgB9V,KAAA,CAAMW,QAAQU,OAAQ,CAAA2B,EAAA,EACtBhD,KAAA,CAAMW,QAAQU,OAAQ,CAAA4B,EAAA,EAOlC3a,GAAA,CAAI2b,KAAM,CAAAmF,MAAA,CAAOzY,KAAK,CAAA,EACrBrI,GAAA,CAAI2b,KAAM,CAAAmF,MAAA,CAAOpe,MAAM,CAAA,EAChB1C,GAAI,CAAA2b,KAAA,CAAMmF,MAAO,CAAApe,MAAA,GAAS,CAAC,CAAA,EAoBnBwlB,cAAA,CAAe;IAACtN;EAAA,CAAU,CAAA,EAQ5BlD,KAAA,CAAMc,SAASO,OAAQ,CAAA2B,EAAA,EACvBhD,KAAA,CAAMc,SAASO,OAAQ,CAAA4B,EAAA,EAKrBjD,KAAA,CAAMW,QAAQc,OAAQ,CAAAuB,EAAA,EACtBhD,KAAA,CAAMW,QAAQc,OAAQ,CAAAwB,EAAA,EAItBjD,KAAA,CAAMc,SAASW,OAAQ,CAAAuB,EAAA,EACvBhD,KAAA,CAAMc,SAASW,OAAQ,CAAAwB,EAAA,EAKzBjD,KAAA,CAAMW,QAAQa,QAAS,CAAAwB,EAAA,EACvBhD,KAAA,CAAMW,QAAQa,QAAS,CAAAyB,EAAA;AAGlD;AAGO,SAAS+uB,kBAAkBzoC,KAA+C,EAAA;EACzE,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAAC0a;EAAK,CAAA,GAAI3a,KAAM,CAAAK,MAAA;EAEf,OAAAmsB,GAAA,qSAQIxtB,GAAA,CAAI2b,KAAM,CAAAmF,MAAA,CAAOzY,KAAK,CAAA,EACrBrI,GAAA,CAAI2b,KAAM,CAAAmF,MAAA,CAAOpe,MAAM,CAAA,EAChB1C,GAAI,CAAA2b,KAAA,CAAMmF,MAAO,CAAApe,MAAA,GAAS,CAAC,CAAA;AAEhD;AAGO,SAASinC,kBACd1oC,KAC4B,EAAA;EACtB,MAAA;IAAC2oC,cAAgB;IAAA5oC;EAAS,CAAA,GAAAC,KAAA;EAC1B,MAAA;IAAC0a;EAAK,CAAA,GAAI3a,KAAM,CAAAK,MAAA;EAChB,MAAAwoC,UAAA,GAAaluB,MAAMmF,MAAO,CAAAzY,KAAA;EAC1B,MAAAyhC,WAAA,GAAcnuB,MAAMmF,MAAO,CAAApe,MAAA;EAC3B,MAAAqnC,YAAA,GAAepuB,MAAMmF,MAAO,CAAAxe,OAAA;EAClC,MAAMW,IAAO,GAAA6mC,WAAA,GAAcnuB,KAAM,CAAAmF,MAAA,CAAOxe,OAAU,GAAA,CAAA;EAC5C,MAAA0nC,aAAA,GAAgBH,UAAa,GAAAE,YAAA,GAAe,CAAI,GAAA9mC,IAAA;EACtD,MAAMgnC,mBAAsB,GAAAJ,UAAA,GAAa,CAAI,GAAA5mC,IAAA,GAAO,CAAI,GAAA8mC,YAAA;EACxD,MAAM/P,OAAU,GAAA4P,cAAA,KAAmB,IAAQ,IAAA3oC,KAAA,CAAMipC,QAAa,KAAA,IAAA;EAEvD,OAAA1c,GAAA,idAKGxtB,IAAI+pC,YAAY,CAAA,EACjB/pC,IAAI+pC,YAAY,CAAA,EACb/pC,IAAIiD,IAAI,CAAA,EACTjD,IAAIiD,IAAI,CAAA,EACAjD,GAAA,CAAIiD,OAAO,CAAC,CAAA,EAEN0Y,MAAMmF,MAAO,CAAAC,oBAAA,EACNpF,MAAMmF,MAAO,CAAAE,wBAAA,EAIzCgZ,OACF,IAAAxM,GAAA,6HAC2Bwc,aAAA,CAAA,EAGzBJ,cACF,IAAApc,GAAA,6HAC2Byc,mBAAA,CAAA;AAG/B;AChJA,MAAMpa,MAAA,GAAOC,MAAO,CAAAG,IAAA,CAAKsZ,gBAAgB,CAAA;AACzC,MAAM1P,OAAA,GAAQ/J,MAAO,CAAAnU,KAAA,CAAM6tB,iBAAiB,CAAA;AAC5C,MAAMW,cAAA,GAAiBra,MAAO,CAAAG,IAAA,CAAKwZ,0BAA0B,CAAA;AAC7D,MAAMW,KAAA,GAAQta,MAAO,CAAAG,IAAA,CAAKyZ,iBAAiB,CAAA;AAC3C,MAAMW,KAAA,GAAQva,MAAO,CAAAG,IAAA,CAAqD0Z,iBAAiB,CAAA;AAKpF,MAAMW,MAAS,GAAAna,UAAA,CAAW,SAASma,OAAAA,CACxCrpC,OACA84B,YACA,EAAA;EACM,MAAA;MAACC;MAASvd,SAAW;MAAAvD,QAAA;MAAU+gB;MAAe5b,QAAU;MAAAve;IAAuB,CAAA,GAAAmB,KAAA;IAAbsvB,qCAAatvB,KAAA;EAC/E,MAAAyjB,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExCj0B,SAAA,CAAU,MAAM;IACd,IAAI4e,IAAI1e,OAAS,EAAA;MAEX0e,GAAA,CAAA1e,OAAA,CAAQi0B,gBAAgBA,aAAiB,IAAA,KAAA;IAC/C;EAAA,CACC,EAAA,CAACA,aAAe,EAAAvV,GAAG,CAAC,CAAA;EAEvB,OACG,eAAAqP,IAAA,CAAAlE,MAAA,EAAA;IAAKpT,SAAA;IAAsB,SAAQ,EAAA,QAAA;IAAS3c,KAAA;IAC3CmiB,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmX,OAAA;MACC,gBAAgB,EAAA,CAAC3gB,QAAY,IAAAmF,QAAA,GAAW,EAAK,GAAA,KAAA;IAAA,GACzCkS,SAAA;MACJyJ,OAAA,EAASC,kBAAkB,IAAQ,IAAAD,OAAA;MACnC9gB,UAAUA,QAAY,IAAAmF,QAAA;MACtB3U,IAAK,EAAA,UAAA;MACLgb;IAAA,GACF,EACC,eAAAqP,IAAA,CAAAoW,cAAA,EAAA;MAAe,aAAW,EAAA,IAAA;MAAC,WAAU,EAAA,gBAAA;MACpCloB,QAAA,EAAA,CAAA,eAAAS,GAAA,CAAC0nB,KAAM,EAAA,EAAA,CAAA,EACN,eAAA1nB,GAAA,CAAA2nB,KAAA,EAAA;QAAMH,QAAU,EAAAlQ,OAAA;QAAS4P,cAAgB,EAAA3P;MAAA,CAAe,CAAA;IAAA,CAC3D,CAAA;EAAA,CACF,CAAA;AAEJ,CAAC,CAAA;AC5BD,MAAMpK,MAAA,GAAOC,MAAO,CAAAG,IAAA,CAAKxC,kBAAkB,CAAA;AAE3C,MAAM8c,cAAYza,MAAO,CAAAG,IAAA,kJAAA;AAOzB,MAAM4J,UAAQ/J,MAAO,CAAA0a,QAAA,CACnBje,2BAAA,EACAmB,kBAAA,EACAI,sBAAA,CACF;AAEA,MAAM2c,iBAAe3a,MAAO,CAAAC,GAAA,CAC1Bd,qBAAA,EACAlB,4BAAA,CACF;AAKO,MAAM2c,QAAW,GAAAva,UAAA,CAAW,SAASua,SAAAA,CAC1CzpC,OACA84B,YACA,EAAA;EACM,MAAA;MACJ3lB,MAAS,GAAA,IAAA;MACTyQ,cAAA;MACA3L,QAAW,GAAA,KAAA;MACXlW,QAAW,GAAA,CAAA;MACXV,OAAU,GAAA,CAAA;MACVme,MAAS,GAAA,CAAA;MACT6P;IAEE,CAAA,GAAArvB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEE,MAAAyjB,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExC,MAAML,YAAY5W,YAAa,EAAA;EAE/B8B,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC,OACG,eAAAnC,GAAA,CAAAmN,MAAA,EAAA;IAAK,SAAQ,EAAA,UAAA;IACZ5N,QAAC,EAAA,eAAA8R,IAAA,CAAAwW,WAAA,EAAA;MACCtoB,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmX,OAAA;QACC,SAAQ,EAAA,UAAA;QACR,eAAaH,SAAU,CAAAxX,MAAA;QACvB,aAAWwX,SAAU,CAAApe;MAAA,GACjBiV,SAAA;QACJ/D,SAAA,EAAWhoB,aAAaxB,QAAQ,CAAA;QAChC2pB,QAAA,EAAUnoB,aAAalC,OAAO,CAAA;QAC9BqrB,SAAS+L,SAAU,CAAAxX,MAAA;QACnB0K,MAAA,EAAQpoB,aAAa,CAAC,CAAA;QACtBopB,OAAO8L,SAAU,CAAApe,IAAA;QACjB3Z,OAAS,EAAA2uB,MAAA;QACTpX,QAAA;QACAwL;MAAA,GACF,EACC,eAAAhC,GAAA,CAAA+nB,cAAA,EAAA;QACCvb,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;QAC5BkN,SAAS+L,SAAU,CAAAxX,MAAA;QACnB0L,OAAO8L,SAAU,CAAApe,IAAA;QACjB,aAAA,EAAalH,SAAS,EAAK,GAAA,KAAA,CAAA;QAC3B,eAAaslB,SAAU,CAAAxX,MAAA;QACvB,aAAWwX,SAAU,CAAApe;MAAA,CACvB,CAAA;IAAA,CACF;EAAA,CACF,CAAA;AAEJ,CAAC,CAAA;AC5BD,MAAMqvB,sBAAA,GAA8C;EAACzZ,MAAA,EAAQ;CAAC;AAE9D,MAAMrB,MAAA,GAAOC,MAAO,CAAAwJ,IAAI,CAAE,CAAAsR,KAAA,CAAM;EAAC7T,WAAa,EAAA;AAAA,CAAO,CAAA,CAAEtJ,kBAAkB,CAAA;AAEzE,MAAM8c,YAAYza,MAAO,CAAAG,IAAA,kJAAA;AAOzB,MAAM4a,MAAA,GAAS/a,OAAOwJ,IAAI,CAAA,CAAEsR,MAAM;EAAC7T,WAAA,EAAa;CAAO,CAAA,yMAAA;AAUvD,MAAM+T,MAAA,GAAShb,OAAOwJ,IAAI,CAAA,CAAEsR,MAAM;EAAC7T,WAAA,EAAa;CAAO,CAAA,uMAAA;AAUvD,MAAM8C,QAAQ/J,MAAO,CAAAnU,KAAA,CACnB4Q,2BAAA,EACAmB,kBAAA,EACAI,sBAAA,CACF;AAEA,MAAM2c,eAAe3a,MAAO,CAAAG,IAAA,CAC1BhB,qBAAA,EACAlB,4BAAA,CACF;AAEA,MAAMgd,OAAA,GAAUjb,OAAOmG,GAAG,CAAA,yHAAA;AAM1B,MAAM+U,QAAA,GAAWlb,OAAOmG,GAAG,CAAA,0HAAA;AAM3B,MAAMgV,SAAA,GAAYnb,OAAOwJ,IAAI,CAAA,4JAAA;AAUtB,MAAM4R,SAAY,GAAA/a,UAAA,CAAW,SAAS+a,UAAAA,CAC3CjqC,OACA84B,YACA,EAAA;EACM,MAAA;MACJ3lB,MAAS,GAAA,IAAA;MACT+2B,WAAA;MACAjyB,QAAW,GAAA,KAAA;MACXlW,UAAUooC,YAAe,GAAA,CAAA;MACzBnT,IAAA;MACAC,SAAA;MACAmT,OAAA;MACA/oC,SAAS+1B,WAAc,GAAA,CAAA;MACvBiT,MAAA;MACA7qB,QAAQmY,UAAa,GAAA,CAAA;MACrBva,QAAA;MACA9c,OAAOs3B,SAAY,GAAA,CAAA;MACnB0S,MAAA;MACA1mB,cAAA;MACAnb,IAAO,GAAA,MAAA;MACP4mB;IAEE,CAAA,GAAArvB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEE,MAAAyjB,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExC,MAAML,YAAY5W,YAAa,EAAA;EAEzB,MAAA9f,QAAA,GAAWwB,aAAa4mC,YAAY,CAAA;EACpC,MAAA9oC,OAAA,GAAUkC,aAAa6zB,WAAW,CAAA;EAClC,MAAA5X,MAAA,GAASjc,aAAao0B,UAAU,CAAA;EAChC,MAAAr3B,KAAA,GAAQiD,aAAaq0B,SAAS,CAAA;EAG9B,MAAA2S,eAAA,GAAkBpmC,QAAQ+lC,WAAW,CAAA;EACrC,MAAAM,QAAA,GAAWrmC,QAAQ6yB,IAAI,CAAA;EACvB,MAAAyT,aAAA,GAAgBtmC,QAAQ8yB,SAAS,CAAA;EACjC,MAAAjK,UAAA,GAAa7oB,QAAQmmC,MAAM,CAAA;EAC3B,MAAAvd,UAAA,GAAa5oB,QAAQkmC,MAAM,CAAA;EAEjC1mB,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAG/B,MAAA8mB,oBAAA,GAAuB9X,WAAY,CAACzsB,KAA+C,IAAA;IACvFA,KAAA,CAAMwkC,cAAe,EAAA;IACrBxkC,KAAA,CAAMykC,eAAgB,EAAA;EACxB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,gBAAmB,GAAAjY,WAAA,CACtBzsB,KAA+C,IAAA;IA1LpD,IAAAoB,EAAA;IA2LMpB,KAAA,CAAMwkC,cAAe,EAAA;IACrBxkC,KAAA,CAAMykC,eAAgB,EAAA;IAElB,IAAAR,OAAA,EAAiBA,OAAA,EAAA;IAGrB,CAAA7iC,EAAA,GAAAkc,GAAA,CAAI1e,YAAJ,IAAa,GAAA,KAAA,CAAA,GAAAwC,EAAA,CAAAk4B,KAAA,EAAA;EACf,CAAA,EACA,CAAC2K,SAAS3mB,GAAG,CAAA,CACf;EAGA,MAAMqnB,UAAa,GAAAnnC,OAAA,CACjB,MACE0mC,yBACG5oB,GAAA,CAAAmoB,MAAA,EAAA;IAAO5+B,SAAS,EAAA,IAAA;IAACM,UAAU,EAAA,IAAA;IAACF,YAAY,EAAA,IAAA;IAACoU,MAAA;IAAgB2F,MAAO,EAAA,QAAA;IAAS9K,IAAK,EAAA,SAAA;IAC7E2G,QAAC,EAAA,eAAAS,GAAA,CAAA,MAAA,EAAA;MAAMT,QAAA,EAAAqpB;IAAA,CAAO;EAAA,CAChB,CAAA,EAEJ,CAACA,QAAQ7qB,MAAM,CAAA,CACjB;EAGA,MAAMurB,gBAAmB,GAAApnC,OAAA,CACvB,MACG,eAAAmvB,IAAA,CAAA0W,YAAA,EAAA;IACCzc,UAAA;IACAC,UAAA;IACAiB,OAAS,EAAAzO,MAAA;IACTkN,SAAS+L,SAAU,CAAAxX,MAAA;IACnB0L,OAAO8L,SAAU,CAAApe,IAAA;IACjB,aAAA,EAAalH,SAAS,EAAK,GAAA,KAAA,CAAA;IAC3B,eAAaslB,SAAU,CAAAxX,MAAA;IACvB,aAAWwX,SAAU,CAAApe,IAAA;IAEpB2G,QAAA,EAAA,CAAAgW,IAAA,IAAA,eACEvV,GAAA,CAAAqoB,OAAA,EAAA;MAAQzoC,OAAA;MACP2f,QAAC,EAAA,eAAA8R,IAAA,CAAA7D,IAAA,EAAA;QAAKjtB,IAAM,EAAAD,QAAA;QACTif,QAAA,EAAA,CAAA8W,cAAA,CAAed,IAAI,CAAK,IAAAA,IAAA,EACxBhF,kBAAmB,CAAAgF,IAAI,CAAK,IAAAe,aAAA,CAAcf,IAAI,CAAA;MAAA,CACjD;IAAA,CACF,CAAA,EAGD,CAACuT,eAAmB,IAAAtT,SAAA,mBAClBxV,GAAA,CAAAsoB,QAAA,EAAA;MAAS1oC,OAAA;MACR2f,QAAC,EAAA,eAAA8R,IAAA,CAAA7D,IAAA,EAAA;QAAKjtB,IAAM,EAAAD,QAAA;QACTif,QAAA,EAAA,CAAA8W,cAAA,CAAeb,SAAS,CAAK,IAAAA,SAAA,EAC7BjF,kBAAmB,CAAAiF,SAAS,CAAK,IAAAc,aAAA,CAAcd,SAAS,CAAA;MAAA,CAC3D;IAAA,CACF,CAAA;EAAA,CAEJ,CAAA,EAEF,CACE9jB,MAAA,EACApR,QAAA,EACAi1B,IAAA,EACAC,SAAA,EACA51B,OAAA,EACAme,MAAA,EACAiZ,SAAA,EACA8R,eAAA,EACAxd,UAAA,EACAC,UAAA,CACF,CACF;EAGA,MAAMge,qBAAwB,GAAArnC,OAAA,CAC5B,MACEtC,OAAA,CAAQ/B,GAAI,CAAC+8B,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACh7B,OAAO,CAAA,CACV;EACA,MAAM4pC,kBAAqB,GAAAtnC,OAAA,CACzB,MACEtC,OAAA,CAAQ/B,GAAI,CAAC+8B,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACh7B,OAAO,CAAA,CACV;EACA,MAAM6pC,gBAA8C,GAAAvnC,OAAA,CAClD,MAAO,OAAOumC,WAAgB,KAAA,QAAA,GAAWA,WAAc,GAAA/rC,YAAA,EACvD,CAAC+rC,WAAW,CAAA,CACd;EACA,MAAMiB,eAAkB,GAAAxnC,OAAA,CACtB,MACE,CAACsU,QAAA,IACD,CAACmF,QAAA,IACD8sB,eACG,eAAAzoB,GAAA,CAAAuoB,SAAA,EAAA;IACClU,WAAY,EAAA,MAAA;IACZz0B,OAAS,EAAA2pC,qBAAA;IACTnsC,KAAO,EAAA6qC,sBAAA;IACPrvB,IAAA,EAAMuJ,iBAAiB,UAAa,GAAA,SAAA;IAEpC5C,QAAC,EAAA,eAAAS,GAAA,CAAAsV,MAAA;MACC,SAAQ,EAAA,cAAA;MACRh1B,QAAA;MACAi1B,IAAM,EAAAoU,SAAA;MACNj0B,IAAK,EAAA,OAAA;MACL9V,OAAS,EAAA4pC,kBAAA;MACTzrB;IAAA,GACI0rB,gBAAA;MACJG,OAAS,EAAAR,gBAAA;MACTS,WAAa,EAAAZ;IAAA;EACf,CACF,CAAA,EAEJ,CACER,WAAA,EACAc,qBAAA,EACAC,kBAAA,EACAC,gBAAA,EACAtnB,cAAA,EACA3L,QAAA,EACAlW,QAAA,EACA8oC,gBAAA,EACAH,oBAAA,EACAlrB,MAAA,EACApC,QAAA,CACF,CACF;EAGA,MAAMmuB,UAAa,GAAA5nC,OAAA,CACjB,MACE2mC,yBACG7oB,GAAA,CAAAooB,MAAA,EAAA;IAAO7+B,SAAS,EAAA,IAAA;IAACE,WAAW,EAAA,IAAA;IAACE,YAAY,EAAA,IAAA;IAACoU,MAAA;IAAgB2F,MAAO,EAAA,QAAA;IAAS9K,IAAK,EAAA,SAAA;IAC9E2G,QAAC,EAAA,eAAAS,GAAA,CAAA,MAAA,EAAA;MAAMT,QAAA,EAAAspB;IAAA,CAAO;EAAA,CAChB,CAAA,EAEJ,CAAC9qB,QAAQ8qB,MAAM,CAAA,CACjB;EAEA,OACG,eAAAxX,IAAA,CAAAlE,MAAA,EAAA;IAAK,SAAQ,EAAA,WAAA;IAAYvU,MAAMoe,SAAU,CAAApe,IAAA;IACvC2G,QAAA,EAAA,CAAA8pB,UAAA,EAEA,eAAAhY,IAAA,CAAAwW,SAAA,EAAA;MACCtoB,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmX,KAAA;QACC,SAAQ,EAAA,OAAA;QACR,eAAaH,SAAU,CAAAxX,MAAA;QACvB,aAAWwX,SAAU,CAAApe;MAAA,GACjBiV,SAAA;QACJ/D,SAAW,EAAAxpB,QAAA;QACXypB,SAAW,EAAAgf,QAAA;QACX/e,YAAYgf,aAAiB,IAAAF,eAAA;QAC7B7e,QAAU,EAAArqB,OAAA;QACVqrB,SAAS+L,SAAU,CAAAxX,MAAA;QACnB0K,MAAQ,EAAArrB,KAAA;QACRqsB,OAAO8L,SAAU,CAAApe,IAAA;QACjB3Z,OAAS,EAAA2uB,MAAA;QACTpX,QAAA;QACAmF,QAAA;QACAqG,GAAA;QACAhb;MAAA,GACF,EAECsiC,gBAAA,EACAI,eAAA;IAAA,CACH,CAAA,EAECI,UAAA;EAAA,CACH,CAAA;AAEJ,CAAC,CAAA;ACxWD,MAAM3c,SAAOC,MAAO,CAAAC,GAAA,u6BAAA;AA6DpB,MAAM0c,SAAS3c,MAAO,CAAA6U,IAAA,sHAAA;AAItB,MAAM+H,QAAQ5c,MAAO,CAAA6U,IAAA,0GAAA;AAMd,MAAMgI,YAAe,GAAAxc,UAAA,CAAW,SAASwc,aAAAA,CAC9C1rC,OACAyjB,GACA,EAAA;EACM,MAAI6L,oDAAatvB,KAAA,GAAAA,KAAA;EAEvB,OACG,eAAAyhB,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAqBU,SAAA;IAAW7L,GAAA;IAC5CzC,QAAC,EAAA,eAAA8R,IAAA,CAAA,KAAA,EAAA;MAAI1rB,KAAM,EAAA,IAAA;MAAK3F,MAAO,EAAA,IAAA;MAAKsxB,OAAQ,EAAA,WAAA;MAClC/R,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAA+pB,MAAA,EAAA;QAAOxY,CAAE,EAAA;MAAA,CAAmW,CAAA,EAC5W,eAAAvR,GAAA,CAAAgqB,KAAA,EAAA;QAAMzY,CAAE,EAAA;MAAA,CAAyL,CAAA;IAAA,CACpM;EAAA,GACF;AAEJ,CAAC,CAAA;ACxCD,MAAMpE,MAAA,GAAOC,OAAO4N,KAAK,CAAA,oGAAA;AAOlB,MAAMkP,OAAU,GAAAzc,UAAA,CAAW,SAASyc,QAAAA,CACzC3rC,OACAyjB,GACA,EAAA;EA1DF,IAAAlc,EAAA,EAAAO,EAAA,EAAAuuB,EAAA;EA2DE,MAAM6O,yBAAyBnK,kBAAmB,EAAA;EAClD,MAAMh7B,QAAQiiB,QAAS,EAAA;EACjB,MAAA;MACJ1d,kBAAkB4gC,sBAAwB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,sBAAA,CAAArhC,OAAA;MAC1Cmd,QAAU,EAAAokB,SAAA;MACV7jC,OAAA;MACA0W,QAAA;MACAqtB,kBAAoB,EAAAsG,sBAAA;MACpBvqC,OAAA;MACA+gC,WAAWsD,aAAgB,GAAA,QAAA;MAC3BxI,MAAA;MACAjc,MAAA;MACApH,MAAS,GAAA,CAAA;MACTqG,OAAU,GAAA,CAAA3Y,EAAA,GAAAxH,KAAA,CAAMK,MAAO,CAAAghB,KAAA,KAAb,mBAAoBhB,OAAQ,CAAAF;IAEpC,CAAA,GAAAlgB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACE,MAAAslC,kBAAA,GAAqB/hC,aAAaqoC,sBAAsB,CAAA;EACxD,MAAA9S,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAACmiB,gBAAA,EAAkBiG,mBAAmB,CAAA,GAAIrnC,SAA6B,IAAI,CAAA;EAC3E,MAAA6/B,QAAA,GAAWz/B,OAA8B,IAAI,CAAA;EACnD,MAAMi+B,YAA6B,GAAA,UAAA;EAE7B,MAAAmD,UAAA,GAAariC,QAAQ,MAAM;IAC/B,MAAMI,MAAoB,EAAC;IAGvBA,GAAA,CAAAE,IAAA,CACFgiC,IAAK,CAAA;MACHtD,UAAUr+B,eAAmB,IAAA,KAAA,CAAA;MAC7BghC,kBAAA;MACAjkC,OAAS,EAAA,CAAA;MACTwhC;IAAA,CACD,CAAA,CACH;IAGA9+B,GAAA,CAAIE,KAAKsb,MAAO,CAAA;MAAC2mB,QAAU,EAAA;IAAE,CAAA,CAAC,CAAA;IAG1BniC,GAAA,CAAAE,IAAA,CACFkiC,KAAM,CAAA;MACJxD,UAAUr+B,eAAmB,IAAA,KAAA,CAAA;MAC7Bu+B,YAAA;MACAxhC,OAAS,EAAA;IAAA,CACV,CAAA,CACH;IAGI0C,GAAA,CAAAE,IAAA,CAAKwrB,MAAM;MAAC5rB,OAAA,EAASwgC;MAAUhjC,OAAS,EAAA;IAAE,CAAA,CAAC,CAAA;IAExC,OAAA0C,GAAA;EAAA,CACN,EAAA,CAACO,eAAiB,EAAAghC,kBAAkB,CAAC,CAAA;EAElC,MAAA;IAACp+B,CAAG;IAAAC,CAAA;IAAGi7B,SAAW;IAAAI,SAAA;IAAWD;IAAUmE,cAAgB;IAAAoF,MAAA;IAAQrH;EAAQ,CAAA,GAAIkC,WAAY,CAAA;IAC3FX,UAAA;IACA5D,SAAW,EAAAsD,aAAA;IACXY,oBAAsB,EAAAC;EAAA,CACvB,CAAA;EAED,MAAM3B,SAA2B,GAAAjhC,OAAA,CAC/B,OAAO;IACLxC,QAAU,EAAAsjC,QAAA;IACVpmC,KAAK8I,CAAK,IAAA,IAAA,GAAAA,CAAA,GAAA,CAAA;IACV3I,MAAM0I,CAAK,IAAA,IAAA,GAAAA,CAAA,GAAA;EAAA,CACb,CAAA,EACA,CAACu9B,QAAU,EAAAv9B,CAAA,EAAGC,CAAC,CAAA,CACjB;EAEA,MAAM09B,aAAazC,SAAa,IAAAhkC,qBAAA,CAAsBgkC,SAAU,CAAA0C,KAAA,CAAM,GAAG,CAAE,CAAA,CAAA,CAAA,CAAA;EAErE,MAAAR,MAAA,GAAA,CAASx8B,EAAe,GAAA4+B,cAAA,CAAAjX,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAA3nB,EAAA,CAAAZ,CAAA;EAC/B,MAAAq9B,MAAA,GAAA,CAASlO,EAAe,GAAAqQ,cAAA,CAAAjX,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAA4G,EAAA,CAAAlvB,CAAA;EAE/B,MAAA49B,UAAA,GAA4BphC,QAAQ,MAAM;IAC9C,MAAM9E,KAAuB,GAAA;MAC3BL,IAAA,EAAM8lC,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;MACjCjmC,GAAA,EAAKkmC,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;MAChCjmC,KAAO,EAAA,KAAA,CAAA;MACPC,MAAQ,EAAA,KAAA;IAAA,CACV;IAEI,IAAAsmC,UAAA,EAAYhmC,KAAA,CAAMgmC,UAAc,CAAA,GAAA,CAAA,EAAA;IAE7B,OAAAhmC,KAAA;EACN,CAAA,EAAA,CAACylC,MAAQ,EAAAC,MAAA,EAAQM,UAAU,CAAC,CAAA;EAE/B,MAAM,CAACkH,MAAA,EAAQC,SAAS,CAAA,GAAIxnC,SAAS,KAAK,CAAA;EAC1C,MAAMynC,aAAarZ,WAAY,CAAA,MAAMoZ,UAAU,KAAK,CAAA,EAAG,EAAE,CAAA;EACzD,MAAME,cAActZ,WAAY,CAAA,MAAMoZ,UAAU,IAAI,CAAA,EAAG,EAAE,CAAA;EACzD,MAAMG,mBAAmBvZ,WAAY,CAAA,MAAMoZ,UAAU,IAAI,CAAA,EAAG,EAAE,CAAA;EAC9D,MAAMI,mBAAmBxZ,WAAY,CAAA,MAAMoZ,UAAU,KAAK,CAAA,EAAG,EAAE,CAAA;EAK/DnnC,SAAA,CAAU,MAAM;IACd,IAAI,CAACknC,MAAA,EAAQ;IAEb,SAASM,sBAAsBlmC,KAAmB,EAAA;MAChD,IAAI,CAACy/B,gBAAA,EAAkB;MAEjB,MAAA0G,mBAAA,GACJ1G,gBAAqB,KAAAz/B,KAAA,CAAMf,MAC1B,IAAAe,KAAA,CAAMf,kBAAkBC,IAAQ,IAAAugC,gBAAA,CAAiBtgC,QAAS,CAAAa,KAAA,CAAMf,MAAM,CAAA;MAEzE,IAAI,CAACknC,mBAAqB,EAAA;QACxBN,SAAA,CAAU,KAAK,CAAA;QACRzmC,MAAA,CAAAE,mBAAA,CAAoB,aAAa4mC,qBAAqB,CAAA;MAC/D;IACF;IAEO9mC,MAAA,CAAAC,gBAAA,CAAiB,aAAa6mC,qBAAqB,CAAA;IAE1D,OAAO,MAAM;MACJ9mC,MAAA,CAAAE,mBAAA,CAAoB,aAAa4mC,qBAAqB,CAAA;IAAA,CAC/D;EAAA,CACC,EAAA,CAACN,MAAQ,EAAAnG,gBAAgB,CAAC,CAAA;EAG7B/gC,SAAA,CAAU,MAAM;IACV,IAAAoT,QAAA,EAAU+zB,SAAA,CAAU,KAAK,CAAA;EAAA,CAC/B,EAAG,CAAC/zB,QAAQ,CAAC,CAAA;EAGbpT,SAAA,CAAU,MAAM;IACd,IAAI,CAACtD,OAAA,EAASyqC,SAAA,CAAU,KAAK,CAAA;EAAA,CAC/B,EAAG,CAACzqC,OAAO,CAAC,CAAA;EAGZsD,SAAA,CAAU,MAAM29B,SAAU,CAAAoD,gBAAgB,GAAG,CAACpD,SAAA,EAAWoD,gBAAgB,CAAC,CAAA;EAE1E,MAAMiB,QAAW,GAAAjU,WAAA,CACdkU,OAAmC,IAAA;IAClCzC,QAAA,CAASt/B,OAAU,GAAA+hC,OAAA;IACZgF,MAAA,EAAA;EACT,CAAA,EACA,CAACA,MAAM,CAAA,CACT;EAEA,MAAM/E,WAAc,GAAAnU,WAAA,CACjB7lB,IAAgC,IAAA;IAC/B+rB,YAAA,CAAa/zB,OAAU,GAAAgI,IAAA;IACvBw1B,QAAA,CAASx1B,IAAI,CAAA;EACf,CAAA,EACA,CAACw1B,UAAUzJ,YAAY,CAAA,CACzB;EAEA,MAAMmO,WAA8C7B,SAAmB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA3hB,GAAA;EAEvE,MAAMujB,YAAe,GAAApU,WAAA,CAClB7lB,IAA6B,IAAA;IACxB,IAAA,OAAOk6B,aAAa,UAAY,EAAA;MAClCA,QAAA,CAASl6B,IAAI,CAAA;eACJk6B,QAAU,EAAA;MACnBA,QAAA,CAASliC,OAAU,GAAAgI,IAAA;IACrB;IAGA8+B,mBAAA,CAAoB9+B,IAAI,CAAA;EAC1B,CAAA,EACA,CAACk6B,QAAQ,CAAA,CACX;EAEM,MAAAxS,KAAA,GAAQ9wB,QAAQ,MAAM;IAC1B,IAAI,CAACyhC,SAAA,EAAkB,OAAA,IAAA;IAEvB,OAAOtQ,aAAasQ,SAAW,EAAA;MAC7BmH,MAAQ,EAAAN,UAAA;MACRO,OAAS,EAAAN,WAAA;MACTO,YAAc,EAAAN,gBAAA;MACdO,YAAc,EAAAN,gBAAA;MACd3oB,GAAK,EAAAujB;IAAA,CACN,CAAA;EAAA,CACH,EAAG,CAAC5B,SAAW,EAAA6G,UAAA,EAAYC,aAAaC,gBAAkB,EAAAC,gBAAA,EAAkBpF,YAAY,CAAC,CAAA;EAEzF,IAAI,CAACvS,KAAA,EAAO,sBAAShT,GAAA,CAAAgS,QAAA,EAAA,CAAA,CAAA,CAAA;EAEjB,IAAAxb,QAAA,EAAiB,OAAAwc,KAAA;EAErB,MAAM1S,sBACHN,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAcU,SAAA;IAAW7L,GAAK,EAAAsjB,WAAA;IAAaloC,KAAO,EAAA+lC,SAAA;IAAW1kB,OAAA;IACzEc,QAAC,EAAA,eAAA8R,IAAA,CAAAuF,IAAA,EAAA;MACC,SAAQ,EAAA,eAAA;MACR,gBAAgB,EAAA+J,SAAA;MAChB/gC,OAAA;MACAme,MAAQ,EAAA,CAAA;MACRyB,MAAA;MACApH,MAAA;MAECmH,QAAA,EAAA,CAAAzf,OAAA,EACA,eAAAkgB,GAAA,CAAAiqB,YAAA,EAAA;QAAajoB,GAAK,EAAAojB,QAAA;QAAUhoC,KAAO,EAAAkmC;MAAA,CAAY,CAAA;IAAA,CAClD;EAAA,GACF;EAIA,OAAA,eAAAjS,IAAA,CAAAW,QAAA,EAAA;IACGzS,QAAA,EAAA,CAAAyT,KAAA,EAEAsX,MACC,IAAA,eAAAtqB,GAAA,CAAAgS,QAAA,EAAA;MACGzS,kCACES,GAAA,CAAAub,MAAA,EAAA;QAAOC,eAAiB,EAAA,OAAOC,MAAW,KAAA,QAAA,GAAWA,MAAS,GAAA,KAAA,CAAA;QAC5Dlc,QAAA,EAAAe;MACH,CAAA,CAEA,GAAAA;IAAA,CAEJ,CAAA;EAAA,CAEJ,CAAA;AAEJ,CAAC,CAAA;ACxQM,MAAM6M,SAAOC,MAAO,CAAAC,GAAA,8FAAA;AAOd,MAAA6d,OAAA,GAAU9d,OAAOmG,GAAG,CAAA,oJAAA;AAQjC,MAAMe,MAAS,GAAAC,SAAA,uKAAA;AAaF,MAAA4W,mBAAA,GAAsB/d,OAAOqH,WAAW,CAAA,sHACtCH,MAAA,CAAA;ACzBR,SAAS8W,mBAAmB7sC,KAAoD,EAAA;EACrF,MAAM;IAACghB,QAAU;IAAAhF,EAAA;IAAI8wB,QAAU;IAAA10B,QAAA;IAAUzZ;EAAS,CAAA,GAAAqB,KAAA;EAE5C,MAAA+sC,WAAA,GAAcna,YAAY,MAAM;IAGpCoa,UAAA,CAAW,MAAM;MACfF,QAAA,CAASnuC,KAAK,CAAA;OACb,CAAC,CAAA;EAAA,CACH,EAAA,CAACmuC,QAAU,EAAAnuC,KAAK,CAAC,CAAA;EAEpB,MAAMsuC,aAAgB,GAAAra,WAAA,CACnBzsB,KAA8C,IAAA;IAC7C,IAAIA,MAAMrH,GAAQ,KAAA,OAAA,IAAW,CAAC0/B,sBAAuB,CAAAr4B,KAAA,CAAM+mC,aAAa,CAAG,EAAA;MAC7DH,WAAA,EAAA;IACd;EACF,CAAA,EACA,CAACA,WAAW,CAAA,CACd;EAEA,OACG,eAAAtrB,GAAA,CAAA,IAAA,EAAA;IACC,eAAe,EAAArJ,QAAA;IACf,SAAQ,EAAA,oBAAA;IACR4D,EAAA;IACAmxB,IAAK,EAAA,QAAA;IACL9B,OAAS,EAAA0B,WAAA;IACT/4B,SAAW,EAAAi5B,aAAA;IAEVjsB;EAAA,CACH,CAAA;AAEJ;ACtCgB,SAAAosB,mBAAA,CACdp1B,OACA/R,GACmB,EAAA;EACf,IAAAA,GAAA,CAAIwC,SAAS,cAAgB,EAAA;IACxB,uCAAIuP,KAAO;MAAAq1B,WAAA,EAAa;MAAMC,OAAS,EAAA,IAAA;MAAMC,KAAO,EAAAtnC,GAAA,CAAIsnC;IAAK;EACtE;EAEI,IAAAtnC,GAAA,CAAIwC,SAAS,aAAe,EAAA;IAC9B,uCAAWuP,KAAO;MAAAs1B,OAAA,EAAS;IAAI;EACjC;EAEI,IAAArnC,GAAA,CAAIwC,SAAS,WAAa,EAAA;IAC5B,uCAAWuP,KAAA;MAAOs1B,OAAS,EAAA,KAAA;MAAOC,OAAO;IAAI;EAC/C;EAEI,IAAAtnC,GAAA,CAAIwC,SAAS,YAAc,EAAA;IACtB,uCAAIuP,KAAO;MAAAq1B,WAAA,EAAa;MAAME,KAAO,EAAA,IAAA;MAAM5uC,OAAO;IAAI;EAC/D;EAEI,IAAAsH,GAAA,CAAIwC,SAAS,aAAe,EAAA;IAC9B,uCAAWuP,KAAA;MAAOs1B,OAAS,EAAA,KAAA;MAAOC,OAAO;IAAI;EAC/C;EAEI,IAAAtnC,GAAA,CAAIwC,SAAS,WAAa,EAAA;IAC5B,uCAAWuP,KAAA;MAAOu1B,OAAOv1B,KAAM,CAAAu1B,KAAA,IAAStnC,IAAIsnC;IAAK;EACnD;EAEI,IAAAtnC,GAAA,CAAIwC,SAAS,qBAAuB,EAAA;IAC/B,uCAAIuP,KAAA;MAAOq1B,WAAa,EAAApnC,GAAA,CAAItH;MAAO6uC,WAAa,EAAAvnC,GAAA,CAAIunC,WAAe,IAAAx1B,KAAA,CAAMw1B;IAAW;EAC7F;EAEI,IAAAvnC,GAAA,CAAIwC,SAAS,qBAAuB,EAAA;IACtC,uCAAWuP,KAAO;MAAAw1B,WAAA,EAAavnC,IAAIunC;IAAW;EAChD;EAEI,IAAAvnC,GAAA,CAAIwC,SAAS,cAAgB,EAAA;IACxB,uCAAIuP,KAAA;MAAOq1B,WAAa,EAAApnC,GAAA,CAAItH;MAAO4uC,KAAO,EAAA,IAAA;MAAM5uC,KAAO,EAAAsH,GAAA,CAAItH;IAAK;EACzE;EAEO,OAAAqZ,KAAA;AACT;ACzCO,MAAMy1B,gCAAmC,GAAA,CAC9C,SAAA,EACA,OAAA,EACA,KAAA,EACA,OAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACA,UAAA,EACA,MAAA,EACA,KAAA,EACA,UAAA,CACF;AAKO,MAAMC,8BAA4C,GAAA,cAAA;AAK5C,MAAAC,wCAAA,GAAwD,CAAC,cAAA,EAAgB,WAAW,CAAA;AC2DjG,MAAMC,uBAAuB,CAACjvC,KAAA,EAAekvC,MAC3C,KAAAA,MAAA,GAASA,OAAOlvC,KAAQ,GAAAA,KAAA;AAE1B,MAAMmvC,qBAAwB,GAAA,CAACP,KAAe,EAAAM,MAAA,KAC5CA,MAAO,CAAAlvC,KAAA,CAAMovC,WAAY,EAAA,CAAEz7B,OAAQ,CAAAi7B,KAAA,CAAMQ,WAAY,EAAC,CAAI,GAAA,CAAA,CAAA;AAE5D,MAAMC,iBAAoB,GAAA9e,UAAA,CAAW,SAAS8e,kBAAAA,CAG5ChuC,OAsBAyjB,GACA,EAAA;EACM,MAAA;MACJtQ,MAAS,GAAA,IAAA;MACTyQ,cAAA;MACA3L,QAAA;MACAg2B,YAAc,EAAAC,gBAAA;MACdnsC,QAAW,GAAA,CAAA;MACXi1B,IAAA;MACAhb,EAAA;MACAmyB,OAAU,GAAAhwC,YAAA;MACVg5B,OAAA;MACAoV,MAAA;MACArM,QAAA;MACAsM,OAAA;MACA4B,aAAA;MACAtB,QAAA;MACAuB,UAAA;MACAr8B,OAAS,EAAAs8B,WAAA;MACTjtC,SAAS+1B,WAAc,GAAA,CAAA;MACvBjX,OAAU,GAAAhiB,YAAA;MACVksC,MAAA;MACA7qB,MAAS,GAAA,CAAA;MACTpC,QAAA;MACAmxB,eAAA;MACAC,YAAc,EAAAC,gBAAA;MACdC,aAAA;MACAC,WAAc,GAAAf,oBAAA;MACdtD,MAAA;MACA3rC,KAAO,EAAAiwC;IAEL,CAAA,GAAA5uC,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEJ,MAAM,CAACgY,KAAA,EAAO62B,QAAQ,CAAA,GAAIC,WAAW1B,mBAAqB,EAAA;IACxDC,aAAauB,SAAa,IAAA,IAAA;IAC1BtB,OAAS,EAAA,KAAA;IACTE,WAAa,EAAA,KAAA;IACbD,KAAO,EAAA,IAAA;IACP5uC,OAAOiwC,SAAa,IAAA;EAAA,CACrB,CAAA;EAED,MAAM;IAACvB,WAAa;IAAAC,OAAA;IAASE,WAAa;IAAAD,KAAA;IAAO5uC;EAAS,CAAA,GAAAqZ,KAAA;EAE1D,MAAM+2B,mBAAsB,GAAAnc,WAAA,CAC1B;IAAA,IAAC;MAACj0B,KAAAA,EAAAA;;WACC,eAAA8iB,GAAA,CAAA4W,IAAA,EAAA;MAAK,SAAQ,EAAA,QAAA;MAASh3B,OAAS,EAAA+1B,WAAA;MAAa5X,MAAQ,EAAA,CAAA;MAAGnF,IAAK,EAAA,SAAA;MAC3D2G,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;QAAKjtB,IAAM,EAAAD,QAAA;QAAUqtB,YAAa,EAAA,UAAA;QAChCpO,QAAAriB,EAAAA;MAAA,CACH;IAAA,CACF,CAAA;EAAA,GAEF,CAACoD,UAAUq1B,WAAW,CAAA,CACxB;EAEA,MAAMoX,YACJ,GAAA,OAAOC,gBAAqB,KAAA,UAAA,GAAaA,gBAAmB,GAAAM,mBAAA;EAE9D,MAAMd,YACJ,GAAA,OAAOC,gBAAqB,KAAA,UAAA,GAAaA,gBAAmB,GAAAJ,qBAAA;EAGxD,MAAAkB,cAAA,GAAiBpqC,OAA8B,IAAI,CAAA;EACnD,MAAAqqC,wBAAA,GAA2BrqC,OAA8B,IAAI,CAAA;EAC7D,MAAAsqC,eAAA,GAAkBtqC,OAAgC,IAAI,CAAA;EACtD,MAAAuqC,iBAAA,GAAoBvqC,OAA8B,IAAI,CAAA;EAGtD,MAAAwqC,cAAA,GAAiBxqC,OAAO,KAAK,CAAA;EAC7B,MAAA04B,QAAA,GAAW14B,OAAOjG,KAAK,CAAA;EACvB,MAAA0wC,YAAA,GAAezqC,OAAOgqC,SAAS,CAAA;EAC/B,MAAAU,qBAAA,GAAwB1qC,OAAO,KAAK,CAAA;EAEpC,MAAAk0B,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EAExC,MAAM8rB,sBAAevzB,EAAA,aAAA;EACrB,MAAMhK,OAAU,GAAApS,KAAA,CAAMC,OAAQ,CAAAyuC,WAAW,IAAIA,WAAc,GAAApwC,WAAA;EACrD,MAAAmD,OAAA,GAAUkC,aAAa6zB,WAAW,CAAA;EACxC,MAAMoY,aAAgB,GAAA7rC,OAAA,CACpB,MAAOhF,KAAU,KAAA,IAAA,GAAOqT,OAAQ,CAAAy9B,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAE/wC,KAAU,KAAAA,KAAK,CAAI,GAAA,KAAA,CAAA,EACjE,CAACqT,SAASrT,KAAK,CAAA,CACjB;EACA,MAAMgxC,eAAkB,GAAAhsC,OAAA,CACtB,MAAMqO,OAAQ,CAAA9N,MAAA,CAAQ2pC,MAAA,IAAYN,QAAQU,YAAa,CAAAV,KAAA,EAAOM,MAAM,CAAA,GAAI,IAAK,CAAA,EAC7E,CAACI,YAAc,EAAAj8B,OAAA,EAASu7B,KAAK,CAAA,CAC/B;EACA,MAAMqC,qBAAqBD,eAAgB,CAAAxvC,MAAA;EAC3C,MAAM0vC,YAAe,GAAAxC,WAAA,aAAiBrxB,EAAA,qBAAaqxB,WAAgB,IAAA,KAAA,CAAA;EACnE,MAAMyC,QAAY,GAAAvC,KAAA,KAAU,IAAQ,IAAApW,OAAA,IAAamW,WAAWC,KAAU,KAAA,IAAA;EAEtE,MAAMwC,cAAiB,GAAAnd,WAAA,CACpBzsB,KAAwC,IAAA;IACvC6mC,UAAA,CAAW,MAAM;MAIf,IAAIsC,sBAAsBvqC,OAAS,EAAA;QACjC;MACF;MAEM,MAAAN,QAAA,GAAA,CAA2B8pC,eAAmB,IAAA,EAAI,EAAAl/B,MAAA,CACtD2/B,eAAejqC,OAAU,GAAA,CAACiqC,cAAe,CAAAjqC,OAAO,IAAI,EAAC,EACrDkqC,yBAAyBlqC,OAAU,GAAA,CAACkqC,wBAAyB,CAAAlqC,OAAO,IAAI,EAAC,CAC3E;MAEA,IAAIirC,WAAc,GAAA,KAAA;MAElB,IAAI1pC,SAAS64B,aAAe,EAAA;QAC1B,KAAA,MAAW8Q,KAAKxrC,QAAU,EAAA;UACxB,IAAIwrC,MAAM3pC,QAAS,CAAA64B,aAAA,IAAiB8Q,EAAE3qC,QAAS,CAAAgB,QAAA,CAAS64B,aAAa,CAAG,EAAA;YACxD6Q,WAAA,GAAA,IAAA;YACd;UACF;QACF;MACF;MAEA,IAAIA,gBAAgB,KAAO,EAAA;QAChBnB,QAAA,CAAA;UAACpmC,IAAM,EAAA;QAAA,CAAY,CAAA;QAC5B6mC,qBAAA,CAAsBvqC,OAAU,GAAA,KAAA;QAC5B,IAAAqpC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;QACjC,IAAA7B,MAAA,EAAQA,MAAA,CAAOpmC,KAAK,CAAA;MAC1B;OACC,CAAC,CAAA;EACN,CAAA,EACA,CAAComC,MAAQ,EAAA6B,aAAA,EAAeG,eAAe,CAAA,CACzC;EAEM,MAAA2B,eAAA,GAAkBtd,WAAY,CAACzsB,KAAsC,IAAA;IACzE,MAAMgqC,iBAAiBhB,iBAAkB,CAAApqC,OAAA;IACzC,MAAMqrC,cAAiB,GAAAjqC,KAAA,CAAMf,MAAkB,YAAAy7B,WAAA,GAAc16B,MAAMf,MAAS,GAAA,IAAA;IACtEooC,MAAAA,YAAAA,GAAAA,CAAc2C,cAAgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,cAAA,CAAA7qC,QAAA,CAAS8qC,cAAmB,CAAA,KAAA,KAAA;IAE5D5C,IAAAA,YAAAA,KAAgB4B,eAAerqC,OAAS,EAAA;MAC1CqqC,cAAA,CAAerqC,OAAUyoC,GAAAA,YAAAA;MAEzBqB,QAAA,CAAS;QAACpmC,IAAA,EAAM,qBAAuB;QAAA+kC,WAAA,EAAAA;MAAY,CAAA,CAAA;IACrD;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM6C,kBAAqB,GAAAzd,WAAA,CACxByJ,CAAc,IAAA;IAhQnB,IAAA90B,EAAA;IAiQMsnC,QAAA,CAAS;MAACpmC,IAAA,EAAM,cAAgB;MAAA9J,KAAA,EAAO09B;IAAE,CAAA,CAAA;IAEzCiT,qBAAA,CAAsBvqC,OAAU,GAAA,KAAA;IAE5B,IAAA+nC,QAAA,EAAUA,QAAA,CAASzQ,CAAC,CAAA;IAExBiB,QAAA,CAASv4B,OAAU,GAAAs3B,CAAA;IAEf,IAAA6D,QAAA,EAAUA,QAAA,CAAS7D,CAAC,CAAA;IACpB,IAAA+R,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;IAErC,CAAA7mC,EAAA,GAAA2nC,eAAA,CAAgBnqC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAAwC,EAAA,CAAAk4B,KAAA,EAAA;EAC3B,CAAA,EACA,CAACS,QAAU,EAAA4M,QAAA,EAAUsB,aAAa,CAAA,CACpC;EAEA,MAAMkC,iBAAoB,GAAA1d,WAAA,CACvBzsB,KAAsC,IAAA;IAlR3C,IAAAoB,EAAA,EAAAO,EAAA;IAmRU,IAAA3B,KAAA,CAAMrH,QAAQ,WAAa,EAAA;MAC7BqH,KAAA,CAAMwkC,cAAe,EAAA;MAErB,IAAI,CAACiF,kBAAA,EAAoB;MAEzB,MAAMW,eAAeZ,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAE/wC,UAAU0uC,WAAW,CAAA;MACxE,MAAMmD,WAAc,GAAAD,YAAA,GAAeZ,eAAgB,CAAAr9B,OAAA,CAAQi+B,YAAY,CAAI,GAAA,CAAA,CAAA;MACrE,MAAAE,gBAAA,GAAmBd,eAAiB,CAAA,CAAAa,WAAA,GAAc,CAAK,IAAAZ,kBAAA,CAAA;MAE7D,IAAIa,gBAAkB,EAAA;QACX5B,QAAA,CAAA;UAACpmC,MAAM,qBAAuB;UAAA9J,KAAA,EAAO8xC,iBAAiB9xC,KAAO;UAAA6uC,WAAA,EAAa;SAAK,CAAA;MAC1F;MAEA;IACF;IAEI,IAAArnC,KAAA,CAAMrH,QAAQ,SAAW,EAAA;MAC3BqH,KAAA,CAAMwkC,cAAe,EAAA;MAErB,IAAI,CAACiF,kBAAA,EAAoB;MAEzB,MAAMW,eAAeZ,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAE/wC,UAAU0uC,WAAW,CAAA;MACxE,MAAMmD,WAAc,GAAAD,YAAA,GAAeZ,eAAgB,CAAAr9B,OAAA,CAAQi+B,YAAY,CAAI,GAAA,CAAA,CAAA;MACrE,MAAAE,gBAAA,GACJd,gBACEa,WAAgB,KAAA,CAAA,CAAA,GACZZ,qBAAqB,CACpB,GAAA,CAAAA,kBAAA,GAAqBY,cAAc,CAAK,IAAAZ,kBAAA,CAAA;MAGjD,IAAIa,gBAAkB,EAAA;QACX5B,QAAA,CAAA;UAACpmC,MAAM,qBAAuB;UAAA9J,KAAA,EAAO8xC,iBAAiB9xC,KAAO;UAAA6uC,WAAA,EAAa;SAAK,CAAA;MAC1F;MAEA;IACF;IAEI,IAAArnC,KAAA,CAAMrH,QAAQ,QAAU,EAAA;MACjB+vC,QAAA,CAAA;QAACpmC,IAAM,EAAA;MAAA,CAAc,CAAA;MAC9B6mC,qBAAA,CAAsBvqC,OAAU,GAAA,KAAA;MAC5B,IAAAqpC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;MACrC,CAAA7mC,EAAA,GAAA2nC,eAAA,CAAgBnqC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAAwC,EAAA,CAAAk4B,KAAA,EAAA;MAEzB;IACF;IAEA,MAAMr6B,SAASe,KAAM,CAAAf,MAAA;IACrB,MAAMsrC,SAASvB,iBAAkB,CAAApqC,OAAA;IAG9B,IAAA,CAAA2rC,MAAA,KAAWtrC,MAAU,KAAAsrC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQprC,QAAS,CAAAF,MAAA,CAAA,CAAA,KACvC,CAACqoC,gCAAiC,CAAAxoC,QAAA,CAASkB,KAAM,CAAArH,GAAG,CACpD,EAAA;MACA,CAAAgJ,EAAA,GAAAonC,eAAA,CAAgBnqC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA+C,EAAA,CAAA23B,KAAA,EAAA;MAEzB;IACF;EACF,CAAA,EACA,CAAC4N,WAAA,EAAasC,eAAiB,EAAAC,kBAAA,EAAoBxB,aAAa,CAAA,CAClE;EAEA,MAAMuC,iBAAoB,GAAA/d,WAAA,CACvBzsB,KAAyC,IAAA;IAClC,MAAAyqC,SAAA,GAAYzqC,MAAM+mC,aAAc,CAAAvuC,KAAA;IAEtCkwC,QAAA,CAAS;MAACpmC,IAAA,EAAM,cAAgB;MAAA8kC,KAAA,EAAOqD;IAAU,CAAA,CAAA;IAE7C,IAAAxC,aAAA,EAAeA,aAAA,CAAcwC,SAAS,CAAA;EAC5C,CAAA,EACA,CAACxC,aAAa,CAAA,CAChB;EAEA,MAAMyC,gBAAmB,GAAAje,WAAA,CACtBzsB,KAAwC,IAAA;IACvC,IAAI,CAACmnC,OAAS,EAAA;MACHuB,QAAA,CAAA;QAACpmC,IAAM,EAAA;MAAA,CAAc,CAAA;MAE1B,IAAA+jC,OAAA,EAASA,OAAA,CAAQrmC,KAAK,CAAA;IAC5B;EACF,CAAA,EACA,CAACmnC,SAASd,OAAO,CAAA,CACnB;EAEM,MAAAsE,uBAAA,GAA0Ble,YAAY,MAAM;IAChD0c,qBAAA,CAAsBvqC,OAAU,GAAA,IAAA;EAClC,CAAA,EAAG,EAAE,CAAA;EAEC,MAAAgsC,uBAAA,GAA0Bne,YAAY,MAAM;IAChD0c,qBAAA,CAAsBvqC,OAAU,GAAA,KAAA;EAClC,CAAA,EAAG,EAAE,CAAA;EAEC,MAAAisC,sBAAA,GAAyBpe,YAAY,MAAM;IA9WnD,IAAArrB,EAAA;IA+WasnC,QAAA,CAAA;MAACpmC,IAAM,EAAA;IAAA,CAAa,CAAA;IAC7B60B,QAAA,CAASv4B,OAAU,GAAA,EAAA;IACf,IAAAm7B,QAAA,EAAUA,QAAA,CAAS,EAAE,CAAA;IACrB,IAAAkO,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;IACrC,CAAA7mC,EAAA,GAAA2nC,eAAA,CAAgBnqC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAAwC,EAAA,CAAAk4B,KAAA,EAAA;EAAA,CACxB,EAAA,CAACS,QAAU,EAAAkO,aAAa,CAAC,CAAA;EAEtB,MAAA6C,sBAAA,GAAyBre,YAAY,MAAM;IACtCic,QAAA,CAAA;MAACpmC,IAAM,EAAA;IAAA,CAAc,CAAA;EAChC,CAAA,EAAG,EAAE,CAAA;EAGL5D,SAAA,CAAU,MAAM;IAEV,IAAA+pC,SAAA,KAAcS,aAAatqC,OAAS,EAAA;MACtCsqC,YAAA,CAAatqC,OAAU,GAAA6pC,SAAA;MAEvB,IAAIA,cAAc,KAAW,CAAA,EAAA;QAC3BC,QAAA,CAAS;UAACpmC,IAAA,EAAM,cAAgB;UAAA9J,KAAA,EAAOiwC;QAAU,CAAA,CAAA;QACjDtR,QAAA,CAASv4B,OAAU,GAAA6pC,SAAA;MACrB;MAEA;IACF;IAGI,IAAAA,SAAA,KAActR,SAASv4B,OAAS,EAAA;MAClCu4B,QAAA,CAASv4B,UAAU6pC,SAAa,IAAA,IAAA;MAEhCC,QAAA,CAAS;QAACpmC,IAAM,EAAA,cAAA;QAAgB9J,KAAO,EAAAiwC,SAAA,IAAa;OAAK,CAAA;IAC3D;EAAA,CACF,EAAG,CAACA,SAAS,CAAC,CAAA;EAGd/pC,SAAA,CAAU,MAAM;IACV,IAAA,CAACyoC,OAAW,IAAAhQ,QAAA,CAASv4B,OAAS,EAAA;MAChC8pC,QAAA,CAAS;QAACpmC,IAAM,EAAA,qBAAA;QAAuB9J,KAAO,EAAA2+B,QAAA,CAASv4B;OAAQ,CAAA;IACjE;EAAA,CACF,EAAG,CAACuoC,OAAO,CAAC,CAAA;EAGZzoC,SAAA,CAAU,MAAM;IACd,MAAMqsC,cAAc/B,iBAAkB,CAAApqC,OAAA;IAEtC,IAAI,CAACmsC,WAAA,EAAa;IAElB,MAAMX,eAAeZ,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAE/wC,UAAU0uC,WAAW,CAAA;IAExE,IAAIkD,YAAc,EAAA;MACV,MAAAC,WAAA,GAAcb,eAAgB,CAAAr9B,OAAA,CAAQi+B,YAAY,CAAA;MAClD,MAAAY,iBAAA,GAAoBD,YAAYvR,UAAW,CAAA6Q,WAAA,CAAA;MAEjD,IAAIW,iBAAmB,EAAA;QACjB,IAAAjS,SAAA,CAAUiS,iBAAiB,CAAG,EAAA;UAEhC;QACF;QAEAzR,oBAAA,CAAqByR,iBAAiB,CAAA;MACxC;IACF;EAAA,CACC,EAAA,CAAC9D,WAAa,EAAAsC,eAAe,CAAC,CAAA;EAEjC,MAAMtU,MAAS,GAAAzI,WAAA,CACZ5uB,EAAgC,IAAA;IAC/BkrC,eAAA,CAAgBnqC,OAAU,GAAAf,EAAA;IAC1B80B,YAAA,CAAa/zB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAAC80B,YAAY,CAAA,CACf;EAEM,MAAAoR,WAAA,GAAcvmC,QAAQ,MAAM;IAChC,IAAI,CAACwzB,OAAA,IAAW,CAAClf,QAAA,IAAYtZ,KAAO,EAAA;MAC3B,OAAA;QACL,YAAc,EAAA,OAAA;QACd6tC,OAAS,EAAAyE;MAAA,CACX;IACF;IAEO,OAAA,KAAA,CAAA;KACN,CAACh5B,QAAA,EAAUg5B,sBAAwB,EAAA9Z,OAAA,EAASx4B,KAAK,CAAC,CAAA;EAErD,MAAMyyC,oBAAuB,GAAAztC,OAAA,CAC3B,MACEtC,OAAA,CAAQ/B,GAAI,CAAC+8B,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACh7B,OAAO,CAAA,CACV;EACA,MAAMgwC,oBAAoB1tC,OAAQ,CAAA,MAAMtC,OAAQ,CAAA/B,GAAA,CAAK+8B,CAAM,IAAA35B,IAAA,CAAK+R,GAAI,CAAA4nB,CAAA,GAAI,GAAG,CAAC,CAAC,CAAG,EAAA,CAACh7B,OAAO,CAAC,CAAA;EACzF,MAAMiwC,eAA+C,GAAA3tC,OAAA,CACnD,MAAO,OAAO0qC,UAAe,KAAA,QAAA,GAAWA,UAAa,GAAAlwC,YAAA,EACrD,CAACkwC,UAAU,CAAA,CACb;EAEA,MAAMkD,eAAkB,GAAA3e,WAAA,CACrBzsB,KAAyC,IAAA;IAC/B0oC,QAAA,CAAA;MACPpmC,IAAM,EAAA,WAAA;MACN8kC,KAAO,EAAA5uC,KAAA,GAAQgwC,WAAY,CAAAhwC,KAAA,EAAO6wC,aAAa,CAAI,GAAA;IAAA,CACpD,CAAA;IAED,IAAI8B,eAAgB,CAAAjG,OAAA,EAASiG,eAAA,CAAgBjG,QAAQllC,KAAK,CAAA;IAE1D+3B,IAAA,CAAK,MAAG;MA3dd,IAAA32B,EAAA;MA2diB,OAAA,CAAAA,EAAA,GAAA2nC,eAAA,CAAgBnqC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAAwC,EAAA,CAAAk4B,KAAA,EAAA;IAAA,CAAO,CAAA;EAC7C,CAAA,EACA,CAAC+P,aAAA,EAAe8B,eAAiB,EAAA3C,WAAA,EAAahwC,KAAK,CAAA,CACrD;EAEA,MAAM6yC,cAAiB,GAAA7tC,OAAA,CACrB,MACE,CAACsU,QAAA,IAAY,CAACmF,QAAA,IAAYixB,aACvB,eAAA5sB,GAAA,CAAAuT,GAAA,EAAA;IAAI,aAAa,EAAA8a,QAAA;IAAUzuC,OAAS,EAAA+vC,oBAAA;IACnCpwB,QAAC,EAAA,eAAAS,GAAA,CAAAsV,MAAA;MACC,YAAW,EAAA,MAAA;MACX9e,QAAU,EAAA63B,QAAA;MACV/tC,QAAA;MACAi1B,IAAM,EAAAya,eAAA;MACNt6B,IAAK,EAAA,OAAA;MACL9V,OAAS,EAAAgwC;IAAA,GACLC,eAAA;MACJjG,OAAS,EAAAkG;IAAA;EAEb,CAAA,CACE,GAAA,KAAA,CAAA,EACN,CACEt5B,QAAA,EACA63B,QAAA,EACA/tC,QAAA,EACAwvC,eAAA,EACAlD,UAAA,EACA+C,oBAAA,EACAC,iBAAA,EACAC,eAAA,EACAl0B,QAAA,CACF,CACF;EAEM,MAAAs0B,UAAA,GAAa/tC,QAAQ,MAAM;IAC/B,IAAI4pC,UAAU,IAAM,EAAA;MAClB,IAAI5uC,UAAU,IAAM,EAAA;QACX,OAAAgwC,WAAA,CAAYhwC,OAAO6wC,aAAa,CAAA;MACzC;MAEO,OAAA,EAAA;IACT;IAEO,OAAAjC,KAAA;KACN,CAACiC,aAAA,EAAejC,KAAO,EAAAoB,WAAA,EAAahwC,KAAK,CAAC,CAAA;EAE7C,MAAM+b,uBACH+G,GAAA,CAAAwoB,SAAA,kCACK3a,SAAA;IACJ,uBAAuB,EAAAugB,YAAA;IACvB,mBAAkB,EAAA,MAAA;IAClB,eAAe,EAAAC,QAAA;IACf,WAAW,EAAAP,SAAA;IACXoC,cAAe,EAAA,KAAA;IACfC,YAAa,EAAA,KAAA;IACbC,WAAY,EAAA,KAAA;IACZ1+B,MAAA;IACA+2B,WAAA;IACAtmB,cAAA;IACA3L,QAAA;IACAlW,QAAA;IACAi1B,IAAA;IACAC,WAAWE,OAAW,IAAAyV,mBAAA;IACtB5wB,EAAA;IACA81B,SAAU,EAAA,QAAA;IACV5R,QAAU,EAAAyQ,iBAAA;IACVvG,OAAS,EAAA4G,sBAAA;IACTxE,OAAS,EAAAqE,gBAAA;IACTxvC,OAAA;IACAgpC,MAAA;IACA7qB,MAAA;IACApC,QAAA;IACAqG,GAAK,EAAA4X,MAAA;IACL8R,IAAK,EAAA,UAAA;IACL4E,UAAY,EAAA,KAAA;IACZzH,QAAQA,MAAU,IAAAkH,cAAA;IAClB7yC,KAAO,EAAA+yC;EAAA,GACT;EAGF,MAAMM,oBAAuB,GAAApf,WAAA,CAC1BzsB,KAAyC,IAAA;IA5iB9C,IAAAoB,EAAA;IA8iBU,IAAApB,KAAA,CAAMrH,QAAQ,KAAO,EAAA;MACnB,IAAA0uC,WAAA,EAAa,CAAAjmC,EAAA,GAAA2nC,eAAA,CAAgBnqC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAAwC,EAAA,CAAAk4B,KAAA,EAAA;IAC5C;EACF,CAAA,EACA,CAAC+N,WAAW,CAAA,CACd;EAEM,MAAAjsC,OAAA,GAAUoC,QAAQ,MAAM;IAC5B,IAAIgsC,gBAAgBxvC,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA;IAEzC,OACG,eAAAshB,GAAA,CAAAkrB,OAAA;MACC,SAAQ,EAAA,uBAAA;MACR34B,SAAW,EAAAg+B,oBAAA;MACX3wC,OAAS,EAAA;IAAA,GACL8sC,OAAA;MACJ9O,QAAU,EAAA,CAAA,CAAA;MAEVre,QAAC,EAAA,eAAAS,GAAA,CAAA4mB,KAAA,EAAA;QACCjX,EAAG,EAAA,IAAA;QACH,sBAAsB,EAAA,KAAA;QACtB,SAAQ,EAAA,2BAAA;QACRpV,EAAI,EAAAuzB,SAAA;QACJ9rB,GAAK,EAAA0rB,iBAAA;QACLhC,IAAK,EAAA,SAAA;QACL7sC,KAAO,EAAA,CAAA;QAEN0gB,QAAA,EAAA2uB,eAAA,CAAgBrwC,GAAI,CAACuuC,MAAW,IAAA;UAC/B,MAAMoE,SACJ5E,WAAgB,KAAA,IAAA,GAAOQ,MAAO,CAAAlvC,KAAA,KAAU0uC,cAAcmC,aAAkB,KAAA3B,MAAA;UAE1E,OACG,eAAApsB,GAAA,CAAAorB,kBAAA,EAAA;YACC7wB,EAAA,YAAOA,EAAA,qBAAa6xB,MAAO,CAAAlvC,KAAA,CAAA;YAE3BmuC,QAAU,EAAAuD,kBAAA;YACVj4B,QAAU,EAAA65B,MAAA;YACVtzC,OAAOkvC,MAAO,CAAAlvC,KAAA;YAEbqiB,QAAA,EAAA8T,YAAA,CAAa0Z,YAAa,CAAAX,MAAM,CAAG,EAAA;cAClC51B,QAAU,EAAAkf,OAAA;cACV/e,QAAU,EAAA65B,MAAA;cACV5S,QAAA,EAAUmO,WAAe,IAAAyE,MAAA,GAAS,CAAI,GAAA,CAAA;YAAA,CACvC;UAAA,CAAA,EATIpE,OAAOlvC,KAUd,CAAA;QAAA,CAEH;MAAA,CACH;IAAA,GACF;EAAA,CAED,EAAA,CACD0uC,WAAA,EACAmC,aAAA,EACAG,eAAA,EACAU,kBAAA,EACA2B,oBAAA,EACAh2B,EAAA,EACAmyB,OAAA,EACAoB,SAAA,EACA/B,WAAA,EACArW,OAAA,EACAqX,YAAA,CACD,CAAA;EAEK,MAAA0D,OAAA,GAAUvuC,QAAQ,MAAM;IAC5B,IAAI+qC,aAAe,EAAA;MACV,OAAAA,aAAA,CACL;QACEntC,OAAA;QACA2lC,QAAQ,CAAC4I,QAAA;QACTqC,cAAcjD,eAAgB,CAAAnqC,OAAA;QAC9B0nC,YAAc,EAAAqE,uBAAA;QACdpE,YAAc,EAAAqE;MAChB,CAAA,EACA9B,wBAAA,CACF;IACF;IAEA,IAAIW,uBAAuB,CAAG,EAAA;MACrB,OAAA,IAAA;IACT;IAEA,OACG,eAAAnuB,GAAA,CAAAwjB,OAAA;MACCxV,KAAO,EAAA,KAAA;MACP4V,aAAa,EAAA,IAAA;MACb9jC,OAAA;MACA+jC,kBAAoB,EAAAqI,wCAAA;MACpBpI,mBAAmB,EAAA,IAAA;MACnBkH,YAAc,EAAAqE,uBAAA;MACdpE,YAAc,EAAAqE,uBAAA;MACdtL,IAAM,EAAAqK,QAAA;MACNxqB,QAAS,EAAA,MAAA;MACT8c,SAAW,EAAAsL,8BAAA;MACXxQ,MAAM,EAAA,IAAA;MACN1d,MAAA;MACAiE,GAAK,EAAAwrB,wBAAA;MACLrJ,kBAAkBsJ,eAAgB,CAAAnqC;IAAA,GAC9Bob,OAAA,EACN;EAAA,CAED,EAAA,CACD5e,OAAA,EACAuuC,QAAA,EACAF,kBAAA,EACAkB,uBAAA,EACAC,uBAAA,EACA5wB,OAAA,EACAX,MAAA,EACAkvB,aAAA,CACD,CAAA;EAED,OACG,eAAA5b,IAAA,CAAAlE,MAAA,EAAA;IACC,SAAQ,EAAA,cAAA;IACR2d,MAAQ,EAAAwD,cAAA;IACRvD,OAAS,EAAA0D,eAAA;IACTl8B,SAAW,EAAAs8B,iBAAA;IACX7sB,GAAK,EAAAurB,cAAA;IAEJhuB,QAAA,EAAA,CAAAtG,KAAA,EACAw3B,OAAA;EAAA,CACH,CAAA;AAEJ,CAAC,CAAA;AAKM,MAAME,YAAe,GAAApE,iBAAA;AC5qBrB,MAAMpf,SAAOC,MAAO,CAAAwjB,EAAA,kNAAA;AAUd,MAAAC,YAAA,GAAezjB,OAAOkI,MAAM,CAAA,iHAAA;ACIlC,MAAMwb,WAAc,GAAArjB,UAAA,CAAW,SAASqjB,YAAAA,CAC7CvyC,OACAyjB,GACA,EAAA;EACM,MAAA;MAACzC;MAAUuT,SAAW;MAAAie,SAAA;MAAWlyC,OAAOmyC,QAAW,GAAA;IAAmB,CAAA,GAAAzyC,KAAA;IAAbsvB,qCAAatvB,KAAA;EACtE,MAAAM,KAAA,GAAQiD,aAAakvC,QAAQ,CAAA;EACnC,MAAM,CAAChN,IAAA,EAAMiN,OAAO,CAAA,GAAIluC,SAAS,KAAK,CAAA;EACtC,MAAM,CAACmuC,aAAA,EAAeC,gBAAgB,CAAA,GAAIpuC,SAAmC,IAAI,CAAA;EACjF,MAAM,CAACquC,cAAA,EAAgBC,iBAAiB,CAAA,GAAItuC,SAAgC,IAAI,CAAA;EAEhF,MAAMuuC,WAAWngB,WAAY,CAAA,MAAM8f,QAAQ,KAAK,CAAA,EAAG,EAAE,CAAA;EACrD,MAAMM,SAASpgB,WAAY,CAAA,MAAM8f,QAAQ,IAAI,CAAA,EAAG,EAAE,CAAA;EAElDtuC,eAAA,CAAgB2uC,QAAU,EAAA,CAACJ,aAAe,EAAAE,cAAc,CAAC,CAAA;EAEzD,MAAMI,QAAW,GAAAtvC,OAAA,CACf,MACEuvC,QAAS,CAAAC,OAAA,CAAQnyB,QAAQ,CAAE,CAAA9c,MAAA,CAAQuwB,KAAU,IAAA;IAC3C,OAAOqD,eAAerD,KAAK,CAAA;EAAA,CAC5B,CAAA,EACH,CAACzT,QAAQ,CAAA,CACX;EAEM,MAAAif,KAAA,GAAQt8B,QAAQ,MAAM;IAC1B,MAAMkoB,MAAMonB,QAAS,CAAA9yC,MAAA;IAEjB,IAAAo0B,SAAA,IAAa1I,MAAM0I,SAAW,EAAA;MAChC,MAAM6e,YAAe,GAAA1wC,IAAA,CAAK6+B,IAAK,CAAAhN,SAAA,GAAY,CAAC,CAAA;MAC5C,MAAM8e,WAAc,GAAA3wC,IAAA,CAAKC,KAAM,CAAA4xB,SAAA,GAAY,CAAC,CAAA;MAErC,OAAA,CACL,GAAG0e,QAAA,CAAS1gC,KAAM,CAAA,CAAA,EAAG6gC,eAAe,CAAC,CAAA,EACpC,eAAA3xB,GAAA,CAAAwjB,OAAA,EAAA;QACCI,aAAa,EAAA,IAAA;QACb9jC,wBACGkgB,GAAA,CAAA4mB,KAAA,EAAA;UAAMjX,EAAG,EAAA,IAAA;UAAK9L,QAAS,EAAA,MAAA;UAAOjkB,OAAS,EAAAf,KAAA;UAAOA,KAAA;UAC5C0gB,QAAS,EAAAiyB,QAAA,CAAA1gC,KAAA,CAAM6gC,YAAe,GAAA,CAAA,EAAGvnB,MAAMwnB,WAAW;QAAA,CACrD,CAAA;QAGF5N,IAAA;QACArD,SAAU,EAAA,KAAA;QACVlF,MAAM,EAAA,IAAA;QACNzZ,GAAK,EAAAqvB,iBAAA;QAEL9xB,QAAC,EAAA,eAAAS,GAAA,CAAA6wB,YAAA,EAAA;UACCvwC,QAAU,EAAA,CAAA;UACVoV,IAAK,EAAA,OAAA;UACLk0B,OAAA,EAAS5F,OAAOsN,QAAW,GAAAC,MAAA;UAC3B3xC,OAAS,EAAA,CAAA;UACToiB,GAAK,EAAAmvB,gBAAA;UACLx6B,QAAU,EAAAqtB,IAAA;UACVxmB,IAAK,EAAA;QAAA,CACP;MAAA,CAAA,EAdI,QAeN,CAAA,EACA,GAAGg0B,QAAA,CAAS1gC,KAAM,CAAAsZ,GAAA,GAAMwnB,WAAW,CAAA,CACrC;IACF;IAEO,OAAAJ,QAAA;EAAA,CACT,EAAG,CAACF,QAAU,EAAAC,MAAA,EAAQze,WAAWkR,IAAM,EAAAwN,QAAA,EAAU3yC,KAAK,CAAC,CAAA;EAEvD,OACG,eAAAmhB,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAkBU,SAAA;IAAW7L,GAAA;IACxCzC,QAAM,EAAAif,KAAA,CAAA3gC,GAAA,CAAI,CAACkiC,IAAA,EAAME,6BACf5O,IAAA,CAAAW,UAAA,EAAA;MACEzS,QAAA,EAAA,CAAA0gB,SAAA,GAAY,oBACVjgB,GAAA,CAAAuT,GAAA,EAAA;QAAI,aAAW,EAAA,IAAA;QAAC5D,EAAG,EAAA,IAAA;QAAKgE,QAAU,EAAA90B,KAAA;QAChC0gB,sCAAcS,GAAA,CAAAwN,IAAA,EAAA;UAAK/X,KAAK,EAAA,IAAA;UAAC8J,QAAA,EAAA;QAAA,CAAC;MAAA,CAC7B,CAAA,EAED,eAAAS,GAAA,CAAAuT,GAAA,EAAA;QAAI5D,EAAG,EAAA,IAAA;QAAMpQ,QAAA,EAAAwgB;MAAA,CAAK,CAAA;IAAA,CAAA,EANNE,SAOf,CACD;EAAA,GACH;AAEJ,CAAC,CAAA;AClFe,SAAA4R,WAAA,SAA4C;EAAA,IAAhC;IAACvzC;GAA+B;EACpD,MAAA0W,KAAA,GAAQ1W,KAAM,CAAAK,MAAA,CAAOqW,KAAM,CAAAvV,IAAA;EAE1B,OAAA;IACL,iBAAmB,EAAA;MACjBM,OAAS,EAAA;IACX,CAAA;IAEAnD,GAAK,EAAA,CAAA;IACLG,IAAM,EAAA,CAAA;IACNF,KAAO,EAAA,CAAA;IACPC,MAAQ,EAAA,CAAA;IACRunB,UAAY,EAAA,QAAA;IACZQ,cAAgB,EAAA,QAAA;IAChBxM,OAAS,EAAA,MAAA;IACTy5B,UAAA,EAAY98B,MAAMoD,MAAO,CAAAE;EAAA,CAC3B;AACF;AAEO,SAASy5B,8BACdxzC,KACa,EAAA;EACP,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EACV,MAAA;IAACd;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAEf,OAAAnB,WAAA,CAAYC,KAAO,EAAAc,KAAA,CAAMyzC,SAAW,EAACtyC,QAAc,KAAA;IAAC,IAAM,EAAA;MAACA;IAAQ;EAAA,CAAG,CAAA,CAAA;AAC/E;ACvBA,MAAMrC,KAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,2BAA2B,CAAA;AAElDF,WAAA,CAAY1hB,SAAO0hB,WAAY,CAAA1hB,KAAA,CAAA,IAAQ6hB,cAAkC;EAACa,OAAA,EAAS;CAAI,CAAA;AAKhF,MAAMkyB,gBAAmDlzB,WAAY,CAAA1hB,KAAA,CAAA;ACdrE,SAAS60C,SAAgC,GAAA;EAC9C,OAAO5yB,WAAW2yB,aAAa,CAAA;AACjC;ACwDA,MAAM9kB,MAAA,GAAOC,OAAO4N,KAAK,CAAA,CACvBhP,sBAAA,EACA6lB,WAAA,EACAE,6BAAA,CACF;AAEA,MAAMI,eAAA,GAAkB/kB,OAAOoL,SAAS,CAAA,yOAAA;AAWxC,MAAM4Z,cAAA,GAAiBhlB,OAAOwJ,IAAI,CAAA,qMAAA;AAUlC,MAAMyb,YAAA,GAAejlB,OAAOgH,IAAI,CAAA,yHAAA;AAMhC,MAAMke,YAAA,GAAellB,OAAOwJ,IAAI,CAAA,oTAAA;AAehC,MAAM2b,aAAA,GAAgBnlB,OAAOmG,GAAG,CAAA,sJAAA;AAOhC,MAAMif,YAAA,GAAeplB,OAAOmG,GAAG,CAAA,2KAAA;AAM/B,MAAMkf,UAAa,GAAAhlB,UAAA,CAAW,SAASglB,WAAAA,CACrCl0C,OACAyjB,GACA,EAAA;EACM,MAAA;IACJ0wB,oBAAsB,EAAAC,SAAA;IACtBC,0BAA4B,EAAAC,eAAA;IAC5BtzB,QAAA;IACAuzB,UAAA;IACAC,MAAA;IACAC,MAAA;IACAz4B,EAAA;IACA04B,cAAA;IACAC,OAAA;IACAn1B,MAAQ,EAAAmY,UAAA;IACR1W,MAAA;IACApH,MAAQ,EAAAgsB,UAAA;IACRz+B,KAAO,EAAA0+B;EACL,CAAA,GAAA9lC,KAAA;EACE,MAAAwf,MAAA,GAASjc,aAAao0B,UAAU,CAAA;EAChC,MAAA9d,MAAA,GAAStW,aAAasiC,UAAU,CAAA;EAChC,MAAAz+B,KAAA,GAAQ7D,aAAauiC,SAAS,CAAA;EAC9B,MAAAhN,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAACmxB,WAAA,EAAaC,cAAc,CAAA,GAAIrwC,SAAgC,IAAI,CAAA;EACpE,MAAAswC,eAAA,GAAkBlwC,OAA8B,IAAI,CAAA;EAC1D,MAAMwc,QAAQ4a,QAAS,EAAA;EACjB,MAAA;IAACO;EAAc,CAAA,GAAAnb,KAAA;EACrB,MAAM2zB,oBAAa/4B,EAAA,WAAA;EACnB,MAAMg5B,eAAkB,GAAA7wC,OAAA,CAAQwwC,OAAO,CAAA,IAAKL,eAAoB,KAAA,KAAA;EAC1D,MAAAW,UAAA,GAAa9wC,OAAQ,CAAAswC,MAAM,CAAK,IAAAO,eAAA;EAEtCnwC,SAAA,CAAU,MAAM;IACd,IAAI,CAACuvC,SAAA,EAAW;IAGhB,IAAItb,aAAa/zB,OAAS,EAAA;MACxB26B,oBAAA,CAAqB5G,aAAa/zB,OAAO,CAAA;IAC3C;EAAA,CACC,EAAA,CAACqvC,SAAW,EAAAtb,YAAY,CAAC,CAAA;EAE5B/kB,gBAAA,CACE6e,WAAA,CACGzsB,KAAyB,IAAA;IACpB,IAAA,CAACo2B,cAAc,CAACoY,OAAA,EAAS;IAEzB,IAAAxuC,KAAA,CAAMrH,QAAQ,QAAU,EAAA;MAC1BqH,KAAA,CAAMwkC,cAAe,EAAA;MACrBxkC,KAAA,CAAMykC,eAAgB,EAAA;MACd+J,OAAA,EAAA;IACV;EACF,CAAA,EACA,CAACpY,YAAYoY,OAAO,CAAA,CACtB,CACF;EAEAvwC,eAAA,CACEwuB,YAAY,MAAM;IACZ,IAAA,CAAC2J,cAAc,CAACmY,cAAA,EAAgB;IAErBA,cAAA,EAAA;EAAA,CACd,EAAA,CAACnY,UAAY,EAAAmY,cAAc,CAAC,CAAA,EAC/B,CAACE,WAAW,CAAA,CACd;EAEA,MAAMvZ,MAAS,GAAAzI,WAAA,CACZ5uB,EAA8B,IAAA;IAC7B6wC,cAAA,CAAe7wC,EAAE,CAAA;IACjB80B,YAAA,CAAa/zB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAAC80B,YAAY,CAAA,CACf;EAEA,MAAMoc,aAAgB,GAAAtiB,WAAA,CACnB5uB,EAA8B,IAAA;IAC7B8wC,eAAA,CAAgB/vC,OAAU,GAAAf,EAAA;IAC1B,IAAI,OAAOuwC,UAAe,KAAA,UAAA,EAAYA,UAAA,CAAWvwC,EAAE,CAAA,CAAA,KAC1C,IAAAuwC,UAAA,EAAYA,UAAA,CAAWxvC,OAAU,GAAAf,EAAA;EAC5C,CAAA,EACA,CAACuwC,UAAU,CAAA,CACb;EAEA,OACG,eAAA9yB,GAAA,CAAAmyB,eAAA,EAAA;IAAgB,SAAQ,EAAA,YAAA;IAAaxsC,KAAA;IACpC4Z,QAAC,EAAA,eAAAS,GAAA,CAAAoyB,cAAA,EAAA;MAAer0B,MAAA;MAAgBiE,GAAK,EAAA4X,MAAA;MAAQpa,MAAA;MAAgBpH,MAAA;MAC3DmH,QAAC,EAAA,eAAA8R,IAAA,CAAAghB,YAAA,EAAA;QAAattB,SAAU,EAAA,QAAA;QACrBxF,QAAA,EAAA,CAAAi0B,UAAA,IAAA,eACExzB,GAAA,CAAAsyB,YAAA,EAAA;UACC/yB,QAAC,EAAA,eAAA8R,IAAA,CAAA+C,IAAA,EAAA;YACC7U,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAuT,GAAA,EAAA;cAAIjO,IAAM,EAAA,CAAA;cAAG1lB,OAAS,EAAA,CAAA;cACpB2f,mCACES,GAAA,CAAAwN,IAAA,EAAA;gBAAKjT,EAAI,EAAA+4B,OAAA;gBAAS1lB,MAAO,EAAA,UAAA;gBACvBrO,QAAA,EAAAyzB;cAAA,CACH;YAAA,CAEJ,CAAA,EACCO,kCACEvzB,GAAA,CAAAuT,GAAA,EAAA;cAAI3zB,OAAS,EAAA,CAAA;cACZ2f,QAAC,EAAA,eAAAS,GAAA,CAAAsV,MAAA,EAAA;gBACC,YAAW,EAAA,cAAA;gBACX9e,UAAU,CAAC08B,OAAA;gBACX3d,IAAM,EAAAoU,SAAA;gBACNj0B,IAAK,EAAA,OAAA;gBACLk0B,OAAS,EAAAsJ,OAAA;gBACTtzC,OAAS,EAAA;cAAA,CACX;YAAA,CACF,CAAA;UAAA,CAEJ;QAAA,CACF,CAAA,EAGD,eAAAogB,GAAA,CAAAuyB,aAAA,EAAA;UAAcjtB,IAAM,EAAA,CAAA;UAAGtD,GAAK,EAAAyxB,aAAA;UAAe7V,QAAU,EAAA,CAAA,CAAA;UACnDre;QAAA,CACH,CAAA,EAECwzB,yBAAW/yB,GAAA,CAAAwyB,YAAA,EAAA;UAAcjzB,QAAA,EAAAwzB;QAAA,CAAO,CAAA;MAAA,CACnC;IAAA,CACF;EAAA,CACF,CAAA;AAEJ,CAAC,CAAA;AAKM,MAAMW,MAAS,GAAAjmB,UAAA,CAAW,SAASimB,OAAAA,CACxCn1C,OACAyjB,GACA,EAAA;EA9PF,IAAAlc,EAAA;EA+PE,MAAM0Y,SAAS0zB,SAAU,EAAA;EACzB,MAAM5zC,QAAQiiB,QAAS,EAAA;EACjB,MAAA;MACJmyB,sBAAsBC,SAAY,GAAA,IAAA;MAClCC,4BAA4BC,eAAkB,GAAA,KAAA;MAC9Cc,YAAYC,cAAiB,GAAA,CAAA;MAC7BC,UAAa,GAAA,CAAA;MACbt0B,QAAA;MACAuzB,UAAA;MACAC,MAAA;MACAC,MAAA;MACAz4B,EAAA;MACA04B,cAAA;MACAC,OAAA;MACAtzC,SAAS+1B,WAAc,GAAA,CAAA;MACvB8F,MAAA;MACA/7B,QAAA,EAAUo0C,YAAe,GAAAt1B,MAAA,CAAO9e,QAAY,IAAA,OAAA;MAC5C8f,MAAA;MACA7Z,OAAO0+B,SAAY,GAAA,CAAA;MACnB5lB,OAAA,EAASgc,cAAcjc,MAAO,CAAAC,OAAA,KAAA,CAAW3Y,WAAMnH,MAAO,CAAAghB,KAAA,KAAb,mBAAoBnB,MAAO,CAAAC,OAAA;IAElE,CAAA,GAAAlgB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACE,MAAAo1C,UAAA,GAAa7xC,aAAa8xC,cAAc,CAAA;EACxC,MAAAh0C,OAAA,GAAUkC,aAAa6zB,WAAW,CAAA;EAClC,MAAAj2B,QAAA,GAAWoC,aAAagyC,YAAY,CAAA;EACpC,MAAAnuC,KAAA,GAAQ7D,aAAauiC,SAAS,CAAA;EAC9B,MAAA5lB,OAAA,GAAU3c,aAAa24B,WAAW,CAAA;EAClC,MAAAsZ,SAAA,GAAY5wC,OAA8B,IAAI,CAAA;EAC9C,MAAA6wC,UAAA,GAAa7wC,OAA8B,IAAI,CAAA;EAC/C,MAAA8wC,OAAA,GAAU9wC,OAA8B,IAAI,CAAA;EAE5C,MAAAsnC,WAAA,GAActZ,WAAY,CAACzsB,KAA4C,IAAA;IAC3E,MAAMf,SAASe,KAAM,CAAAf,MAAA;IACrB,MAAMuwC,cAAcD,OAAQ,CAAA3wC,OAAA;IAE5B,IAAI,CAAC4wC,WAAa,EAAA;MAChB;IACF;IAEI,IAAAvwC,MAAA,KAAWowC,UAAUzwC,OAAS,EAAA;MAChC66B,mBAAA,CAAoB+V,WAAW,CAAA;MAE/B;IACF;IAEI,IAAAvwC,MAAA,KAAWqwC,WAAW1wC,OAAS,EAAA;MACjC26B,oBAAA,CAAqBiW,WAAW,CAAA;MAEhC;IACF;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMZ,oBAAa/4B,EAAA,WAAA;EAEnB,OACG,eAAAyF,GAAA,CAAAub,MAAA,EAAA;IAAOC,eAAiB,EAAAC,MAAA;IACvBlc,QAAC,EAAA,eAAA8R,IAAA,CAAAlE,MAAA,kCACKU,SAAA;MACJ5D,QAAU,EAAArqB,OAAA;MACVoyC,SAAW,EAAAtyC,QAAA;MACX,iBAAiB,EAAA4zC,OAAA;MACjB,YAAU,EAAA,IAAA;MACV,SAAQ,EAAA,QAAA;MACR/4B,EAAA;MACAwwB,OAAS,EAAAN,WAAA;MACTzoB,GAAA;MACA0pB,IAAK,EAAA,QAAA;MACLjtB,OAAA;MAEAc,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAA,KAAA,EAAA;QAAIgC,GAAK,EAAA+xB,SAAA;QAAWnW,QAAU,EAAA;MAAA,CAAG,CAAA,EACjC,eAAA5d,GAAA,CAAAyyB,UAAA,EAAA;QACCC,oBAAsB,EAAAC,SAAA;QACtBC,0BAA4B,EAAAC,eAAA;QAC5BC,UAAA;QACAC,MAAA;QACAC,MAAA;QACAz4B,EAAA;QACA04B,cAAA;QACAC,OAAA;QACAn1B,MAAQ,EAAA41B,UAAA;QACR3xB,GAAK,EAAAiyB,OAAA;QACLz0B,MAAA;QACApH,MAAQ,EAAAy7B,UAAA;QACRluC,KAAA;QAEC4Z;MAAA,CACH,CAAA,EACC,eAAAS,GAAA,CAAA,KAAA,EAAA;QAAIgC,GAAK,EAAAgyB,UAAA;QAAYpW,QAAU,EAAA;MAAA,CAAG,CAAA;IAAA;EACrC,CACF,CAAA;AAEJ,CAAC,CAAA;ACxUM,SAASuW,eAAe51C,KAAgD,EAAA;EAC7E,MAAM;IAACghB,QAAA;IAAU7f,QAAU;IAAA+e;EAAA,CAAW,GAAAlgB,KAAA;EAEtC,MAAM61C,YAAmC,GAAAlyC,OAAA,CACvC,OAAO;IACL6d,OAAS,EAAA,CAAA;IACTrgB,QAAA;IACA+e;EAAA,CACF,CAAA,EACA,CAAC/e,UAAU+e,OAAO,CAAA,CACpB;EAEO,sBAAAuB,GAAA,CAACiyB,cAAchyB,QAAd,EAAA;IAAuB/iB,KAAO,EAAAk3C,YAAA;IAAe70B;EAAA,CAAS,CAAA;AAChE;ACfA,MAAM4N,SAAOC,MAAO,CAAA6L,GAAA,4IAAA;AAOpB,MAAMob,GAAA,GAAMjnB,OAAO8L,GAAG,CAAA,0HAAA;AASf,MAAMob,OAAU,GAAA7mB,UAAA,CAAW,SAAS6mB,QAAAA,CACzC/1C,OACAyjB,GACA,EAAA;EACM,MAAA;MAAC1hB;MAAUrD,IAAM;MAAA2C,OAAA;MAASme;MAAQlf,KAAO,EAAAs3B,SAAA,GAAY;IAAM,CAAa,GAAA53B,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EACxE,MAAAM,KAAA,GAAQiD,aAAaq0B,SAAS,CAAA;EAEpC,IAAI,CAACl5B,IAAA,IAAQA,IAAK,CAAAyB,MAAA,KAAW,CAAG,EAAA;IAC9B,sBAASshB,GAAA,CAAAgS,QAAA,EAAA,CAAA,CAAA,CAAA;EACX;EAEA,OACG,eAAAhS,GAAA,CAAAmN,MAAA;IAAK,SAAQ,EAAA;EAAA,GAAcU,SAAA;IAAW7L,GAAA;IACrCzC,QAAC,EAAA,eAAAS,GAAA,CAAA+Y,MAAA,EAAA;MAAOpJ,EAAG,EAAA,MAAA;MAAO9wB,KAAA;MACf0gB,QAAK,EAAAtiB,IAAA,CAAAY,GAAA,CAAI,CAACR,GAAA,EAAK8S,qBACb6P,GAAA,CAAAq0B,GAAA,EAAA;QAAI/zC,QAAA;QAA4BV,OAAA;QAAkBme,MAAA;QAChDwB,QAAA,EAAAliB;MAAA,CAAA,EAD2B8S,CAE9B,CACD;IAAA,CACH;EAAA,GACF;AAEJ,CAAC,CAAA;AC5BD,MAAM9S,KAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,yBAAyB,CAAA;AAEhDF,WAAA,CAAY1hB,KAAO,CAAA,GAAA0hB,WAAA,CAAY1hB,KAAQ,CAAA,IAAA6hB,aAAA,CAAuC,IAAI,CAAA;AAE3E,MAAMq1B,cAAsDx1B,WAAY,CAAA1hB,KAAA,CAAA;ACzB/E,SAASm3C,aAAapyC,OAAsB,EAAA;EAC1C,OACG46B,mBAAoB,CAAA56B,OAAO,CAAK,IAAAA,OAAA,CAAQy7B,YAAa,CAAA,eAAe,CAAM,KAAA,MAAA,IAC1EZ,mBAAoB,CAAA76B,OAAO,CAAK,IAAA,CAACA,OAAQ,CAAAoU,QAAA;AAE9C;AAKO,SAASi+B,sBAAsBzxC,QAAwC,EAAA;EACrE,OAAAA,QAAA,CAASP,OAAO+xC,YAAY,CAAA;AACrC;AAKgB,SAAAE,WAAA,CAAYvB,aAA0B5wC,EAA2B,EAAA;EAC/E,MAAM0/B,OAAiB,EAAC;EAExB,IAAIuM,CAAI,GAAAjsC,EAAA;EAER,OAAOisC,MAAM2E,WAAa,EAAA;IACxB,MAAMwB,gBAAgBnG,CAAE,CAAAmG,aAAA;IAExB,IAAI,CAACA,aAAA,EAAsB,OAAA1S,IAAA;IAE3B,MAAM1iB,QAAW,GAAAphB,KAAA,CAAMua,IAAK,CAAAi8B,aAAA,CAAczW,UAAU,CAAA;IAC9C,MAAAvtB,KAAA,GAAQ4O,QAAS,CAAA1O,OAAA,CAAQ29B,CAAC,CAAA;IAEhCvM,IAAA,CAAK2S,QAAQjkC,KAAK,CAAA;IAElB,IAAIgkC,kBAAkBxB,WAAa,EAAA;MAC1B,OAAAlR,IAAA;IACT;IAEIuM,CAAA,GAAAmG,aAAA;EACN;EAEO,OAAA1S,IAAA;AACT;AAEA,MAAM4S,aAAuB,EAAC;AAKd,SAAAC,aAAA,CAAc3B,aAAiCnwC,QAA+B,EAAA;EAC5F,IAAI,CAACmwC,WAAA,EAAa;EAEZ,MAAAt1C,GAAA,GAAA,mBAAUsJ,OAA+B,EAAA;EAE/C,KAAA,MAAW5E,MAAMS,QAAU,EAAA;IACzBnF,GAAA,CAAI0K,GAAI,CAAAhG,EAAA,EAAImyC,WAAY,CAAAvB,WAAA,EAAa5wC,EAAE,CAAC,CAAA;EAC1C;EAEM,MAAAwyC,KAAA,GAAQ,CAAC5/B,CAAA,EAAgB1C,CAAmB,KAAA;IAChD,MAAM3M,EAAK,GAAAjI,GAAA,CAAIyK,GAAI,CAAA6M,CAAC,CAAK,IAAA0/B,UAAA;IACzB,MAAMxuC,EAAK,GAAAxI,GAAA,CAAIyK,GAAI,CAAAmK,CAAC,CAAK,IAAAoiC,UAAA;IAEzB,MAAMzqB,MAAMnpB,IAAK,CAAA+R,GAAA,CAAIlN,EAAG,CAAApH,MAAA,EAAQ2H,GAAG3H,MAAM,CAAA;IAGzC,KAAA,IAASyR,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAia,GAAA,EAAKja,KAAK,CAAG,EAAA;MACzB,MAAA6kC,MAAA,GAASlvC,GAAGqK,CAAM,CAAA,IAAA,CAAA,CAAA;MAClB,MAAA8kC,MAAA,GAAS5uC,GAAG8J,CAAM,CAAA,IAAA,CAAA,CAAA;MAExB,IAAI6kC,WAAWC,MAAQ,EAAA;QACrB,OAAOD,MAAS,GAAAC,MAAA;MAClB;IACF;IAEO,OAAA,CAAA;EAAA,CACT;EAEAjyC,QAAA,CAASkyC,KAAKH,KAAK,CAAA;AACrB;AC3DO,SAASI,kBAAkB52C,KAIf,EAAA;EACjB,MAAM;IAACgU,SAAA;IAAW6iC,aAAe;IAAAC;EAAA,CAAe,GAAA92C,KAAA;EAC1C,MAAA2E,WAAA,GAAcC,MAAsB,CAAA,EAAE,CAAA;EAC5C,MAAM,CAACgwC,WAAA,EAAaC,cAAc,CAAA,GAAIrwC,SAAgC,IAAI,CAAA;EAC1E,MAAM,CAACgsC,WAAA,EAAauG,eAAe,CAAA,GAAIvyC,SAAS,CAAE,CAAA,CAAA;EAC5C,MAAAwyC,cAAA,GAAiBpyC,OAAO4rC,WAAW,CAAA;EACnC,MAAArR,aAAA,GAAgBx6B,WAAY,CAAAI,OAAA,CAAQyrC,WAAgB,CAAA,IAAA,IAAA;EACpD,MAAAyG,OAAA,GAAU9yC,QAAQywC,WAAW,CAAA;EAE7B,MAAAsC,cAAA,GAAiBtkB,WAAY,CAACukB,eAA4B,IAAA;IAC9DJ,eAAA,CAAgBI,eAAe,CAAA;IAC/BH,cAAA,CAAejyC,OAAU,GAAAoyC,eAAA;EAC3B,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,KAAQ,GAAAxkB,WAAA,CACZ,CAAC/uB,SAA6BuU,QAAqC,KAAA;IACjE,IAAI,CAACvU,OAAA,EAAS,OAAO,MAAM,KAAA,CAAA;IAE3B,IAAIc,WAAY,CAAAI,OAAA,CAAQuN,OAAQ,CAAAzO,OAAO,MAAM,CAAI,CAAA,EAAA;MACnCc,WAAA,CAAAI,OAAA,CAAQd,KAAKJ,OAAO,CAAA;MAClB0yC,aAAA,CAAA3B,WAAA,EAAajwC,YAAYI,OAAO,CAAA;IAChD;IAEA,IAAIqT,QAAU,EAAA;MACZ,MAAMi/B,aAAgB,GAAA1yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;MAEzDqzC,cAAA,CAAeG,aAAa,CAAA;IAC9B;IAEA,OAAO,MAAM;MACX,MAAM3jC,GAAM,GAAA/O,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;MAE/C,IAAI6P,MAAM,CAAI,CAAA,EAAA;QACA/O,WAAA,CAAAI,OAAA,CAAQmJ,MAAO,CAAAwF,GAAA,EAAK,CAAC,CAAA;MACnC;IAAA,CACF;EACF,CAAA,EACA,CAACkhC,aAAasC,cAAc,CAAA,CAC9B;EAEA,MAAMjK,aAAgB,GAAAra,WAAA,CACnBzsB,KAA+C,IAAA;IAE1C,IAAAA,KAAA,CAAMrH,QAAQ,KAAO,EAAA;MACvB,IAAI+3C,aAAe,EAAA;QACjBA,aAAA,CAAcpX,KAAM,EAAA;MACtB;MAEA;IACF;IAGI,IAAAt5B,KAAA,CAAMrH,QAAQ,MAAQ,EAAA;MACxBqH,KAAA,CAAMwkC,cAAe,EAAA;MACrBxkC,KAAA,CAAMykC,eAAgB,EAAA;MAEhB,MAAA0M,iBAAA,GAAoBpB,qBAAsB,CAAAvxC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAMf,KAAKszC,iBAAkB,CAAA,CAAA,CAAA;MAE7B,IAAI,CAACtzC,EAAA,EAAI;MAET,MAAMuzC,YAAe,GAAA5yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDkzC,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAGI,IAAApxC,KAAA,CAAMrH,QAAQ,KAAO,EAAA;MACvBqH,KAAA,CAAMwkC,cAAe,EAAA;MACrBxkC,KAAA,CAAMykC,eAAgB,EAAA;MAEhB,MAAA0M,iBAAA,GAAoBpB,qBAAsB,CAAAvxC,WAAA,CAAYI,OAAO,CAAA;MAC7D,MAAAf,EAAA,GAAKszC,iBAAkB,CAAAA,iBAAA,CAAkBn3C,MAAS,GAAA,CAAA,CAAA;MAExD,IAAI,CAAC6D,EAAA,EAAI;MAET,MAAMuzC,YAAe,GAAA5yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDkzC,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEI,IAAApxC,KAAA,CAAMrH,QAAQ,SAAW,EAAA;MAC3BqH,KAAA,CAAMwkC,cAAe,EAAA;MACrBxkC,KAAA,CAAMykC,eAAgB,EAAA;MAEhB,MAAA0M,iBAAA,GAAoBpB,qBAAsB,CAAAvxC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAMyyC,eAAeF,iBAAkB,CAAAn3C,MAAA;MAEvC,IAAIq3C,YAAiB,KAAA,CAAA,EAAG;MAElB,MAAApH,cAAA,GAAiBzrC,WAAY,CAAAI,OAAA,CAAQiyC,cAAe,CAAAjyC,OAAA,CAAA;MAEtD,IAAA0yC,YAAA,GAAeH,iBAAkB,CAAAhlC,OAAA,CAAQ89B,cAAc,CAAA;MAE3CqH,YAAA,GAAA,CAAAA,YAAA,GAAe,IAAID,YAAgB,IAAAA,YAAA;MAEnD,MAAMxzC,KAAKszC,iBAAkB,CAAAG,YAAA,CAAA;MAC7B,MAAMF,YAAe,GAAA5yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDkzC,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEI,IAAApxC,KAAA,CAAMrH,QAAQ,WAAa,EAAA;MAC7BqH,KAAA,CAAMwkC,cAAe,EAAA;MACrBxkC,KAAA,CAAMykC,eAAgB,EAAA;MAEhB,MAAA0M,iBAAA,GAAoBpB,qBAAsB,CAAAvxC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAMyyC,eAAeF,iBAAkB,CAAAn3C,MAAA;MAEvC,IAAIq3C,YAAiB,KAAA,CAAA,EAAG;MAElB,MAAApH,cAAA,GAAiBzrC,WAAY,CAAAI,OAAA,CAAQiyC,cAAe,CAAAjyC,OAAA,CAAA;MAEtD,IAAA0yC,YAAA,GAAeH,iBAAkB,CAAAhlC,OAAA,CAAQ89B,cAAc,CAAA;MAE3DqH,YAAA,GAAA,CAAgBA,eAAe,CAAK,IAAAD,YAAA;MAEpC,MAAMxzC,KAAKszC,iBAAkB,CAAAG,YAAA,CAAA;MAC7B,MAAMF,YAAe,GAAA5yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDkzC,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEA,IAAIvjC,SAAW,EAAA;MACbA,SAAA,CAAU7N,KAAK,CAAA;IACjB;EACF,CAAA,EACA,CAAC6N,SAAW,EAAA6iC,aAAA,EAAeK,cAAc,CAAA,CAC3C;EAEA,MAAMQ,oBAAuB,GAAA9kB,WAAA,CAC1BzsB,KAAyC,IAAA;IACxC,MAAMtC,UAAUsC,KAAM,CAAA+mC,aAAA;IACtB,MAAMqK,YAAe,GAAA5yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;IAExDqzC,cAAA,CAAeK,YAAY,CAAA;EAC7B,CAAA,EACA,CAACL,cAAc,CAAA,CACjB;EAEM,MAAAS,oBAAA,GAAuB/kB,YAAY,MAAM;IAChCgiB,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAAnV,KAAA,EAAA;IACbyX,cAAA,CAAe,CAAE,CAAA,CAAA;EAAA,CAChB,EAAA,CAACtC,WAAa,EAAAsC,cAAc,CAAC,CAAA;EAGhCryC,SAAA,CAAU,MAAM;IACd,IAAI,CAACoyC,OAAA,EAAS;IAER,MAAAW,KAAA,GAAQryC,MAAO,CAAAiK,qBAAA,CAAsB,MAAM;MAC/C,MAAMqoC,eAAeb,cAAe,CAAAjyC,OAAA;MAEpC,IAAI8yC,iBAAiB,CAAI,CAAA,EAAA;QACvB,IAAIf,gBAAgB,OAAS,EAAA;UACrB,MAAAQ,iBAAA,GAAoBpB,qBAAsB,CAAAvxC,WAAA,CAAYI,OAAO,CAAA;UACnE,MAAMf,KAAKszC,iBAAkB,CAAA,CAAA,CAAA;UAE7B,IAAItzC,EAAI,EAAA;YACN,MAAMuzC,YAAe,GAAA5yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;YAEnDkzC,cAAA,CAAeK,YAAY,CAAA;YAC3BP,cAAA,CAAejyC,OAAU,GAAAwyC,YAAA;UAC3B;QACF;QAEA,IAAIT,gBAAgB,MAAQ,EAAA;UACpB,MAAAQ,iBAAA,GAAoBpB,qBAAsB,CAAAvxC,WAAA,CAAYI,OAAO,CAAA;UAC7D,MAAAf,EAAA,GAAKszC,iBAAkB,CAAAA,iBAAA,CAAkBn3C,MAAS,GAAA,CAAA,CAAA;UAExD,IAAI6D,EAAI,EAAA;YACN,MAAMuzC,YAAe,GAAA5yC,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;YAEnDkzC,cAAA,CAAeK,YAAY,CAAA;YAC3BP,cAAA,CAAejyC,OAAU,GAAAwyC,YAAA;UAC3B;QACF;QAEA;MACF;MAEM,MAAA1zC,OAAA,GAAUc,WAAY,CAAAI,OAAA,CAAQ8yC,YAAiB,CAAA,IAAA,IAAA;MAE5Ch0C,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAA47B,KAAA,EAAA;IAAA,CACV,CAAA;IAED,OAAO,MAAM;MACXl6B,MAAA,CAAOmtB,qBAAqBklB,KAAK,CAAA;IAAA,CACnC;KACC,CAACpH,WAAA,EAAayG,OAAS,EAAAC,cAAA,EAAgBJ,WAAW,CAAC,CAAA;EAE/C,OAAA;IACL3X,aAAA;IACAqR,WAAA;IACAkH,oBAAA;IACAC,oBAAA;IACA1K,aAAA;IACAmK,KAAA;IACAxC,WAAA;IACAC;EAAA,CACF;AACF;AC3MA,MAAMjmB,MAAA,GAAOC,OAAOmG,GAAG,CAAA,gHAAA;AAQhB,MAAM8iB,IAAO,GAAA5oB,UAAA,CAAW,SAAS4oB,KAAAA,CACtC93C,OACAyjB,GACA,EAAA;EACM,MAAA;MACJzC,QAAA;MAEA+2B,UAAA;MAEAC,SAAA;MACAtD,cAAA;MACAuD,QAAA;MACAC,WAAA;MACAC,YAAA;MACAnkC,SAAA;MACA6iC,aAAA;MACAx1C,OAAU,GAAA,CAAA;MACV+2C,eAAA;MACAtB,cAAe92C,KAAM,CAAA+3C,UAAA,IAAc,OAAa,IAAA/3C,KAAA,CAAMg4C,aAAa,MAAW,IAAA,IAAA;MAC9E13C,KAAQ,GAAA;IAEN,CAAA,GAAAN,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EAEE,MAAA84B,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EAElC,MAAA;IAAC8Y;GAAU,GAAIP,QAAS,EAAA;EAExB,MAAA;IACJmD,aAAA;IACAqR,WAAA;IACAkH,oBAAA;IACAC,oBAAA;IACA1K,aAAA;IACAmK,KAAA;IACAxC,WAAA;IACAC;MACE+B,iBAAkB,CAAA;IAAC5iC,SAAW;IAAA6iC,aAAA;IAAeC;EAAY,CAAA,CAAA;EAE7D,MAAMuB,eAAkB,GAAAzlB,WAAA,CACrB5uB,EAA8B,IAAA;IAC7B6wC,cAAA,CAAe7wC,EAAE,CAAA;IACjB80B,YAAA,CAAa/zB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAAC80B,cAAc+b,cAAc,CAAA,CAC/B;EAGAhwC,SAAA,CAAU,MAAM;IACV,IAAAszC,YAAA,EAAcA,YAAA,CAAa3H,WAAW,CAAA;EAAA,CACzC,EAAA,CAACA,WAAa,EAAA2H,YAAY,CAAC,CAAA;EAG9B/zC,eAAA,CACEwuB,WAAA,CACGzsB,KAAA,IAAUo2B,UAAc,IAAAmY,cAAA,IAAkBA,eAAevuC,KAAK,CAAA,EAC/D,CAACo2B,YAAYmY,cAAc,CAAA,CAC7B,EACA,CAACE,WAAW,CAAA,CACd;EAGA7gC,gBAAA,CACE6e,WAAA,CACGzsB,KAAU,IAAA;IACT,IAAI,CAACo2B,UAAA,EAAY;IAEb,IAAAp2B,KAAA,CAAMrH,QAAQ,QAAU,EAAA;MAC1BqH,KAAA,CAAMykC,eAAgB,EAAA;MAClB,IAAAqN,QAAA,EAAmBA,QAAA,EAAA;IACzB;EACF,CAAA,EACA,CAAC1b,YAAY0b,QAAQ,CAAA,CACvB,CACF;EAGApzC,SAAA,CAAU,MAAM;IACV,IAAA,CAAC+vC,eAAe,CAACwD,eAAA,EAAiB;IAEtC,OAAOA,gBAAgBxD,WAAW,CAAA;EAAA,CACjC,EAAA,CAACwD,eAAiB,EAAAxD,WAAW,CAAC,CAAA;EAEjC,MAAMj2C,KAA0B,GAAAgF,OAAA,CAC9B,OAAO;IACL6d,OAAS,EAAA,CAAA;IACT2d,aAAA;IACAqR,WAAA;IACA4G,KAAA;IACA1C,cAAA;IACAuD,QAAA;IACAC,WAAA;IACAI,gBAAkB,EAAAZ,oBAAA;IAClBa,gBAAkB,EAAAZ,oBAAA;IAClBS,eAAA;IAGA3L,YAAc,EAAAiL,oBAAA;IACdhL,YAAc,EAAAiL;EAAA,CAChB,CAAA,EACA,CACExY,aAAA,EACAqR,WAAA,EACA4G,KAAA,EACAM,oBAAA,EACAC,oBAAA,EACAjD,cAAA,EACAuD,QAAA,EACAC,WAAA,EACAE,eAAA,CACF,CACF;EAGE,sBAAA32B,GAAA,CAACu0B,YAAYt0B,QAAZ,EAAA;IAAqB/iB,KAAA;IACpBqiB,QAAC,EAAA,eAAAS,GAAA,CAAAmN,MAAA;MACC,SAAQ,EAAA;IAAA,GACJU,SAAA;MACJtb,SAAW,EAAAi5B,aAAA;MACX5rC,OAAA;MACAoiB,GAAK,EAAA40B,eAAA;MACLlL,IAAK,EAAA,MAAA;MACL9N,QAAU,EAAA,CAAA,CAAA;MAEVre,QAAC,EAAA,eAAAS,GAAA,CAAA4mB,KAAA,EAAA;QAAM/nC,KAAA;QAAe0gB;MAAA,CAAS;IAAA;EACjC,CACF,CAAA;AAEJ,CAAC,CAAA;ACpHM,MAAMw3B,UAAa,GAAAtpB,UAAA,CAAW,SAASspB,WAAAA,CAC5Cx4C,OACAyjB,GACA,EAAA;EACM,MAAA;IACJg1B,uCAAuCC,0BAA6B,GAAA,KAAA;IACpEp0C,eAAiB,EAAAq0C,0BAAA;IACjBthC,MAAQ,EAAAuhC,UAAA;IACR58B,EAAA;IACA68B,IAAM,EAAAC,QAAA;IACNnE,OAAA;IACAvS,SAAW,EAAA2W,oBAAA;IACXC,aAAe,EAAAC,wBAAA;IACf/b,QAAQgc,iBAAoB,GAAA,IAAA;IAC5B/4B,OAAA;IACAg5B,aAAe,EAAAC,wBAAA;IACfzT,eAAiB,EAAA0T;EACf,CAAA,GAAAr5C,KAAA;EACJ,MAAM,CAACylC,IAAA,EAAMiN,OAAO,CAAA,GAAIluC,SAAS,KAAK,CAAA;EACtC,MAAM,CAACsyC,WAAA,EAAawC,cAAc,CAAA,GAAI90C,SAAkC,IAAI,CAAA;EAC5E,MAAM,CAAC+0C,aAAA,EAAeC,gBAAgB,CAAA,GAAIh1C,SAAmC,IAAI,CAAA;EACjF,MAAM,CAACi1C,YAAc,EAAAC,oBAAoB,CAAI,GAAAl1C,QAAA,CAAwB,EAAE,CAAA;EACjE,MAAAm1C,OAAA,GAAU/0C,OAAgB6gC,IAAI,CAAA;EAEpC5gC,SAAA,CAAU,MAAM;IACd,IAAI8vC,OAAW,IAAA,CAAClP,IAAQ,IAAAkU,OAAA,CAAQ50C,OAAS,EAAA;MAC/B4vC,OAAA,EAAA;IACV;EAAA,CACC,EAAA,CAACA,OAAS,EAAAlP,IAAI,CAAC,CAAA;EAElB5gC,SAAA,CAAU,MAAM;IACd80C,OAAA,CAAQ50C,OAAU,GAAA0gC,IAAA;EAAA,CACpB,EAAG,CAACA,IAAI,CAAC,CAAA;EAEH,MAAAmU,iBAAA,GAAoBhnB,YAAY,MAAM;IAClC8f,OAAA,CAACrW,CAAM,IAAA,CAACA,CAAC,CAAA;IACjBid,cAAA,CAAe,IAAI,CAAA;EACrB,CAAA,EAAG,EAAE,CAAA;EAEC,MAAAO,mBAAA,GAAsBjnB,WAAY,CAACzsB,KAAkD,IAAA;IAGrF,IAAAA,KAAA,CAAMrH,QAAQ,WAAe,IAAAqH,KAAA,CAAMrH,QAAQ,OAAW,IAAAqH,KAAA,CAAMrH,QAAQ,GAAK,EAAA;MAC3EqH,KAAA,CAAMwkC,cAAe,EAAA;MACrB+H,OAAA,CAAQ,IAAI,CAAA;MACZ4G,cAAA,CAAe,OAAO,CAAA;MAEtB;IACF;IAII,IAAAnzC,KAAA,CAAMrH,QAAQ,SAAW,EAAA;MAC3BqH,KAAA,CAAMwkC,cAAe,EAAA;MACrB+H,OAAA,CAAQ,IAAI,CAAA;MACZ4G,cAAA,CAAe,MAAM,CAAA;MAErB;IACF;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMQ,sBAAyB,GAAAlnB,WAAA,CAC5BzsB,KAAsB,IAAA;IACrB,MAAMf,SAASe,KAAM,CAAAf,MAAA;IAEjB,IAAA,EAAEA,kBAAkBC,IAAO,CAAA,EAAA;MAC7B;IACF;IAEA,IAAIk0C,kBAAkBn0C,MAAW,KAAAm0C,aAAA,IAAiBA,aAAc,CAAAj0C,QAAA,CAASF,MAAM,CAAI,CAAA,EAAA;MACjF;IACF;IAEA,KAAA,MAAWpB,MAAMy1C,YAAc,EAAA;MAC7B,IAAIr0C,MAAW,KAAApB,EAAA,IAAMA,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxC;MACF;IACF;IAEAstC,OAAA,CAAQ,KAAK,CAAA;EACf,CAAA,EACA,CAAC6G,eAAeE,YAAY,CAAA,CAC9B;EAEM,MAAAM,gBAAA,GAAmBnnB,YAAY,MAAM;IACzC8f,OAAA,CAAQ,KAAK,CAAA;IACT,IAAAgG,0BAAA,EAA4B;IAC5B,IAAAa,aAAA,EAAeA,aAAA,CAAc9Z,KAAM,EAAA;EAAA,CACtC,EAAA,CAAC8Z,aAAe,EAAAb,0BAA0B,CAAC,CAAA;EAE9C,MAAMzM,UAAa,GAAArZ,WAAA,CAChBzsB,KAA+C,IAAA;IAC9C,MAAMf,SAASe,KAAM,CAAA6zC,aAAA;IAEjB,IAAA,EAAE50C,kBAAkBC,IAAO,CAAA,EAAA;MAC7B;IACF;IAEA,KAAA,MAAWrB,MAAMy1C,YAAc,EAAA;MAC7B,IAAIz1C,EAAO,KAAAoB,MAAA,IAAUpB,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxC;MACF;IACF;IAEAstC,OAAA,CAAQ,KAAK,CAAA;EACf,CAAA,EACA,CAAC+G,YAAY,CAAA,CACf;EAEM,MAAAQ,eAAA,GAAkBrnB,YAAY,MAAM;IACxC8f,OAAA,CAAQ,KAAK,CAAA;IACT,IAAAgG,0BAAA,EAA4B;IAC5B,IAAAa,aAAA,EAAeA,aAAA,CAAc9Z,KAAM,EAAA;EAAA,CACtC,EAAA,CAAC8Z,aAAe,EAAAb,0BAA0B,CAAC,CAAA;EAExC,MAAAN,eAAA,GAAkBxlB,WAAY,CAAC5uB,EAAoB,IAAA;IACvD01C,oBAAA,CAAsBQ,GAAQ,IAAAA,GAAA,CAAI7qC,OAAO,CAACrL,EAAE,CAAC,CAAC,CAAA;IAE9C,OAAO,MAAM;MACX01C,oBAAA,CAAsBQ,GAAQ,IAAA;QAC5B,OAAOA,GAAI,CAAAh2C,MAAA,CAAQi2C,GAAA,IAAQA,QAAQn2C,EAAE,CAAA;MAAA,CACtC,CAAA;IAAA,CACH;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMo2C,SAAuB,GAAAz2C,OAAA,CAC3B,OAAO;IACL,iBAAmB,EAAAqY,EAAA;IACnBq+B,aAAe,EAAApO,UAAA;IACfyI,cAAgB,EAAAoF,sBAAA;IAChB7B,QAAU,EAAA8B,gBAAA;IACV7B,WAAa,EAAA+B,eAAA;IACbpD,aAAe,EAAA0C,aAAA;IACfnB,eAAA;IACAtB;EAAA,CACF,CAAA,EACA,CACEyC,aAAA,EACAO,sBAAA,EACAC,gBAAA,EACAE,eAAA,EACAj+B,EAAA,EACAiwB,UAAA,EACAmM,eAAA,EACAtB,WAAA,CACF,CACF;EAEA,MAAM+B,OAAO3wC,WAAU,CAAA4wC,QAAQ,IAAIhkB,YAAa,CAAAgkB,QAAA,EAAUsB,SAAS,CAAI,GAAA,IAAA;EAEvE,MAAME,YAAe,GAAA1nB,WAAA,CAClB5uB,EAAiC,IAAA;IAC5B,IAAA,OAAOyf,QAAQ,UAAY,EAAA;MAC7BA,GAAA,CAAIzf,EAAE,CAAA;eACGyf,GAAK,EAAA;MACdA,GAAA,CAAI1e,OAAU,GAAAf,EAAA;IAChB;IAEAw1C,gBAAA,CAAiBx1C,EAAE,CAAA;EACrB,CAAA,EACA,CAACyf,GAAG,CAAA,CACN;EAEA,MAAMpM,MAAS,GAAA1T,OAAA,CACb,MACEuE,WAAA,CAAU0wC,UAAU,CAAA,GAChB9jB,aAAa8jB,UAAY,EAAA;IACvB,SAAW,EAAA,YAAA;IACX58B,EAAA;IACAqvB,OAAS,EAAAuO,iBAAA;IACT5lC,SAAW,EAAA6lC,mBAAA;IACX,eAAiB,EAAA,IAAA;IACjB,eAAiB,EAAApU,IAAA;IACjBhiB,GAAK,EAAA62B,YAAA;IACLliC,QAAU,EAAAqtB;EACX,CAAA,CACD,GAAA,IAAA,EACN,CAACmT,UAAY,EAAAgB,iBAAA,EAAmBC,mBAAqB,EAAA79B,EAAA,EAAIypB,MAAM6U,YAAY,CAAA,CAC7E;EAEA,MAAMC,YAA2C,GAAA52C,OAAA,CAC/C;IACEW,eAAiB,EAAAq0C,0BAAA;IACjBrzB,QAAU,EAAA,MAAA;IACV8c,SAAW,EAAA2W,oBAAA;IACX7b,MAAQ,EAAAgc,iBAAA;IACRvT,eAAiB,EAAA0T,0BAAA;IACjB75B,MAAQ,EAAA45B,wBAAA;IACRn4B,MAAQ,EAAAg4B;EAAA,GACJ94B,WAAW,CAAC,CAAA,CAClB,EACA,CACEw4B,0BAAA,EACAI,oBAAA,EACAK,wBAAA,EACAH,wBAAA,EACAC,iBAAA,EACAG,0BAAA,EACAl5B,OAAA,CACF,CACF;EAEA,OACG,eAAAsB,GAAA,CAAAwjB,OAAA;IAAQ,SAAQ,EAAA;EAAA,GAA0BsV,YAAA;IAAch5C,OAAS,EAAAs3C,IAAA;IAAMpT,IAAA;IACrEzkB,mCAAYS,GAAA,CAAAgS,QAAA,EAAA,CAAA,CAAA;EAAA,GACf;AAEJ,CAAC,CAAA;AC3PM,MAAM+mB,cAA4C3rB,MAAO,CAAA4rB,EAAA,uKAAA;ACMzD,SAASC,mBAAkD,GAAA;EACzD,OAAAnuB,GAAA;AAmBT;AAEO,SAASouB,qBACd36C,KAC4B,EAAA;EApC9B,IAAAuH,EAAA,EAAAO,EAAA;EAqCQ,MAAA;IAAC6kB,KAAO;IAAA5sB;EAAS,CAAA,GAAAC,KAAA;EACvB,MAAM;IAACkB,IAAM;IAAAgW,KAAA;IAAO0D;EAAU,CAAA,GAAI7a,MAAMK,MAAO,CAAAqW,KAAA;EAEzC,MAAA4D,IAAA,GAAOO,aAAaA,UAAW,CAAA+R,KAAA,CAAA,IAAU/R,WAAWxD,OAAU,GAAAF,KAAA,CAAMyV,UAAUzV,KAAM,CAAAE,OAAA;EAEnF,OAAAmV,GAAA,0pCACH4J,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKvC,OAAO,CAAA,EAS9Bqe,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKpC,QAAQ,CAAA,EAKjCke,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKlC,OAAO,CAAA,EAKlCge,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKjC,QAAQ,CAAA,EAM/B+d,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKnC,OAAO,CAAA,EAIlCie,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKlC,OAAO,CAAA,EAUxCge,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKpC,QAAQ,CAAA,EAKjCke,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKlC,OAAO,CAAA,EAIlCge,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKjC,QAAQ,CAAA,EAM/B+d,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKnC,OAAO,CAAA,EAIlCie,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKlC,OAAO,CAAA,EAAA,CAO5CrQ,EAAM,GAAA,CAAAP,EAAA,GAAAxH,KAAA,CAAAK,MAAA,CAAOgsB,MAAb,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA7kB,EAAA,CAAqBwQ,SAArB,IAA2B,GAAA,KAAA,CAAA,GAAAjQ,EAAA,CAAAia,IAAA;AAEjC;ACtGa,MAAA64B,UAAA,GAAa/rB,OAAOmG,GAAG,CAAA,CAClChH,qBAAA,EACA0sB,mBAAA,EACAC,oBAAA,CACF;ACRO,SAASE,OAA4B,GAAA;EACpC,MAAAl8C,KAAA,GAAQoiB,WAAWi1B,WAAW,CAAA;EAEpC,IAAI,CAACr3C,KAAO,EAAA;IACJ,MAAA,IAAIuB,MAAM,kCAAkC,CAAA;EACpD;EAKA,IAAI,CAAC0hB,QAAS,CAAAjjB,KAAK,CAAK,IAAAA,KAAA,CAAM6iB,YAAY,CAAK,EAAA;IACvC,MAAA,IAAIthB,MAAM,gDAAgD,CAAA;EAClE;EAEO,OAAAvB,KAAA;AACT;ACSO,SAASm8C,UACd96C,KAEoB,EAAA;EACd,MAAA;MACJoxB,EAAK,GAAA,QAAA;MACLpQ,QAAA;MACAjf,QAAA;MACAi1B,IAAA;MACAqU,OAAA;MACAhqC,OAAU,GAAA,CAAA;MACV8e,OAAA;MACAX,MAAS,GAAA,CAAA;MACTlf,KAAQ,GAAA,CAAA;MACR2e,IAAA;MACA5E,IAAO,GAAA;IAEL,CAAA,GAAAra,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACJ,MAAM64C,OAAOgC,OAAQ,EAAA;EACf,MAAA;IACJ1b,aAAA;IACAiY,KAAA;IACA1C,cAAA;IACAuD,QAAA;IACAC,WAAA;IACAI,mBAAmBO,IAAK,CAAApM,YAAA;IACxB2L;EACE,CAAA,GAAAS,IAAA;EACJ,MAAM,CAACjE,WAAA,EAAaC,cAAc,CAAA,GAAIrwC,SAAmC,IAAI,CAAA;EAC7E,MAAM,CAACihC,IAAA,EAAMiN,OAAO,CAAA,GAAIluC,SAAS,KAAK,CAAA;EAChC,MAAAu2C,cAAA,GAAiBn2C,OAAgC,IAAI,CAAA;EAC3D,MAAMqtC,MAAS,GAAA9tC,OAAA,CAAQg7B,aAAa,CAAA,IAAKA,aAAkB,KAAAyV,WAAA;EAC3D,MAAM,CAACoG,UAAA,EAAYC,aAAa,CAAA,GAAIz2C,SAAS,KAAK,CAAA;EAElD,MAAM2nC,gBAAmB,GAAAvZ,WAAA,CACtBzsB,KAAyC,IAAA;IACxC80C,aAAA,CAAc,KAAK,CAAA;IACnB3C,gBAAA,CAAiBnyC,KAAK,CAAA;IACtBusC,OAAA,CAAQ,IAAI,CAAA;EACd,CAAA,EACA,CAAC4F,gBAAgB,CAAA,CACnB;EAEA,MAAM4C,iBAAoB,GAAAtoB,WAAA,CACvBzsB,KAA+C,IAAA;IAC1C,IAAAA,KAAA,CAAMrH,QAAQ,WAAa,EAAA;MAC7BqH,KAAA,CAAMykC,eAAgB,EAAA;MAEtB8H,OAAA,CAAQ,KAAK,CAAA;MAEbljC,qBAAA,CAAsB,MAAM;QACbolC,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAAnV,KAAA,EAAA;MAAA,CACd,CAAA;IACH;EACF,CAAA,EACA,CAACmV,WAAW,CAAA,CACd;EAEA,MAAM7H,WAAc,GAAAna,WAAA,CACjBzsB,KAA4C,IAAA;IACvC,IAAAklC,OAAA,EAASA,OAAA,CAAQllC,KAAK,CAAA;IAE1B40C,cAAA,CAAeh2C,OAAU,GAAA,OAAA;IAEzB2tC,OAAA,CAAQ,IAAI,CAAA;IAEZljC,qBAAA,CAAsB,MAAM;MAC1BurC,cAAA,CAAeh2C,OAAU,GAAA,IAAA;IAAA,CAC1B,CAAA;EACH,CAAA,EACA,CAACsmC,OAAO,CAAA,CACV;EAEM,MAAA8P,oBAAA,GAAuBvoB,YAAY,MAAM;IAC7C8f,OAAA,CAAQ,KAAK,CAAA;IACT,IAAAwF,WAAA,EAAyBA,WAAA,EAAA;EAAA,CAC/B,EAAG,CAACA,WAAW,CAAC,CAAA;EAEhB,MAAMkD,uBAAuBxoB,WAAY,CAAA,MAAMqoB,cAAc,IAAI,CAAA,EAAG,EAAE,CAAA;EAGtEp2C,SAAA,CAAU,MAAMuyC,KAAM,CAAAxC,WAAW,GAAG,CAACwC,KAAA,EAAOxC,WAAW,CAAC,CAAA;EAGxD/vC,SAAA,CAAU,MAAM;IACd,IAAI,CAACotC,MAAA,EAAQS,OAAA,CAAQ,KAAK,CAAA;EAAA,CAC5B,EAAG,CAACT,MAAM,CAAC,CAAA;EAGXptC,SAAA,CAAU,MAAM;IACd,IAAI,CAAC4gC,IAAA,EAAMwV,aAAA,CAAc,KAAK,CAAA;EAAA,CAChC,EAAG,CAACxV,IAAI,CAAC,CAAA;EAET,MAAM4V,2BACH55B,GAAA,CAAAq2B,IAAA,EAAA;IACCpD,cAAA;IACAuD,QAAA;IACAC,WAAa,EAAAiD,oBAAA;IACbnnC,SAAW,EAAAknC,iBAAA;IACXzO,YAAc,EAAA2O,oBAAA;IACdhD,eAAA;IACAtB,aAAaiE,cAAe,CAAAh2C,OAAA;IAE3Bic;EAAA,CACH,CAAA;EAGI,MAAAisB,aAAA,GAAgBra,WAAY,CAACzsB,KAA+C,IAAA;IAChF,MAAMf,SAASe,KAAM,CAAA+mC,aAAA;IAEjB,IAAA5mC,QAAA,CAAS64B,kBAAkB/5B,MAAQ,EAAA;MACrC;IACF;IAEI,IAAAe,KAAA,CAAMrH,QAAQ,YAAc,EAAA;MAC9Bi8C,cAAA,CAAeh2C,OAAU,GAAA,OAAA;MAEzB2tC,OAAA,CAAQ,IAAI,CAAA;MACZuI,aAAA,CAAc,IAAI,CAAA;MAElBzrC,qBAAA,CAAsB,MAAM;QAC1BurC,cAAA,CAAeh2C,OAAU,GAAA,IAAA;MAAA,CAC1B,CAAA;MAED;IACF;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,OACG,eAAA0c,GAAA,CAAAwjB,OAAA,kCAAY9kB,OAAA;IAAS5e,OAAS,EAAA85C,SAAA;IAAW,SAAQ,EAAA,oBAAA;IAAqB5V,IAAA;IACrEzkB,QAAC,EAAA,eAAAS,GAAA,CAAAm5B,UAAA;MACC,SAAS,EAAAxpB,EAAA;MACT,SAAQ,EAAA,WAAA;MACR0E,WAAa,EAAA1E;IAAA,GACT9B,SAAA;MACJ,cAAA,EAAc8B,EAAO,KAAA,QAAA,GAAW4pB,UAAa,GAAA,KAAA,CAAA;MAC7C,cAAA,EAAc5pB,EAAO,KAAA,QAAA,GAAW4pB,UAAa,GAAA,KAAA,CAAA;MAC7C,eAAe,EAAA,CAACA,UAAc,IAAA/I,MAAA,GAAS,EAAK,GAAA,KAAA,CAAA;MAC5ChkB,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;MAC5BmN,KAAO,EAAAtS,IAAA;MACPgxB,OAAS,EAAA0B,WAAA;MACT/4B,SAAW,EAAAi5B,aAAA;MACXR,YAAc,EAAAN,gBAAA;MACd1oB,GAAK,EAAAoxB,cAAA;MACLxV,QAAU,EAAA,CAAA,CAAA;MACV52B,IAAA,EAAM2oB,EAAO,KAAA,QAAA,GAAW,QAAW,GAAA,KAAA,CAAA;MAEnCpQ,QAAC,EAAA,eAAAS,GAAA,CAAAuT,GAAA,EAAA;QAAI3zB,OAAA;QACH2f,QAAC,EAAA,eAAA8R,IAAA,CAAA+C,IAAA,EAAA;UACE7U,QAAA,EAAA,CAAAgW,IAAA,IAAA,eACElE,IAAA,CAAA7D,IAAA,EAAA;YAAKjtB,IAAM,EAAAD,QAAA;YACTif,QAAA,EAAA,CAAA8W,cAAA,CAAed,IAAI,CAAK,IAAAA,IAAA,EACxBhF,kBAAmB,CAAAgF,IAAI,CAAK,IAAAe,aAAA,CAAcf,IAAI,CAAA;UAAA,CACjD,CAAA,EAGD,eAAAvV,GAAA,CAAAuT,GAAA,EAAA;YAAIjO,IAAM,EAAA,CAAA;YAAGsN,UAAA,EAAY2C,OAAO12B,KAAQ,GAAA,KAAA,CAAA;YACvC0gB,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;cAAKjtB,IAAM,EAAAD,QAAA;cAAUqtB,YAAa,EAAA,UAAA;cAChCpO,QAAA,EAAA/B;YAAA,CACH;UAAA,CACF,CAAA,EAEC,eAAAwC,GAAA,CAAAuT,GAAA,EAAA;YAAIX,UAAY,EAAA/zB,KAAA;YACf0gB,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;cAAKjtB,IAAM,EAAAD,QAAA;cACVif,6BAACs6B,gBAAiB,EAAA,EAAA;YAAA,CACpB;UAAA,CACF,CAAA;QAAA,CACF;MAAA,CACF;IAAA;EACF,GACF;AAEJ;ACnKO,MAAMC,QAAW,GAAArsB,UAAA,CAAW,SAASqsB,SAAAA,CAC1Cv7C,OAEA84B,YACA,EAAA;EACM,MAAA;MACJ1H,EAAK,GAAA,QAAA;MACLpQ,QAAA;MACA/I,QAAA;MACAlW,QAAW,GAAA,CAAA;MACXy5C,OAAA;MACAxkB,IAAA;MACAC,SAAA;MACAoU,OAAA;MACAhqC,OAAU,GAAA,CAAA;MACV+zB,QAAA;MACAC,QAAA;MACAzqB,UAAA;MACAC,YAAA;MACAC,aAAA;MACAC,WAAA;MACAoN,OAAA;MACAqH,MAAS,GAAA,CAAA;MACTpH,QAAU,EAAAqjC,YAAA;MACVn7C,KAAQ,GAAA,CAAA;MACR2e,IAAA;MACA5E,IAAO,GAAA;IAEL,CAAA,GAAAra,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACJ,MAAM64C,OAAOgC,OAAQ,EAAA;EACf,MAAA;IACJ1b,aAAA;IACAiY,KAAA;IACAc,WAAA;IACAI,mBAAmBO,IAAK,CAAApM,YAAA;IACxB8L,mBAAmBM,IAAK,CAAAnM;EACtB,CAAA,GAAAmM,IAAA;EACJ,MAAM,CAACjE,WAAA,EAAaC,cAAc,CAAA,GAAIrwC,SAAgC,IAAI,CAAA;EAC1E,MAAMytC,MAAS,GAAA9tC,OAAA,CAAQg7B,aAAa,CAAA,IAAKA,aAAkB,KAAAyV,WAAA;EAEjD/vC,SAAA,CAAA,MAAMuyC,MAAMxC,WAAa,EAAA6G,YAAY,GAAG,CAACrE,KAAA,EAAOxC,WAAa,EAAA6G,YAAY,CAAC,CAAA;EAE9E,MAAAh4B,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExC,MAAMiU,WAAc,GAAAna,WAAA,CACjBzsB,KAA4C,IAAA;IACvC,IAAA8R,QAAA,EAAU;IACV,IAAAozB,OAAA,EAASA,OAAA,CAAQllC,KAAK,CAAA;IACtB,IAAA+xC,WAAA,EAAyBA,WAAA,EAAA;EAC/B,CAAA,EACA,CAACjgC,QAAU,EAAAozB,OAAA,EAAS6M,WAAW,CAAA,CACjC;EAEA,MAAMwD,YAAe,GAAA/3C,OAAA,CACnB,OAAO;IACLtC,OAAA;IACA+zB,QAAA;IACAC,QAAA;IACAzqB,UAAA;IACAC,YAAA;IACAC,aAAA;IACAC;EAAA,CACF,CAAA,EACA,CAAC1J,OAAS,EAAA+zB,QAAA,EAAUC,UAAUzqB,UAAY,EAAAC,YAAA,EAAcC,eAAeC,WAAW,CAAA,CACpF;EAEA,MAAMswB,MAAS,GAAAzI,WAAA,CACZ5uB,EAA8B,IAAA;IAC7Byf,GAAA,CAAI1e,OAAU,GAAAf,EAAA;IACd6wC,cAAA,CAAe7wC,EAAE,CAAA;EACnB,CAAA,EACA,CAACyf,GAAG,CAAA,CACN;EAEA,OACG,eAAAqP,IAAA,CAAA8nB,UAAA;IACC,SAAQ,EAAA;EAAA,GACJtrB,SAAA;IACJ,cAAA,EAAc8B,OAAO,QAAY,IAAAjZ,OAAA;IACjC,cAAc,EAAAiZ,EAAA,KAAO,QAAY,IAAAjZ,OAAA,GAAU,EAAK,GAAA,KAAA,CAAA;IAChD,eAAA,EAAe85B,SAAS,EAAK,GAAA,KAAA,CAAA;IAC7B,eAAA,EAAeh6B,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/B6d,WAAa,EAAA1E,EAAA;IACbnD,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;IAC5BkM,QAAA,EAAUnoB,aAAa,CAAC,CAAA;IACxBopB,KAAO,EAAAtS,IAAA;IACPpC,QAAA;IACAozB,OAAS,EAAA0B,WAAA;IACTN,YAAc,EAAA6L,gBAAA;IACd5L,YAAc,EAAA6L,gBAAA;IACd90B,GAAK,EAAA4X,MAAA;IACL8R,IAAK,EAAA,UAAA;IACL9N,QAAU,EAAA,CAAA,CAAA;IACV52B,IAAA,EAAM2oB,EAAO,KAAA,QAAA,GAAW,QAAW,GAAA,KAAA,CAAA;IAEjCpQ,QAAA,EAAA,CAAQ,CAAAgW,IAAA,IAAA/X,IAAA,IAAQgY,cACf,eAAAxV,GAAA,CAAAuT,GAAA;MAAI5D,EAAG,EAAA;IAAA,GAAWsqB,YAAA;MACjB16B,QAAC,EAAA,eAAA8R,IAAA,CAAA+C,IAAA,EAAA;QAAKzE,EAAG,EAAA,MAAA;QACNpQ,QAAA,EAAA,CAAAgW,IAAA,IAAA,eACElE,IAAA,CAAA7D,IAAA,EAAA;UAAKjtB,IAAM,EAAAD,QAAA;UACTif,QAAA,EAAA,CAAA8W,cAAA,CAAed,IAAI,CAAK,IAAAA,IAAA,EACxBhF,kBAAmB,CAAAgF,IAAI,CAAK,IAAAe,aAAA,CAAcf,IAAI,CAAA;QAAA,CACjD,CAAA,EAGD/X,uBACEwC,GAAA,CAAAuT,GAAA,EAAA;UACCjO,IAAM,EAAA,CAAA;UACNsN,UAAA,EAAY2C,OAAO12B,KAAQ,GAAA,KAAA,CAAA;UAC3B60B,WAAA,EAAa8B,YAAY32B,KAAQ,GAAA,KAAA,CAAA;UAEjC0gB,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;YAAKjtB,IAAM,EAAAD,QAAA;YAAUqtB,YAAa,EAAA,UAAA;YAChCpO,QAAA,EAAA/B;UAAA,CACH;QAAA,CACF,CAAA,EAGDu8B,0BACE/5B,GAAA,CAAAuT,GAAA,EAAA;UAAIX,UAAY,EAAA/zB,KAAA;UAAOzB,KAAO,EAAA;YAACiE,SAAW,EAAA,CAAA,CAAA;YAAIC,cAAc,CAAE;UAAA,CAAA;UAC7Die,QAAC,EAAA,eAAAS,GAAA,CAAAs0B,OAAA,EAAA;YAAQh0C,QAAA;YAAoBrD,IAAM,EAAA88C;UAAA,CAAS;QAAA,CAC9C,CAAA,EAGDvkB,4BACEnE,IAAA,CAAA7D,IAAA,EAAA;UAAKjtB,IAAM,EAAAD,QAAA;UACTif,QAAA,EAAA,CAAA8W,cAAA,CAAeb,SAAS,CAAK,IAAAA,SAAA,EAC7BjF,kBAAmB,CAAAiF,SAAS,CAAK,IAAAc,aAAA,CAAcd,SAAS,CAAA;QAAA,CAC3D,CAAA;MAAA,CAEJ;IAAA,GACF,EAGDjW,2BACES,GAAA,CAAAuT,GAAA;MAAI5D,EAAG,EAAA;IAAA,GAAWsqB,YAAA;MAChB16B;IAAA,GACH;EAAA,GAEJ;AAEJ,CAAC,CAAA;AC/KD,MAAM26B,QAAW,GAAA3lB,SAAA,wKAAA;AASjB,MAAM4lB,SAAY,GAAArvB,GAAA,2iBAYEovB,QAAA,CAAA;AAUb,MAAME,aAAgB,GAAAtvB,GAAA,2UAChB;EAAA,IAAC;IAACuvB;EAAQ,CAAA;EAAA,OAAOA,WAAW,CAAI,GAAA,CAAA;AAAA,GAIvC;EAAA,IAAC;IAACC;EAAS,CAAA;EAAA,OACXA,YACIH,SACA,GAAArvB,GAAA,qJAAA;AAAA,EAAA;ACjCV,MAAMqC,MAAA,GAAOC,OAAOmG,GAAG,CAAA,CACrBhH,qBAAA,EACA6tB,aAAA,CACF;AAeO,MAAMG,QAAW,GAAA9sB,UAAA,CAAW,SAAS8sB,SAAAA,CAC1Ch8C,OACAyjB,GACA,EAAA;EACA,MAAM;MAACw4B,QAAW,GAAA,KAAA;MAAOC,KAAO;MAAA18B;IAAwB,CAAA,GAAAxf,KAAA;IAAbsvB,qCAAatvB,KAAA;EACxD,MAAM,CAACm8C,OAAS,EAAAC,UAAU,IAAI53C,QAAkB,CAAA03C,KAAA,GAAQ,QAAQ,IAAI,CAAA;EAEpEr3C,SAAA,CAAU,MAAM;IACd,IAAI,CAACq3C,KAAO,EAAA;MACV,OAAOE,WAAW,IAAI,CAAA;IACxB;IAEM,MAAAlsC,OAAA,GAAU88B,WAAW,MAAM;MAC/BoP,UAAA,CAAW,IAAI,CAAA;OACdF,KAAK,CAAA;IAER,OAAO,MAAM;MACXG,YAAA,CAAansC,OAAO,CAAA;IAAA,CACtB;EAAA,CACF,EAAG,CAACgsC,KAAK,CAAC,CAAA;EAEV,OACG,eAAAz6B,GAAA,CAAAmN,MAAA,kCACKU,SAAA;IACJysB,SAAW,EAAAE,QAAA;IACXhuB,OAAA,EAAS1qB,aAAaic,MAAM,CAAA;IAC5Bs8B,QAAU,EAAAK,OAAA;IACV14B;EAAA,GACF;AAEJ,CAAC,CAAA;ACjDD,MAAMmL,MAAA,GAAOC,OAAOmtB,QAAQ,CAAA,CAC1B,UAAmF;EAAA,IAAlF;IAACv7C,KAAO;IAAA67C,MAAA;IAAQv8C;GAAkE;EAC3E,MAAA;IAACb;EAAK,CAAA,GAAIa,KAAM,CAAAK,MAAA;EAChB,MAAAwsB,IAAA,GAAO7sB,KAAM,CAAAK,MAAA,CAAOO,KAAM,CAAA27C,MAAA,CAAA;EAEhC,MAAMlwB,MAAS,GAAAntB,WAAA,CAAYC,KAAO,EAAAuB,KAAA,EAAQqB,SAAc,IAAA;IAChD,MAAAC,QAAA,GAAW6qB,KAAK/rB,KAAM,CAAAiB,SAAA,CAAA;IAC5B,MAAMS,SAAY,GAAAR,QAAA,CAASM,UAAa,GAAAN,QAAA,CAASE,iBAAiBF,QAAS,CAAAG,eAAA;IAEpE,OAAA;MAACT,QAAQc;KAAS;EAAA,CAC1B,CAAA;EAEM,OAAA6pB,MAAA;AACT,CAAA,CACF;AAsCO,MAAMmwB,YAAe,GAAArtB,UAAA,CAAW,SAASqtB,aAAAA,CAC9Cv8C,OAEAyjB,GACA,EAAA;EACA,MAAM;MAACzhB,IAAA,GAAO;IAAM,CAAa,GAAAhC,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAC3B,MAAAS,KAAA,GAAQ8C,aAAavB,IAAI,CAAA;EAE/B,OAAQ,eAAAyf,GAAA,CAAAmN,MAAA,kCAASU,SAAA;IAAW7uB,KAAA;IAAcgjB,GAAA;IAAU64B,MAAO,EAAA;EAAA,GAAO;AACpE,CAAC,CAAA;AAMM,MAAME,aAAgB,GAAAttB,UAAA,CAAW,SAASqtB,aAAAA,CAC/Cv8C,OAEAyjB,GACA,EAAA;EACA,MAAM;MAACzhB,IAAA,GAAO;IAAM,CAAa,GAAAhC,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAC3B,MAAAS,KAAA,GAAQ8C,aAAavB,IAAI,CAAA;EAE/B,OAAQ,eAAAyf,GAAA,CAAAmN,MAAA,kCAASU,SAAA;IAAW7uB,KAAA;IAAcgjB,GAAA;IAAU64B,MAAO,EAAA;EAAA,GAAQ;AACrE,CAAC,CAAA;AAMM,MAAMG,eAAkB,GAAAvtB,UAAA,CAAW,SAASqtB,aAAAA,CACjDv8C,OAEAyjB,GACA,EAAA;EACA,MAAM;MAACzhB,IAAA,GAAO;IAAM,CAAa,GAAAhC,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAC3B,MAAAS,KAAA,GAAQ8C,aAAavB,IAAI,CAAA;EAE/B,OAAQ,eAAAyf,GAAA,CAAAmN,MAAA,kCAASU,SAAA;IAAW7uB,KAAA;IAAcgjB,GAAA;IAAU64B,MAAO,EAAA;EAAA,GAAU;AACvE,CAAC,CAAA;AAMM,MAAMI,YAAe,GAAAxtB,UAAA,CAAW,SAASqtB,aAAAA,CAC9Cv8C,OAEAyjB,GACA,EAAA;EACA,MAAM;MAACzhB,IAAA,GAAO;IAAM,CAAa,GAAAhC,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAC3B,MAAAS,KAAA,GAAQ8C,aAAavB,IAAI,CAAA;EAE/B,OAAQ,eAAAyf,GAAA,CAAAmN,MAAA,kCAASU,SAAA;IAAW7uB,KAAA;IAAcgjB,GAAA;IAAU64B,MAAO,EAAA;EAAA,GAAO;AACpE,CAAC,CAAA;ACvFM,MAAMK,GAAM,GAAAztB,UAAA,CAAW,SAASytB,IAAAA,CACrC38C,OAEA84B,YACA,EAAA;EACM,MAAA;MACJ9B,IAAA;MACAhb,EAAA;MACAsxB,OAAA;MACAvrC,QAAA;MACAid,KAAA;MACAqsB,OAAA;MACAmB,OAAA;MACAnrC,OAAU,GAAA,CAAA;MACV+W;IAEE,CAAA,GAAApY,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACE,MAAA48C,UAAA,GAAah4C,OAAiC,IAAI,CAAA;EAClD,MAAAi4C,UAAA,GAAaj4C,OAAO,KAAK,CAAA;EAEzB,MAAAqnC,UAAA,GAAarZ,YAAY,MAAM;IACnCiqB,UAAA,CAAW93C,OAAU,GAAA,KAAA;EACvB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMmnC,WAAc,GAAAtZ,WAAA,CACjBzsB,KAA+C,IAAA;IAC9C02C,UAAA,CAAW93C,OAAU,GAAA,IAAA;IACjB,IAAAynC,OAAA,EAASA,OAAA,CAAQrmC,KAAK,CAAA;EAC5B,CAAA,EACA,CAACqmC,OAAO,CAAA,CACV;EAEM,MAAA/oB,GAAA,GAAMD,gBAAgBsV,YAAY,CAAA;EAExCj0B,SAAA,CAAU,MAAM;IACV,IAAAyoC,OAAA,IAAW,CAACuP,UAAA,CAAW93C,OAAS,EAAA;MAClC,IAAI63C,UAAW,CAAA73C,OAAA,EAAS63C,UAAA,CAAW73C,QAAQ06B,KAAM,EAAA;MACjDod,UAAA,CAAW93C,OAAU,GAAA,IAAA;IACvB;EAAA,CACF,EAAG,CAACuoC,OAAO,CAAC,CAAA;EAEN,MAAAjS,MAAA,GAAUr3B,EAAiC,IAAA;IAC/C44C,UAAA,CAAW73C,OAAU,GAAAf,EAAA;IACrByf,GAAA,CAAI1e,OAAU,GAAAf,EAAA;EAAA,CAChB;EAEA,OACG,eAAAyd,GAAA,CAAAsV,MAAA;IACC,SAAQ,EAAA;EAAA,GACJzH,SAAA;IACJ,eAAA,EAAelX,WAAW,MAAS,GAAA,OAAA;IACnCrW,QAAA;IACAi1B,IAAA;IACAhb,EAAA;IACA7E,IAAK,EAAA,OAAA;IACLk0B,OAAA;IACAkB,MAAQ,EAAAN,UAAA;IACRO,OAAS,EAAAN,WAAA;IACT7qC,OAAA;IACAoiB,GAAK,EAAA4X,MAAA;IACL8R,IAAK,EAAA,KAAA;IACL/0B,QAAA;IACAinB,QAAA,EAAUjnB,WAAW,CAAI,GAAA,CAAA,CAAA;IACzB6G,IAAM,EAAAD,KAAA;IACNvW,IAAK,EAAA;EAAA,GACP;AAEJ,CAAC,CAAA;ACnFD,SAASq0C,gBAAgB/vC,IAA2C,EAAA;EAClE,OAAO5I,QAAQ4I,IAAI,CAAA;AACrB;AAKO,MAAMgwC,OAAU,GAAA7tB,UAAA,CAAW,SAAS6tB,QAAAA,CACzC/8C,OACAyjB,GACA,EAAA;EACA,MAAM;MAACzC,QAAA,EAAUmO;IAAiB,CAAa,GAAAnvB,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAC/C,MAAM,CAACy3C,YAAA,EAAcuF,eAAe,CAAA,GAAIx4C,SAAS,CAAE,CAAA,CAAA;EAE7C,MAAAwc,QAAA,GAAWrd,QAAQ,MAAMwrB,YAAA,CAAajrB,OAAO44C,eAAe,CAAA,EAAG,CAAC3tB,YAAY,CAAC,CAAA;EAEnF,MAAM8tB,OAAOj8B,QAAS,CAAA1hB,GAAA,CAAI,CAACm1B,KAAA,EAAOI,UAChC,KAAAC,YAAA,CAAaL,KAAO,EAAA;IAClB6Y,SAASmK,YAAiB,KAAA5iB,UAAA;IAC1B/1B,GAAK,EAAA+1B,UAAA;IACL2X,OAAA,EAAS,MAAM0Q,cAAA,CAAeroB,UAAU;EAAA,CACzC,CAAA,CACH;EAEA,MAAMsoB,UAAUF,IAAK,CAAA98C,MAAA;EAEf,MAAA+8C,cAAA,GAAiBtqB,WAAY,CAACwqB,MAAmB,IAAA;IACrDJ,eAAA,CAAgBI,MAAM,CAAA;EACxB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMnQ,aAAgB,GAAAra,WAAA,CACnBzsB,KAA+C,IAAA;IAC1C,IAAAA,KAAA,CAAMrH,QAAQ,WAAa,EAAA;MAC7Bk+C,eAAA,CAAiBK,SAAA,IAAA,CAAeA,SAAY,GAAAF,OAAA,GAAU,KAAKA,OAAO,CAAA;IACpE;IAEI,IAAAh3C,KAAA,CAAMrH,QAAQ,YAAc,EAAA;MAC9Bk+C,eAAA,CAAiBK,SAAA,IAAA,CAAeA,SAAY,GAAA,CAAA,IAAKF,OAAO,CAAA;IAC1D;EACF,CAAA,EACA,CAACA,OAAO,CAAA,CACV;EAEA,OACG,eAAA17B,GAAA,CAAA+Y,MAAA;IAAO,SAAQ,EAAA;EAAA,GAAclL,SAAA;IAAWtb,SAAW,EAAAi5B,aAAA;IAAexpB,GAAA;IAAU0pB,IAAK,EAAA,SAAA;IAC/EnsB,QAAA,EAAAi8B;EAAA,GACH;AAEJ,CAAC,CAAA;ACzCM,MAAMK,QAAW,GAAApuB,UAAA,CAAW,SAASouB,SAAAA,CAC1Ct9C,OAEAyjB,GACA,EAAA;EACM,MAAA;MAACsD;IAAS,CAAa,GAAA/mB,KAAA;IAAbsvB,SAAA,4BAAatvB,KAAA;EAE7B,OACG,eAAAyhB,GAAA,CAAAuT,GAAA;IACC,SAAQ,EAAA;EAAA,GACJ1F,SAAA;IACJvI,IAAA;IACAtD,GAAA;IACA0pB,IAAK,EAAA,UAAA;IACL9N,QAAU,EAAAr/B,KAAA,CAAMq/B,QAAa,KAAA,KAAA,CAAA,GAAY,IAAIr/B,KAAM,CAAAq/B,QAAA;IAElDre,QAAM,EAAAhhB,KAAA,CAAAghB;EAAA,GACT;AAEJ,CAAC,CAAA;ACpBD,MAAMu8B,gBAAuD,GAAA;EAC3D9hB,KAAO,EAAA,UAAA;EACP+hB,OAAS,EAAA,SAAA;EACTC,OAAS,EAAA,UAAA;EACT7hB,IAAM,EAAA;AACR,CAAA;AAEA,MAAM8hB,KAAQ,GAAA;EACZjiB,KAAO,EAAA,OAAA;EACP+hB,OAAS,EAAA,OAAA;EACTC,OAAS,EAAA,OAAA;EACT7hB,IAAM,EAAA;AACR,CAAA;AAEA,MAAMhN,MAAA,GAAOC,OAAOwJ,IAAI,CAAA,mGAAA;AAIxB,MAAMslB,OAAA,GAAU9uB,OAAOgH,IAAI,CAAA,gGAAA;AAOpB,SAAS+nB,MACd59C,KACoB,EAAA;EACpB,MAAM;MAAC69C,QAAU;MAAAC,WAAA;MAAanJ;MAASnjB,KAAO;MAAAK;IAAwB,CAAA,GAAA7xB,KAAA;IAAbsvB,qCAAatvB,KAAA;EAChE,MAAA+9C,QAAA,GAAWlsB,MAAS,GAAA0rB,gBAAA,CAAiB1rB,MAAU,CAAA,GAAA,SAAA;EAC/C,MAAAsb,IAAA,GAAOtb,MAAS,GAAA6rB,KAAA,CAAM7rB,MAAU,CAAA,GAAA,QAAA;EAEtC,OACG,eAAApQ,GAAA,CAAAmN,MAAA;IACC,SAAQ,EAAA,OAAA;IACRue;EAAA,GACI7d,SAAA;IACJxsB,SAAW,EAAA,CAAA;IACX0c,MAAQ,EAAA,CAAA;IACR3F,MAAQ,EAAA,CAAA;IACRQ,IAAM,EAAA0jC,QAAA;IAEN/8B,QAAC,EAAA,eAAA8R,IAAA,CAAA+C,IAAA,EAAA;MAAKhQ,KAAM,EAAA,YAAA;MACV7E,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAk8B,OAAA,EAAA;QAAQ52B,IAAM,EAAA,CAAA;QAAG1lB,OAAS,EAAA,CAAA;QACzB2f,QAAC,EAAA,eAAA8R,IAAA,CAAAuV,KAAA,EAAA;UAAM/nC,KAAO,EAAA,CAAA;UACX0gB,QAAA,EAAA,CAAAwQ,KAAA,IAAA,eAAU/P,GAAA,CAAAwN,IAAA,EAAA;YAAKI,MAAO,EAAA,UAAA;YAAYrO,QAAA,EAAAwQ;UAAA,CAAM,CAAA,EACxCssB,8BACEr8B,GAAA,CAAAwN,IAAA,EAAA;YAAK/X,KAAK,EAAA,IAAA;YAAClV,IAAM,EAAA,CAAA;YACfgf,QAAA,EAAA88B;UAAA,CACH,CAAA;QAAA,CAEJ;MAAA,CACF,CAAA,EAECD,2BACEp8B,GAAA,CAAAuT,GAAA,EAAA;QAAI3zB,OAAS,EAAA,CAAA;QACZ2f,QAAC,EAAA,eAAAS,GAAA,CAAAsV,MAAA,EAAA;UACC3F,EAAG,EAAA,QAAA;UACH4F,IAAM,EAAAoU,SAAA;UACNj0B,IAAK,EAAA,OAAA;UACL9V,OAAS,EAAA,CAAA;UACTgqC,OAAS,EAAAsJ,OAAA;UACT91C,KAAA,EAAO;YAACy7B,aAAA,EAAe;UAAK;QAAA,CAC9B;MAAA,CACF,CAAA;IAAA,CAEJ;EAAA,GACF;AAEJ;ACjFA,MAAMx7B,KAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDF,WAAA,CAAY1hB,KAAO,CAAA,GAAA0hB,WAAA,CAAY1hB,KAAQ,CAAA,IAAA6hB,aAAA,CAAwC,IAAI,CAAA;AAE5E,MAAMq9B,eAAwDx9B,WAAY,CAAA1hB,KAAA,CAAA;ACoBjF,MAAM8vB,MAAA,GAAOC,OAAO4N,KAAK,CAAA,0KAAA;AASzB,MAAMwhB,iBAAiBpvB,MAAO,CAAAC,GAAA,6LAAA;AAS9B,IAAIovB,OAAU,GAAA,CAAA;AAKP,SAASC,cAAcn+C,KAA+C,EAAA;EAC3E,MAAM;IAACghB,QAAU;IAAA3f,OAAA,GAAU;IAAG+zB,QAAU;IAAAC,QAAA;IAAUnV;EAAW,CAAA,GAAAlgB,KAAA;EACvD,MAAA,CAACgY,OAAOomC,QAAQ,CAAA,GAAI55C,SAAqB;IAAC65C,MAAA,EAAQ;EAAC,CAAE,CAAA;EACrD,MAAAC,SAAA,GAAY15C,MAAqD,CAAA,CAAA,CAAE,CAAA;EAEnE,MAAAX,IAAA,GAAO2uB,WAAY,CAAC2rB,MAAwB,IAAA;IAChD,MAAMviC,EAAK,GAAAuiC,MAAA,CAAOviC,EAAM,IAAA+Y,MAAA,CAAOmpB,OAAS,EAAA,CAAA;IAClC,MAAAM,QAAA,GAAWD,OAAOC,QAAY,IAAA,GAAA;IAEpC,MAAMC,UAAU,MAAM;MA5D1B,IAAAl3C,EAAA;MA6DM,MAAMm3C,SAAY,GAAA,CAAAn3C,EAAA,GAAA+2C,SAAA,CAAUv5C,OAAQ,CAAAiX,EAAA,CAAA,KAAlB,IAAuB,GAAA,KAAA,CAAA,GAAAzU,EAAA,CAAAm3C,SAAA;MAEzCN,QAAA,CAAUO,SAAc,IAAA;QAChB,MAAAjrC,GAAA,GAAMirC,UAAUN,MAAO,CAAAO,SAAA,CAAWC,CAAM,IAAAA,CAAA,CAAE7iC,OAAOA,EAAE,CAAA;QAEzD,IAAItI,MAAM,CAAI,CAAA,EAAA;UACZ,MAAM2qC,MAAS,GAAAM,SAAA,CAAUN,MAAO,CAAA9rC,KAAA,CAAM,CAAC,CAAA;UAEhC8rC,MAAA,CAAAnwC,MAAA,CAAOwF,KAAK,CAAC,CAAA;UAEb,uCAAIirC,SAAA;YAAWN;UAAM;QAC9B;QAEO,OAAAM,SAAA;MAAA,CACR,CAAA;MAED,IAAID,cAAc,KAAW,CAAA,EAAA;QAC3BrC,YAAA,CAAaqC,SAAS,CAAA;QACtB,OAAOJ,UAAUv5C,OAAQ,CAAAiX,EAAA,CAAA;MAC3B;IAAA,CACF;IAEAoiC,QAAA,CAAUO,SAAc,IAAA;MACf,uCACFA,SAAA;QACHN,MAAA,EAAQM,SAAU,CAAAN,MAAA,CACfn6C,MAAO,CAAC26C,KAAMA,CAAE,CAAA7iC,EAAA,KAAOA,EAAE,CAAA,CACzB3M,MAAO,CAAA,CACN;UACEovC,OAAA;UACAziC,EAAA;UACAuiC,MAAQ,kCAAIA,MAAA;YAAQC;UAAQ;QAC9B,CAAA,CACD;MAAA;IACL,CACD,CAAA;IAEG,IAAAF,SAAA,CAAUv5C,QAAQiX,EAAK,CAAA,EAAA;MACZqgC,YAAA,CAAAiC,SAAA,CAAUv5C,OAAQ,CAAAiX,EAAA,CAAA,CAAI0iC,SAAS,CAAA;MAC5C,OAAOJ,UAAUv5C,OAAQ,CAAAiX,EAAA,CAAA;IAC3B;IAEAsiC,SAAA,CAAUv5C,QAAQiX,EAAM,CAAA,GAAA;MAAC0iC,WAAW1R,UAAW,CAAAyR,OAAA,EAASD,QAAQ;KAAC;IAE1D,OAAAxiC,EAAA;EACT,CAAA,EAAG,EAAE,CAAA;EAGLnX,SAAA,CACE,MAAM,MAAM;IACV,KAAA,MAAW;MAAC65C;KAAS,IAAK73C,OAAO1H,MAAO,CAAAm/C,SAAA,CAAUv5C,OAAO,CAAG,EAAA;MAC1Ds3C,YAAA,CAAaqC,SAAS,CAAA;IACxB;IAEAJ,SAAA,CAAUv5C,UAAU,EAAC;EACvB,CAAA,EACA,EAAC,CACH;EAEM,MAAApG,KAAA,GAA2BgF,OAAQ,CAAA,OAAO;IAAC6d,OAAA,EAAS;IAAKvd;GAAI,CAAA,EAAI,CAACA,IAAI,CAAC,CAAA;EAG3E,sBAAA6uB,IAAA,CAACkrB,aAAat8B,QAAb,EAAA;IAAsB/iB,KAAA;IACpBqiB,QAAA,EAAA,CAAAA,QAAA,EAEA,eAAAS,GAAA,CAAAmN,MAAA,EAAA;MAAK,SAAQ,EAAA,eAAA;MAAgB1O,OAAA;MAC5Bc,QAAC,EAAA,eAAAS,GAAA,CAAAw8B,cAAA,EAAA;QACCj9B,QAAC,EAAA,eAAAS,GAAA,CAAAuT,GAAA,EAAA;UAAI3zB,OAAA;UAAkB+zB,QAAA;UAAoBC,QAAA;UACzCrU,QAAC,EAAA,eAAAS,GAAA,CAAAq9B,eAAA,EAAA;YAAgBC,OAAS,EAAA,KAAA;YACvB/9B,QAAA,EAAAhJ,KAAA,CAAMqmC,MAAO,CAAA/+C,GAAA,CAAI;cAAA,IAAC;gBAACm/C,OAAS;gBAAAziC,EAAA;gBAAIuiC;cAAM,CAAA;cAAA,OAAA,eACpC98B,GAAA,CAAAu9B,MAAA,CAAOlwB,GAAP,EAAA;gBACCmwB,SAAS;kBAAC/uB,OAAA,EAAS;kBAAG/oB,CAAG,EAAA,CAAA;kBAAG+3C,OAAO;gBAAC,CAAA;gBACpCC,IAAA,EAAM;kBAACjvB,OAAA,EAAS,CAAG;kBAAAgvB,KAAA,EAAO;kBAAK/uB,UAAY,EAAA;oBAACquB,QAAU,EAAA;;gBAAI,CAAA;gBAC1DO,SAAS;kBAAC7uB,OAAA,EAAS;kBAAG/oB,CAAG,EAAA,EAAA;kBAAI+3C,OAAO;gBAAI,CAAA;gBAExCE,MAAO,EAAA,UAAA;gBACPjvB,YAAY;kBAAC1nB,IAAA,EAAM;kBAAU42C,OAAS,EAAA,EAAA;kBAAIC,WAAW;gBAAG,CAAA;gBAExDt+B,QAAC,EAAA,eAAAS,GAAA,CAAAm8B,KAAA,EAAA;kBACCC,UAAUU,MAAO,CAAAV,QAAA;kBACjBC,aAAaS,MAAO,CAAAT,WAAA;kBACpBnJ,OAAS,EAAA8J,OAAA;kBACT5sB,QAAQ0sB,MAAO,CAAA1sB,MAAA;kBACfL,OAAO+sB,MAAO,CAAA/sB;gBAAA,CAChB;cAAA,CAAA,EAVKxV,EAWP,CACD;YAAA;UAAA,CACH;QAAA,CACF;MAAA,CACF;IAAA,CACF,CAAA;EAAA,CACF,CAAA;AAEJ;AClJO,SAASujC,QAA8B,GAAA;EACtC,MAAA5gD,KAAA,GAAQoiB,WAAWi9B,YAAY,CAAA;EAErC,IAAI,CAACr/C,KAAO,EAAA;IACJ,MAAA,IAAIuB,MAAM,mCAAmC,CAAA;EACrD;EAKA,IAAI,CAAC0hB,QAAS,CAAAjjB,KAAK,CAAK,IAAAA,KAAA,CAAM6iB,YAAY,CAAK,EAAA;IACvC,MAAA,IAAIthB,MAAM,iDAAiD,CAAA;EACnE;EAEO,OAAAvB,KAAA;AACT;ACrBgB,SAAA6gD,oBAAA,CACdxnC,KACA,EAAAynC,YAAA,EACArP,cACoB,EAAA;EANtB,IAAA7oC,EAAA;EAOQ,MAAAmM,GAAA,GAAM+rC,YAAa,CAAAntC,OAAA,CAAQ89B,cAAc,CAAA;EAC/C,MAAM8J,GAAM,GAAAuF,YAAA,CAAaltC,KAAM,CAAA,CAAA,EAAGmB,GAAG,CAAA;EACrC,MAAMmY,MAAMquB,GAAI,CAAA/5C,MAAA;EAEhB,KAAA,IAASyR,IAAIia,GAAM,GAAA,CAAA,EAAGja,CAAK,IAAA,CAAA,EAAGA,KAAK,CAAG,EAAA;IACpC,MAAM8tC,OAAU,GAAAxF,GAAA,CAAItoC,CAAG,CAAA,CAAA0tB,YAAA,CAAa,eAAe,CAAA;IAEnD,IAAI,CAACogB,OAAS,EAAA;MACZ;IACF;IAEM,MAAAC,QAAA,GAAWD,OAAQ,CAAA5a,KAAA,CAAM,GAAG,CAAA;IAElC6a,QAAA,CAASC,GAAI,EAAA;IAEb,MAAMzzB,IAAc,EAAC;IAErB,IAAI2jB,QAAW,GAAA,IAAA;IAEf,KAAA,IAAS+P,IAAI,CAAG,EAAAA,CAAA,GAAIF,QAAS,CAAAx/C,MAAA,EAAQ0/C,KAAK,CAAG,EAAA;MACzC1zB,CAAA,CAAAloB,IAAA,CAAK07C,SAASE,CAAE,CAAA,CAAA;MAEZ,MAAAC,CAAA,GAAI3zB,CAAE,CAAA9E,IAAA,CAAK,GAAG,CAAA;MAEpB,IAAI,EAAC,CAAA9f,EAAA,GAAAyQ,KAAA,CAAM8nC,CAAN,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAv4C,EAAA,CAAUuoC,QAAU,CAAA,EAAA;QACZA,QAAA,GAAA,KAAA;QACX;MACF;IACF;IAEA,IAAIA,QAAU,EAAA;MACZ,OAAOoK,GAAI,CAAAtoC,CAAA,CAAA;IACb;EACF;EAEO,OAAA,IAAA;AACT;AAEgB,SAAAmuC,oBAAA,CACd/nC,KACA,EAAAynC,YAAA,EACArP,cACoB,EAAA;EAjDtB,IAAA7oC,EAAA;EAkDQ,MAAAmM,GAAA,GAAM+rC,YAAa,CAAAntC,OAAA,CAAQ89B,cAAc,CAAA;EACzC,MAAA8J,GAAA,GAAMuF,YAAa,CAAAltC,KAAA,CAAMmB,GAAG,CAAA;EAClC,MAAMmY,MAAM4zB,YAAa,CAAAt/C,MAAA;EAEzB,KAAA,IAASyR,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAia,GAAA,EAAKja,KAAK,CAAG,EAAA;IAC3B,IAAA,CAACsoC,IAAItoC,CAAI,CAAA,EAAA;MACX;IACF;IAEA,MAAM8tC,OAAU,GAAAxF,GAAA,CAAItoC,CAAG,CAAA,CAAA0tB,YAAA,CAAa,eAAe,CAAA;IAEnD,IAAI,CAACogB,OAAS,EAAA;MACZ;IACF;IAEM,MAAAC,QAAA,GAAWD,OAAQ,CAAA5a,KAAA,CAAM,GAAG,CAAA;IAElC6a,QAAA,CAASC,GAAI,EAAA;IAEb,MAAMzzB,IAAc,EAAC;IAErB,IAAI2jB,QAAW,GAAA,IAAA;IAEf,KAAA,IAAS+P,IAAI,CAAG,EAAAA,CAAA,GAAIF,QAAS,CAAAx/C,MAAA,EAAQ0/C,KAAK,CAAG,EAAA;MACzC1zB,CAAA,CAAAloB,IAAA,CAAK07C,SAASE,CAAE,CAAA,CAAA;MAEZ,MAAAC,CAAA,GAAI3zB,CAAE,CAAA9E,IAAA,CAAK,GAAG,CAAA;MAEpB,IAAI,EAAC,CAAA9f,EAAA,GAAAyQ,KAAA,CAAM8nC,CAAN,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAv4C,EAAA,CAAUuoC,QAAU,CAAA,EAAA;QACZA,QAAA,GAAA,KAAA;QACX;MACF;IACF;IAEA,IAAIA,QAAU,EAAA;MACZ,OAAOoK,GAAI,CAAAtoC,CAAA,CAAA;IACb;EACF;EAEO,OAAA,IAAA;AACT;AAEO,SAASouC,kBAAkBh8C,EAAuB,EAAA;EACvD,IAAIA,EAAG,CAAAs7B,YAAA,CAAa,MAAM,CAAA,KAAM,UAAY,EAAA;IAC1Ct7B,EAAA,CAAGy7B,KAAM,EAAA;EACX;EAEA,IAAIz7B,EAAG,CAAAs7B,YAAA,CAAa,MAAM,CAAA,KAAM,MAAQ,EAAA;IACtC,MAAMsB,aAAa58B,EAAG,CAAA48B,UAAA;IAElB,IAAAA,UAAA,IAAcA,sBAAsBC,WAAa,EAAA;MACnDD,UAAA,CAAWnB,KAAM,EAAA;IACnB;EACF;AACF;ACpGA,MAAM3gC,GAAA,GAAM2hB,MAAO,CAAAC,GAAA,CAAI,yBAAyB,CAAA;AAEhDF,WAAA,CAAY1hB,GAAO,CAAA,GAAA0hB,WAAA,CAAY1hB,GAAQ,CAAA,IAAA6hB,aAAA,CAAuC,IAAI,CAAA;AAK3E,MAAMs/B,cAAsDz/B,WAAY,CAAA1hB,GAAA,CAAA;ACQxE,MAAMohD,IAAO,GAAAlc,IAAA,CAClB9U,UAAW,CAAA,SAASgxB,KAClB,CAAAlgD,KAAA,EAEAyjB,GACoB,EAAA;EACpB,MAAM;MAACzC,QAAA;MAAU1gB,KAAQ,GAAA;IAAmB,CAAA,GAAAN,KAAA;IAAbsvB,qCAAatvB,KAAA;EACtC,MAAA84B,YAAA,GAAetV,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC2sB,cAAA,EAAgB+P,iBAAiB,CAAA,GAAI37C,SAA6B,IAAI,CAAA;EACvE,MAAA47C,iBAAA,GAAoBx7C,OAAOwrC,cAAc,CAAA;EAC/C,MAAM1M,OAAiB//B,OAAQ,CAAA,MAAM,EAAC,EAAG,EAAE,CAAA;EAC3C,MAAM,CAAC87C,YAAc,EAAAY,eAAe,CAAI,GAAA77C,QAAA,CAAwB,EAAE,CAAA;EAClE,MAAM,CAACwT,KAAO,EAAAomC,QAAQ,CAAI,GAAA55C,QAAA,CAAoB,CAAE,CAAA,CAAA;EAC1C,MAAA87C,QAAA,GAAW17C,OAAOoT,KAAK,CAAA;EAE7BnT,SAAA,CAAU,MAAM;IACdu7C,iBAAA,CAAkBr7C,OAAU,GAAAqrC,cAAA;EAAA,CAC9B,EAAG,CAACA,cAAc,CAAC,CAAA;EAEnBvrC,SAAA,CAAU,MAAM;IACdy7C,QAAA,CAASv7C,OAAU,GAAAiT,KAAA;EAAA,CACrB,EAAG,CAACA,KAAK,CAAC,CAAA;EAEV,MAAMuoC,YAAe,GAAA3tB,WAAA,CACnB,CAAC/uB,OAAA,EAAsB6/B,KAAc,EAAAoM,QAAA,EAAmB13B,QAAsB,KAAA;IACnEgmC,QAAA,CAACjqC,CAAO,oCAAIA,CAAA;MAAG,CAACuvB,KAAAA,GAAO;QAAC7/B,OAAA;QAASisC;;IAAQ,EAAG,CAAA;IAErD,IAAI13B,QAAU,EAAA;MACZ+nC,iBAAA,CAAkBt8C,OAAO,CAAA;IAC3B;IAEA,OAAO,MAAM;MACXu6C,QAAA,CAAUjqC,CAAM,IAAA;QACR,MAAAqsC,QAAA,qBAAersC,CAAC,CAAA;QAEtB,OAAOqsC,QAAS9c,CAAAA,KAAAA,CAAAA;QAET,OAAA8c,QAAA;MAAA,CACR,CAAA;IAAA,CACH;EACF,CAAA,EACA,EAAC,CACH;EAEA,MAAMC,WAAc,GAAA7tB,WAAA,CAAY,CAAC8Q,KAAAA,EAAcoM,QAAsB,KAAA;IACnEsO,QAAA,CAAUjqC,CAAM,IAAA;MACd,MAAMusC,YAAYvsC,CAAEuvB,CAAAA,KAAAA,CAAAA;MAEpB,IAAI,CAACgd,SAAA,EAAkB,OAAAvsC,CAAA;MAEhB,uCAAIA,CAAG;QAAA,CAACuvB,wCAAWgd,SAAW;UAAA5Q;QAAA;MAAS;IAAA,CAC/C,CAAA;EACH,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM+F,YAAiC,GAAAlyC,OAAA,CACrC,OAAO;IACL6d,OAAS,EAAA,CAAA;IACT4uB,cAAA,EAAgBA,cAAkB,IAAAqP,YAAA,CAAa,CAAM,CAAA,IAAA,IAAA;IACrDkB,KAAO,EAAA,CAAA;IACPjd,IAAA;IACA6c,YAAA;IACAE,WAAA;IACAN,iBAAA;IACA7/C,KAAA;IACA0X;EAAA,CACF,CAAA,EACA,CAACo4B,cAAgB,EAAAqP,YAAA,EAAc/b,MAAM6c,YAAc,EAAAE,WAAA,EAAangD,OAAO0X,KAAK,CAAA,CAC9E;EAEA,MAAMi1B,aAAgB,GAAAra,WAAA,CACnBzsB,KAA+C,IAAA;IAzFtD,IAAAoB,EAAA;IA0FQ,IAAI,CAAC64C,iBAAkB,CAAAr7C,OAAA,EAAS;IAE5B,IAAAoB,KAAA,CAAMrH,QAAQ,WAAa,EAAA;MAC7BqH,KAAA,CAAMwkC,cAAe,EAAA;MAErB,MAAMiW,MAAS,GAAAb,oBAAA,CACbO,QAAS,CAAAv7C,OAAA,EACT06C,YAAA,EACAW,iBAAkB,CAAAr7C,OAAA,CACpB;MAEA,IAAI67C,MAAQ,EAAA;QACVZ,iBAAA,CAAkBY,MAAM,CAAA;QACxBT,iBAAA,CAAkBS,MAAM,CAAA;MAC1B;MAEA;IACF;IAEI,IAAAz6C,KAAA,CAAMrH,QAAQ,SAAW,EAAA;MAC3BqH,KAAA,CAAMwkC,cAAe,EAAA;MAErB,MAAMkW,MAAS,GAAArB,oBAAA,CACbc,QAAS,CAAAv7C,OAAA,EACT06C,YAAA,EACAW,iBAAkB,CAAAr7C,OAAA,CACpB;MAEA,IAAI87C,MAAQ,EAAA;QACVb,iBAAA,CAAkBa,MAAM,CAAA;QACxBV,iBAAA,CAAkBU,MAAM,CAAA;MAC1B;MAEA;IACF;IAEI,IAAA16C,KAAA,CAAMrH,QAAQ,WAAa,EAAA;MAC7BqH,KAAA,CAAMwkC,cAAe,EAAA;MAErB,MAAM+U,OAAU,GAAAU,iBAAA,CAAkBr7C,OAAQ,CAAAu6B,YAAA,CAAa,eAAe,CAAA;MAEtE,IAAI,CAACogB,OAAA,EAAS;MAER,MAAAgB,SAAA,GAAYJ,SAASv7C,OAAQ,CAAA26C,OAAA,CAAA;MAEnC,IAAI,CAACgB,SAAA,EAAW;MAEhB,IAAIA,UAAU5Q,QAAU,EAAA;QACtBsO,QAAA,CAAUjqC,CAAM,IAAA;UACd,MAAMusC,aAAYvsC,CAAE,CAAAurC,OAAA,CAAA;UAEpB,IAAI,CAACgB,UAAAA,EAAkB,OAAAvsC,CAAA;UAEhB,uCAAIA,CAAA;YAAG,CAACurC,OAAA,mCAAcgB,UAAAA;cAAW5Q,QAAU,EAAA;YAAA;UAAM;QAAA,CACzD,CAAA;MAAA,CACI,MAAA;QACC,MAAAgR,QAAA,GAAWpB,OAAQ,CAAA5a,KAAA,CAAM,GAAG,CAAA;QAElCgc,QAAA,CAASlB,GAAI,EAAA;QAEP,MAAAmB,SAAA,GAAYD,QAAS,CAAAz5B,IAAA,CAAK,GAAG,CAAA;QAC7B,MAAA25B,WAAA,GAAcD,SAAa,IAAAT,QAAA,CAASv7C,OAAQ,CAAAg8C,SAAA,CAAA;QAElD,IAAIC,WAAa,EAAA;UACfA,WAAA,CAAYn9C,QAAQ47B,KAAM,EAAA;UAC1B0gB,iBAAA,CAAkBa,YAAYn9C,OAAO,CAAA;QACvC;MACF;MAEA;IACF;IAEI,IAAAsC,KAAA,CAAMrH,QAAQ,YAAc,EAAA;MAC9BqH,KAAA,CAAMwkC,cAAe,EAAA;MAErB,MAAMsW,UAAa,GAAAb,iBAAA,CAAkBr7C,OAAQ,CAAAu6B,YAAA,CAAa,eAAe,CAAA;MAEzE,IAAI,CAAC2hB,UAAA,EAAY;MAEjB,IAAI,EAAC,CAAA15C,EAAA,GAAA+4C,QAAA,CAASv7C,OAAQ,CAAAk8C,UAAA,CAAA,KAAjB,mBAA8BnR,QAAU,CAAA,EAAA;QAC3CsO,QAAA,CAAUjqC,CAAM,IAAA;UACd,MAAMusC,YAAYvsC,CAAE,CAAA8sC,UAAA,CAAA;UAEpB,IAAI,CAACP,SAAA,EAAkB,OAAAvsC,CAAA;UAEhB,uCAAIA,CAAA;YAAG,CAAC8sC,UAAA,mCAAiBP,SAAA;cAAW5Q,QAAU,EAAA;YAAA;UAAK;QAAA,CAC3D,CAAA;MACH;MAEA;IACF;EACF,CAAA,EACA,CAAC2P,YAAY,CAAA,CACf;EAEA56C,SAAA,CAAU,MAAM;IACd,IAAI,CAACi0B,YAAa,CAAA/zB,OAAA,EAAS;IAC3B,MAAMm8C,gBAAgBthD,KAAM,CAAAua,IAAA,CAC1B2e,YAAA,CAAa/zB,OAAQ,CAAAo8C,gBAAA,CAAiB,sBAAsB,CAAA,CAC9D;IAEAd,eAAA,CAAgBa,aAAa,CAAA;EAAA,CAC5B,EAAA,CAAClgC,QAAU,EAAA8X,YAAY,CAAC,CAAA;EAGzB,sBAAArX,GAAA,CAACw+B,YAAYv+B,QAAZ,EAAA;IAAqB/iB,KAAO,EAAAk3C,YAAA;IAC3B70B,QAAC,EAAA,eAAAS,GAAA,CAAA4mB,KAAA;MACCjX,EAAG,EAAA,IAAA;MACH,SAAQ,EAAA;IAAA,GACJ9B,SAAA;MACJtb,SAAW,EAAAi5B,aAAA;MACXxpB,GAAK,EAAAqV,YAAA;MACLqU,IAAK,EAAA,MAAA;MACL7sC,KAAA;MAEC0gB;IAAA;EACH,CACF,CAAA;AAAA,CAEH,CAAA,CACH;AAEAk/B,IAAA,CAAKlb,WAAc,GAAA,MAAA;AChNZ,SAASoc,iBAAgD,GAAA;EACvD,OAAA70B,GAAA;AAwBT;AAEO,SAAS80B,uBAAuBrhD,KAA+C,EAAA;EAC9E,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAChB,MAAM2sB,KAAQ,GAAA,SAAA;EACd,MAAM;IAACzrB,IAAM;IAAAgW,KAAA;IAAO0D;EAAU,CAAA,GAAI7a,MAAMK,MAAO,CAAAqW,KAAA;EAEzC,MAAA4D,IAAA,GAAOO,aAAaA,UAAW,CAAA+R,KAAA,CAAA,IAAU/R,WAAWxD,OAAU,GAAAF,KAAA,CAAMyV,UAAUzV,KAAM,CAAAE,OAAA;EAEnF,OAAAmV,GAAA,0rCAIC4J,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKvC,OAAO,CAAA,EAOlCqe,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKlC,OAAO,CAAA,EAKhCge,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKnC,OAAO,CAAA,EAIlCie,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKjC,QAAQ,CAAA,EAQrC+d,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKvC,OAAO,CAAA,EAOlCqe,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKlC,OAAO,CAAA,EAKhCge,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKnC,OAAO,CAAA,EAIlCie,eAAA,CAAgBj1B,IAAM,EAAAmZ,IAAA,CAAKjC,QAAQ,CAAA;AAK/C;AAMO,SAASkpC,iBACdthD,KAC4B,EAAA;EACtB,MAAA;IAACuhD,MAAQ;IAAAxhD;EAAS,CAAA,GAAAC,KAAA;EAClB,MAAA;IAACM;EAAK,CAAA,GAAIP,KAAM,CAAAK,MAAA;EAEf,OAAAmsB,GAAA,oKACWxtB,GAAA,CAAIuB,KAAM,CAAA,CAAA,CAAA,GAAKihD,MAAM,CAAA;AAMzC;ACnGO,SAASC,OAA4B,GAAA;EACpC,MAAAC,IAAA,GAAO1gC,WAAWk/B,WAAW,CAAA;EAEnC,IAAI,CAACwB,IAAM,EAAA;IACH,MAAA,IAAIvhD,MAAM,6BAA6B,CAAA;EAC/C;EAEO,OAAAuhD,IAAA;AACT;ACPO,MAAMC,SAAY,GAAA1d,IAAA,CAAK,SAAS0d,UAAAA,CACrC1hD,KAEoB,EAAA;EACpB,MAAM;MAACghB,QAAA;MAAU8uB,QAAW,GAAA;IAAuB,CAAA,GAAA9vC,KAAA;IAAbsvB,qCAAatvB,KAAA;EACnD,MAAMyhD,OAAOD,OAAQ,EAAA;EAErB,OACG,eAAA//B,GAAA,CAAA4mB,KAAA;IACCjX,EAAG,EAAA,IAAA;IACH,SAAQ,EAAA;EAAA,GACJ9B,SAAA;IACJ4X,QAAQ,CAAC4I,QAAA;IACThtC,WAAW2+C,IAAK,CAAAnhD,KAAA;IAChB6sC,IAAK,EAAA,OAAA;IACL7sC,OAAOmhD,IAAK,CAAAnhD,KAAA;IAEX0gB;EAAA,GACH;AAEJ,CAAC,CAAA;ACAD,MAAM4N,OAAOoV,IAAK,CAAAnV,MAAA,CAAO8yB,EAAG,CAAAP,iBAAA,EAAmBC,sBAAsB,CAAC,CAAA;AAEtE,MAAMO,WAAA,GAAc/yB,MAAO,CAAAmG,GAAG,CAAE,CAAA2U,KAAA,CAAM;EAAC7T,WAAa,EAAA;AAAA,CAAI,CAAA,CAAyBwrB,gBAAgB,CAAA;AAEjG,MAAMO,eAAA,GAAkBhzB,OAAOI,IAAI,CAAA,+HAAA;AAU5B,MAAM6yB,QAAW,GAAA9d,IAAA,CAAK,SAAS8d,SAAAA,CACpC9hD,KACoB,EAAA;EACd,MAAA;MACJghB,QAAA;MACA8uB,UAAUiS,YAAe,GAAA,KAAA;MACzBhgD,QAAA;MACAmxB,IAAA;MACA8D,IAAA;MACAhb,EAAI,EAAAgmC,MAAA;MACJ9qC,KAAA;MACAm0B,OAAA;MACAhqC,OAAU,GAAA,CAAA;MACV+W,QAAW,GAAA,KAAA;MACX9X,KAAQ,GAAA,CAAA;MACR2e,IAAA;MACAoQ;IAEE,CAAA,GAAArvB,KAAA;IADCsvB,SAAA,4BACDtvB,KAAA;EACE,MAAAiiD,OAAA,GAAUr9C,OAA6B,IAAI,CAAA;EAC3C,MAAAs9C,WAAA,GAAct9C,OAA8B,IAAI,CAAA;EACtD,MAAM68C,OAAOD,OAAQ,EAAA;EACrB,MAAM;IAAC9d,IAAA;IAAM6c,YAAc;IAAAE,WAAA;IAAaN;GAAqB,GAAAsB,IAAA;EAC7D,MAAMU,MAAM/vB,KAAM,EAAA;EAClB,MAAMpW,KAAKgmC,MAAU,IAAAG,GAAA;EACrB,MAAMrB,QAAW,GAAAn9C,OAAA,CAAQ,MAAM+/B,IAAA,CAAKr0B,MAAO,CAAA,CAAC2M,EAAM,IAAA,EAAE,CAAC,CAAA,EAAG,CAACA,EAAA,EAAI0nB,IAAI,CAAC,CAAA;EAC5D,MAAAgc,OAAA,GAAUoB,QAAS,CAAAz5B,IAAA,CAAK,GAAG,CAAA;EAC3B,MAAAq5B,SAAA,GAAYe,KAAKzpC,KAAM,CAAA0nC,OAAA,CAAA;EACvB,MAAApS,OAAA,GAAUmU,IAAK,CAAArR,cAAA,KAAmB6R,OAAQ,CAAAl9C,OAAA;EAChD,MAAM+qC,YAAW4Q,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA5Q,QAAA,MAAa,KAAY,CAAA,GAAAiS,YAAA,GAAA,CAAerB,uCAAW5Q,QAAY,KAAA,KAAA;EAC3F,MAAMzQ,WAAWoiB,IAAK,CAAArR,cAAA,IAAkBqR,KAAKrR,cAAmB,KAAA6R,OAAA,CAAQl9C,UAAU,CAAI,GAAA,CAAA,CAAA;EACtF,MAAM8wC,YAAe,GAAAlyC,OAAA,CACnB,sCAAW89C,IAAA;IAAMd,OAAOc,IAAK,CAAAd,KAAA,GAAQ,CAAG;IAAAjd,IAAA,EAAMod;EAAQ,EAAA,EACtD,CAACA,UAAUW,IAAI,CAAA,CACjB;EAEA,MAAM1U,WAAc,GAAAna,WAAA,CACjBzsB,KAA2C,IAAA;IACtC,IAAAklC,OAAA,EAASA,OAAA,CAAQllC,KAAK,CAAA;IAE1B,MAAMf,SAASe,KAAM,CAAAf,MAAA;IAGnB,IAAAA,MAAA,YAAkBy7B,WACjB,KAAAz7B,MAAA,CAAOk6B,YAAa,CAAA,SAAS,MAAM,eAClC,IAAAl6B,MAAA,CAAOg9C,OAAQ,CAAA,2BAA2B,CAC5C,CAAA,EAAA;MACAj8C,KAAA,CAAMykC,eAAgB,EAAA;MACV6V,WAAA,CAAAf,OAAA,EAAS,CAAC5P,QAAQ,CAAA;MAC9BqQ,iBAAA,CAAkB8B,QAAQl9C,OAAO,CAAA;IACnC;EACF,CAAA,EACA,CAAC+qC,QAAA,EAAU4P,OAAS,EAAArU,OAAA,EAASoV,aAAaN,iBAAiB,CAAA,CAC7D;EAEA,MAAMlT,aAAgB,GAAAra,WAAA,CACnBzsB,KAA4C,IAAA;IACvC,IAAAmnC,OAAA,IAAWnnC,KAAM,CAAArH,GAAA,KAAQ,OAAS,EAAA;MAC9B,MAAAkF,EAAA,GAAKk+C,WAAY,CAAAn9C,OAAA,IAAWk9C,OAAQ,CAAAl9C,OAAA;MAEtCf,EAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAq+C,KAAA,EAAA;IACN;EACF,CAAA,EACA,CAAC/U,OAAO,CAAA,CACV;EAEAzoC,SAAA,CAAU,MAAM;IACd,IAAI,CAACo9C,OAAQ,CAAAl9C,OAAA,EAAS;IAEf,OAAAw7C,YAAA,CAAa0B,QAAQl9C,OAAS,EAAA+7C,QAAA,CAASz5B,KAAK,GAAG,CAAA,EAAGyoB,UAAU13B,QAAQ,CAAA;KAC1E,CAAC03B,QAAA,EAAUgR,QAAU,EAAAP,YAAA,EAAcnoC,QAAQ,CAAC,CAAA;EAE/C,MAAM7W,yBACHuxB,IAAA,CAAA+C,IAAA,EAAA;IAAKx0B,OAAA;IACJ2f,QAAA,EAAA,CAAC,eAAA8R,IAAA,CAAAkC,GAAA,EAAA;MACCG,WAAa,EAAA70B,KAAA;MACbzB,KAAA,EAAO;QAACyjD,UAAY,EAAAtrB,IAAA,IAAQhW,WAAW,SAAY,GAAA,QAAA;QAAUuhC,eAAe;MAAM,CAAA;MAEjFvhC,QAAA,EAAA,CAAAgW,IAAA,IAAA,eACEvV,GAAA,CAAAwN,IAAA,EAAA;QAAK/X,KAAA;QAAclV,IAAM,EAAAD,QAAA;QAAUstB,MAAA;QACjCrO,wBAAcgW,IAAI;MAAA,CACrB,CAAA,EAED,CAACA,uBACCvV,GAAA,CAAAogC,eAAA,EAAA;QAAgB3qC,KAAA;QAAclV,IAAM,EAAAD,QAAA;QAAUstB,MAAA;QAC7CrO,QAAC,EAAA,eAAAS,GAAA,CAAA+gC,oBAAA,EAAA;UAAqB3jD,KAAO,EAAA;YAACgE,SAAW,EAAAitC,QAAA,GAAW,kBAAkB,KAAS;UAAA;QAAA,CAAG;MAAA,CACpF,CAAA;IAAA,CAEJ,CAAA,EACC,eAAAruB,GAAA,CAAAuT,GAAA,EAAA;MAAIjO,IAAM,EAAA,CAAA;MACT/F,QAAC,EAAA,eAAAS,GAAA,CAAAwN,IAAA,EAAA;QAAK/X,KAAA;QAAclV,IAAM,EAAAD,QAAA;QAAUqtB,YAAa,EAAA,UAAA;QAAWC,MAAA;QACzDrO,QAAA,EAAA/B;MAAA,CACH;IAAA,CACF,CAAA;EAAA,CACF,CAAA;EAGF,IAAIiU,IAAM,EAAA;IACR,OACG,eAAAJ,IAAA,CAAAlE,IAAA;MACC,eAAA,EAAexW,WAAW,EAAK,GAAA,KAAA,CAAA;MAC/B,cAAc,EAAA4D,EAAA;MACd,eAAe,EAAA0jC,OAAA;MACf,SAAQ,EAAA;IAAA,GACJpwB,SAAA;MACJ+b,OAAS,EAAA0B,WAAA;MACTtpB,GAAK,EAAAw+B,OAAA;MACL9U,IAAK,EAAA,MAAA;MAELnsB,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmgC,WAAA,EAAA;QACCL,QAAQE,IAAK,CAAAd,KAAA;QACb,eAAe,EAAA7Q,QAAA;QACf,SAAQ,EAAA,eAAA;QACR5c,IAAA;QACAzP,GAAK,EAAAy+B,WAAA;QACL/U,IAAK,EAAA,UAAA;QACL9N,QAAA;QAECre,QAAA,EAAAzf;MAAA,CACH,CAAA,EAAA,eAEAkgB,GAAA,CAACw+B,YAAYv+B,QAAZ,EAAA;QAAqB/iB,KAAO,EAAAk3C,YAAA;QAC1B70B,qCAAaS,GAAA,CAAAigC,SAAA,EAAA;UAAUxa,QAAQ,CAAC4I,QAAA;UAAW9uB;QAAA,CAAS;MAAA,CACvD,CAAA;IAAA,GACF;EAEJ;EAEA,OACG,eAAA8R,IAAA,CAAAlE,IAAA;IACC,eAAA,EAAexW,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/B,SAAQ,EAAA,UAAA;IACR,cAAc,EAAA4D,EAAA;IACd,eAAe,EAAA0jC;EAAA,GACXpwB,SAAA;IACJ,eAAe,EAAAwgB,QAAA;IACfzE,OAAS,EAAA0B,WAAA;IACT/4B,SAAW,EAAAi5B,aAAA;IACXxpB,GAAK,EAAAw+B,OAAA;IACL9U,IAAK,EAAA,UAAA;IACL9N,QAAA;IAEAre,QAAA,EAAA,CAAC,eAAAS,GAAA,CAAAmgC,WAAA,EAAA;MAAYL,QAAQE,IAAK,CAAAd,KAAA;MAAOvvB,EAAG,EAAA,KAAA;MAAM,SAAQ,EAAA,eAAA;MAC/CpQ,QAAA,EAAAzf;IAAA,CACH,CAAA,EAAA,eAEAkgB,GAAA,CAACw+B,YAAYv+B,QAAZ,EAAA;MAAqB/iB,KAAO,EAAAk3C,YAAA;MAC1B70B,qCAAaS,GAAA,CAAAigC,SAAA,EAAA;QAAU5R,QAAA;QAAqB9uB;MAAA,CAAS;IAAA,CACxD,CAAA;EAAA,GACF;AAEJ,CAAC,CAAA;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/constants.ts","../src/styles/helpers.ts","../src/styles/font/responsiveFont.ts","../src/styles/font/codeFontStyle.ts","../src/styles/font/headingFontStyle.ts","../src/styles/font/labelFontStyle.ts","../src/styles/font/textAlignStyle.ts","../src/styles/font/textFontStyle.ts","../src/hooks/useArrayProp.ts","../src/hooks/useClickOutside.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/observers/resizeObserver.ts","../src/observers/elementSizeObserver.ts","../src/hooks/useElementSize.ts","../src/hooks/useElementRect/useElementRect.ts","../src/hooks/useGlobalKeyDown.ts","../src/theme/lib/color-fns/blend/multiply.ts","../src/theme/lib/color-fns/blend/screen.ts","../src/theme/lib/color-fns/convert.ts","../src/theme/lib/color-fns/parse.ts","../src/theme/lib/color-fns/helpers/rgba.ts","../src/theme/lib/theme/color/button/createButtonTones.ts","../src/theme/lib/theme/color/button/createButtonModes.ts","../src/theme/lib/theme/color/card/createCardStates.ts","../src/theme/lib/theme/color/defaults.ts","../src/theme/lib/theme/color/input/createInputModes.ts","../src/theme/lib/theme/color/muted/createMuted.ts","../src/theme/lib/theme/color/selectable/createSelectableTones.ts","../src/theme/lib/theme/color/solid/createSolidTones.ts","../src/theme/lib/theme/color/spot/createSpot.ts","../src/theme/lib/theme/color/factory.ts","../src/theme/studioTheme/helpers.ts","../src/theme/studioTheme/color.ts","../src/theme/studioTheme/fonts.ts","../src/theme/studioTheme/theme.ts","../src/theme/defaults.ts","../src/lib/globalScope.ts","../src/theme/themeContext.ts","../src/theme/themeProvider.tsx","../src/lib/isRecord.ts","../src/theme/useRootTheme.ts","../src/theme/themeColorProvider.tsx","../src/theme/useTheme.ts","../src/hooks/useMediaIndex/lib/media.ts","../src/hooks/useMediaIndex/useMediaIndex.ts","../src/hooks/usePrefersDark.ts","../src/hooks/useIsomorphicEffect.ts","../src/hooks/useForwardedRef.ts","../src/hooks/useCustomValidity.ts","../src/styles/border/borderStyle.ts","../src/styles/box/boxStyle.ts","../src/styles/flex/flexStyle.ts","../src/styles/flex/flexItemStyle.ts","../src/styles/focusRing/index.ts","../src/styles/grid/gridStyle.ts","../src/styles/grid/gridItemStyle.ts","../src/styles/input/responsiveInputPaddingStyle.ts","../src/styles/input/textInputStyle.ts","../src/styles/margin/marginStyle.ts","../src/styles/padding/paddingStyle.ts","../src/styles/radius/radiusStyle.ts","../src/styles/shadow/shadowStyle.ts","../src/primitives/text/styles.ts","../src/primitives/text/text.tsx","../src/primitives/avatar/styles.ts","../src/primitives/avatar/avatar.tsx","../src/primitives/avatar/avatarCounter.tsx","../src/primitives/helpers.ts","../src/primitives/avatar/avatarStack.tsx","../src/primitives/box/box.tsx","../src/primitives/label/styles.ts","../src/primitives/label/label.tsx","../src/primitives/badge/styles.ts","../src/primitives/badge/badge.tsx","../src/primitives/flex/flex.tsx","../src/primitives/spinner/spinner.tsx","../src/styles/colorVars/colorVarsStyle.ts","../src/primitives/button/styles.ts","../src/primitives/button/button.tsx","../src/primitives/card/styles.ts","../src/primitives/card/card.tsx","../src/primitives/checkbox/styles.ts","../src/primitives/checkbox/checkbox.tsx","../src/primitives/code/styles.ts","../src/primitives/code/code.tsx","../src/primitives/container/styles.ts","../src/primitives/container/container.tsx","../src/primitives/grid/grid.tsx","../src/primitives/heading/styles.ts","../src/primitives/heading/heading.tsx","../src/primitives/inline/styles.ts","../src/primitives/inline/inline.tsx","../src/primitives/kbd/kbd.tsx","../src/utils/boundaryElement/boundaryElementContext.ts","../src/utils/boundaryElement/boundaryElementProvider.tsx","../src/utils/boundaryElement/useBoundaryElement.ts","../src/utils/elementQuery/helpers.ts","../src/utils/elementQuery/elementQuery.tsx","../src/utils/errorBoundary.tsx","../src/utils/layer/layerContext.ts","../src/utils/layer/useLayer.ts","../src/utils/layer/layerProvider.tsx","../src/utils/layer/layer.tsx","../src/utils/portal/portalContext.ts","../src/utils/portal/usePortal.ts","../src/utils/portal/portal.ts","../src/hooks/_internal/useUnique.ts","../src/utils/portal/portalProvider.tsx","../src/utils/srOnly/srOnly.tsx","../src/helpers/animation.ts","../src/helpers/element.ts","../src/helpers/focus.ts","../src/helpers/scroll.ts","../src/utils/virtualList/virtualList.tsx","../src/primitives/popover/constants.ts","../src/primitives/popover/floating-ui/size.ts","../src/primitives/popover/popoverArrow.tsx","../src/primitives/popover/popoverCard.tsx","../src/primitives/popover/popover.tsx","../src/primitives/radio/styles.ts","../src/primitives/radio/radio.tsx","../src/primitives/select/styles.ts","../src/primitives/select/select.tsx","../src/primitives/stack/styles.ts","../src/primitives/stack/stack.tsx","../src/primitives/switch/styles.ts","../src/primitives/switch/switch.tsx","../src/primitives/textArea/textArea.tsx","../src/primitives/textInput/textInput.tsx","../src/primitives/tooltip/tooltipArrow.tsx","../src/primitives/tooltip/tooltip.tsx","../src/components/autocomplete/autocomplete.styles.tsx","../src/components/autocomplete/autocompleteOption.tsx","../src/components/autocomplete/autocompleteReducer.ts","../src/components/autocomplete/constants.ts","../src/components/autocomplete/autocomplete.tsx","../src/components/breadcrumbs/breadcrumbs.styles.ts","../src/components/breadcrumbs/breadcrumbs.tsx","../src/components/dialog/styles.ts","../src/components/dialog/dialogContext.ts","../src/components/dialog/useDialog.ts","../src/components/dialog/dialog.tsx","../src/components/dialog/dialogProvider.tsx","../src/components/hotkeys/hotkeys.tsx","../src/components/menu/menuContext.ts","../src/components/menu/helpers.ts","../src/components/menu/useMenuController.ts","../src/components/menu/menu.tsx","../src/components/menu/menuButton.tsx","../src/components/menu/menuDivider.ts","../src/primitives/_selectable/style.ts","../src/primitives/_selectable/selectable.tsx","../src/components/menu/useMenu.ts","../src/components/menu/menuGroup.tsx","../src/components/menu/menuItem.tsx","../src/components/skeleton/styles.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/textSkeleton.tsx","../src/components/tab/tab.tsx","../src/components/tab/tabList.tsx","../src/components/tab/tabPanel.tsx","../src/components/toast/toast.tsx","../src/components/toast/toastContext.ts","../src/components/toast/toastProvider.tsx","../src/components/toast/useToast.ts","../src/components/tree/helpers.ts","../src/components/tree/treeContext.ts","../src/components/tree/tree.tsx","../src/components/tree/style.ts","../src/components/tree/useTree.ts","../src/components/tree/treeGroup.tsx","../src/components/tree/treeItem.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport const EMPTY_ARRAY: any[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, any> = {}\n\n/**\n * @internal\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {CSSObject} from 'styled-components'\nimport {EMPTY_ARRAY} from '../constants'\nimport {Theme} from '../theme'\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 return _responsive(theme.sanity.media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(theme.sanity.space[spaceIndex]))\n )\n}\n","import {CSSObject} from 'styled-components'\nimport {ThemeFontSize, ThemeFontKey} from '../../theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps\n): CSSObject[] {\n const {$size, $weight, theme} = props\n const {fonts, media} = theme.sanity\n const {family, sizes, weights} = fonts[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n position: 'relative',\n fontFamily: family,\n fontWeight,\n padding: '1px 0',\n margin: 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n fontSize: rem(fontSize),\n lineHeight: `calc(${lineHeight} / ${fontSize})`,\n letterSpacing: rem(letterSpacing),\n transform: `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from 'styled-components'\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 'styled-components'\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 'styled-components'\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} from 'styled-components'\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 {theme} = props\n\n return _responsive(theme.sanity.media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from 'styled-components'\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 {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[]\n): T[] {\n const __perf_hash__ = JSON.stringify(val ?? defaultVal)\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__]\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","import {RGB} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB, s: RGB): RGB {\n return {\n r: Math.round(clamp(multiplyChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(multiplyChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(multiplyChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {RGB} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB, s: RGB): RGB {\n return {\n r: Math.round(clamp(screenChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(screenChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(screenChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {HSL, RGB} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex({r, g, b}: RGB): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb} from './convert'\nimport {HSL, RGB} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from '../parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorButtonModeKey, ThemeColorButtonTones} from './types'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {createButtonTones} from './createButtonTones'\nimport {ThemeColorButton} from './types'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorCard} from './types'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorInput} from './types'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorMuted} from './types'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorSelectable, ThemeColorSelectableStates} from './types'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorSolid} from './types'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorSpot} from './types'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {ThemeColorGenericState} from './_generic'\nimport {ThemeColorBase} from './base'\nimport {ThemeColorButtonModeKey, ThemeColorButtonStates} from './button'\nimport {createButtonModes} from './button/createButtonModes'\nimport {ThemeColorCardState} from './card'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {ThemeColorInputState} from './input'\nimport {createInputModes} from './input/createInputModes'\nimport {ThemeColorMuted, ThemeColorMutedTone} from './muted'\nimport {createMutedTones} from './muted/createMuted'\nimport {ThemeColorSelectableState} from './selectable'\nimport {createSelectableTones} from './selectable/createSelectableTones'\nimport {ThemeColorSolid, ThemeColorSolidTone} from './solid'\nimport {createSolidTones} from './solid/createSolidTones'\nimport {ThemeColorSpotKey} from './spot'\nimport {createSpot} from './spot/createSpot'\nimport {ThemeColorSyntax} from './syntax'\nimport {\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n} from './types'\n\n/**\n * @public\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorCardState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorSelectableState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {}\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","import {parseColor, rgbToHex, screen as _screen, multiply as _multiply} from '../lib/color-fns'\n\nexport function multiply(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_multiply(b, s))\n\n return hex\n}\n\nexport function screen(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_screen(b, s))\n\n return hex\n}\n","import {black, ColorTints, hues, white} from '@sanity/color'\nimport {rgba} from '../lib/color-fns'\nimport {createColorTheme} from '../lib/theme'\nimport {multiply, screen} from './helpers'\n\nconst tones: {[key: string]: ColorTints} = {\n default: hues.gray,\n transparent: hues.gray,\n primary: hues.blue,\n positive: hues.green,\n caution: hues.yellow,\n critical: hues.red,\n}\n\nconst NEUTRAL_TONES = ['default', 'transparent']\n\nexport const color = createColorTheme({\n base: ({dark, name}) => {\n if (name === 'default') {\n const tints = hues.gray\n const skeletonFrom = dark ? tints[900].hex : tints[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: dark ? black.hex : white.hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: hues.blue[dark ? 500 : 500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[950].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[950].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[950].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (name === 'transparent') {\n const tints = tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 300].hex,\n focusRing: hues.blue[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const tints = tones[name] || tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: tints[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n solid: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const mix2 = dark ? multiply : screen\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = mix(base.bg, tints[dark ? 800 : 200].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n accent: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n link: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n code: {\n bg,\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = mix(base.bg, tints[dark ? 300 : 600].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 300 : 600].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg: mix(base.bg, tints[dark ? 200 : 800].hex),\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n // state: \"enabled\" | unknown\n const bg = mix(base.bg, tints[dark ? 400 : 500].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 400 : 500].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 900 : 100].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n muted: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(bg, tints[dark ? 800 : 200].hex),\n muted: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n code: {\n bg,\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: rgba(skeletonFrom, 0.5),\n to: rgba(skeletonFrom, 0.25),\n },\n }\n }\n\n if (state === 'hovered') {\n // if (isNeutral) {\n // tints = tones.primary\n // }\n\n const bg = mix(base.bg, tints[dark ? 950 : 50].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 300 : 700].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n enabled: {\n ...muted.enabled,\n border: muted.enabled.bg,\n },\n hovered: {\n ...muted.hovered,\n border: muted.hovered.bg,\n },\n pressed: {\n ...muted.pressed,\n border: muted.pressed.bg,\n },\n selected: {\n ...muted.selected,\n border: muted.selected.bg,\n },\n disabled: {\n ...muted.disabled,\n border: muted.disabled.bg,\n },\n }\n }\n\n if (mode === 'ghost') {\n return {\n ...solid,\n enabled: {\n ...muted.enabled,\n border: base.border,\n },\n disabled: muted.disabled,\n }\n }\n\n return solid\n },\n\n card: ({base, dark, muted, name, solid, state}) => {\n if (state === 'hovered') {\n return muted[name].hovered\n }\n\n if (state === 'disabled') {\n return muted[name].disabled\n }\n\n const isNeutral = NEUTRAL_TONES.includes(name)\n const tints = tones[name] || tones.default\n const mix = dark ? screen : multiply\n\n if (state === 'pressed') {\n if (isNeutral) {\n return muted.primary.pressed\n }\n\n return muted[name].pressed\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n return solid.primary.enabled\n }\n\n return solid[name].enabled\n }\n\n const bg = base.bg\n const skeletonFrom = mix(base.bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n fg: base.fg,\n border: base.border,\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: tints[dark ? 400 : 600].hex,\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n input: ({base, dark, mode, state}) => {\n const mix = dark ? screen : multiply\n\n if (mode === 'invalid') {\n const tints = tones.critical\n\n return {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, tints[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'hovered') {\n return {\n bg: base.bg,\n fg: base.fg,\n border: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'disabled') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n fg: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n border: mix(base.bg, hues.gray[dark ? 900 : 100].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n }\n }\n\n if (state === 'readOnly') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n fg: mix(base.bg, hues.gray[dark ? 200 : 800].hex),\n border: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n return {\n bg: base.bg,\n fg: base.fg,\n border: base.border,\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n },\n\n selectable: ({base, muted, tone, solid, state}) => {\n if (state === 'enabled') {\n return {\n ...muted[tone].enabled,\n bg: base.bg,\n }\n }\n\n if (state === 'pressed') {\n if (tone === 'default') {\n return muted.primary.pressed\n }\n\n return muted[tone].pressed\n }\n\n if (state === 'selected') {\n if (tone === 'default') {\n return solid.primary.enabled\n }\n\n return solid[tone].enabled\n }\n\n if (state === 'disabled') {\n return {\n ...muted[tone].disabled,\n bg: base.bg,\n }\n }\n\n return muted[tone][state]\n },\n\n spot: ({base, dark, key}) => {\n const mix = dark ? screen : multiply\n\n return mix(base.bg, hues[key][dark ? 400 : 500].hex)\n },\n\n syntax: ({base, dark}) => {\n const mix = dark ? screen : multiply\n const mainShade = dark ? 400 : 600\n const secondaryShade = dark ? 600 : 400\n\n return {\n atrule: mix(base.bg, hues.purple[mainShade].hex),\n attrName: mix(base.bg, hues.green[mainShade].hex),\n attrValue: mix(base.bg, hues.yellow[mainShade].hex),\n attribute: mix(base.bg, hues.yellow[mainShade].hex),\n boolean: mix(base.bg, hues.purple[mainShade].hex),\n builtin: mix(base.bg, hues.purple[mainShade].hex),\n cdata: mix(base.bg, hues.yellow[mainShade].hex),\n char: mix(base.bg, hues.yellow[mainShade].hex),\n class: mix(base.bg, hues.orange[mainShade].hex),\n className: mix(base.bg, hues.cyan[mainShade].hex),\n comment: mix(base.bg, hues.gray[secondaryShade].hex),\n constant: mix(base.bg, hues.purple[mainShade].hex),\n deleted: mix(base.bg, hues.red[mainShade].hex),\n doctype: mix(base.bg, hues.gray[secondaryShade].hex),\n entity: mix(base.bg, hues.red[mainShade].hex),\n function: mix(base.bg, hues.green[mainShade].hex),\n hexcode: mix(base.bg, hues.blue[mainShade].hex),\n id: mix(base.bg, hues.purple[mainShade].hex),\n important: mix(base.bg, hues.purple[mainShade].hex),\n inserted: mix(base.bg, hues.yellow[mainShade].hex),\n keyword: mix(base.bg, hues.magenta[mainShade].hex),\n number: mix(base.bg, hues.purple[mainShade].hex),\n operator: mix(base.bg, hues.magenta[mainShade].hex),\n prolog: mix(base.bg, hues.gray[secondaryShade].hex),\n property: mix(base.bg, hues.blue[mainShade].hex),\n pseudoClass: mix(base.bg, hues.yellow[mainShade].hex),\n pseudoElement: mix(base.bg, hues.yellow[mainShade].hex),\n punctuation: mix(base.bg, hues.gray[mainShade].hex),\n regex: mix(base.bg, hues.blue[mainShade].hex),\n selector: mix(base.bg, hues.red[mainShade].hex),\n string: mix(base.bg, hues.yellow[mainShade].hex),\n symbol: mix(base.bg, hues.purple[mainShade].hex),\n tag: mix(base.bg, hues.red[mainShade].hex),\n unit: mix(base.bg, hues.orange[mainShade].hex),\n url: mix(base.bg, hues.red[mainShade].hex),\n variable: mix(base.bg, hues.red[mainShade].hex),\n }\n },\n})\n","import {ThemeFonts} from '../lib/theme'\n\nexport const fonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 12,\n iconSize: 17,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 33,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 39,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9,\n descenderHeight: 9,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 45,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.8,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 11.25,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.75,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 14,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15.5,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {RootTheme} from '../types'\nimport {color} from './color'\nimport {fonts} from './fonts'\n\n/**\n * @public\n */\nexport const studioTheme: RootTheme = {\n avatar: {\n sizes: [\n {distance: -3, size: 25},\n {distance: -6, size: 35},\n {distance: -9, size: 55},\n ],\n },\n button: {\n textWeight: 'medium',\n },\n color,\n container: [320, 640, 960, 1280, 1600, 1920],\n focusRing: {\n offset: 1,\n width: 2,\n },\n fonts,\n media: [360, 600, 900, 1200, 1800, 2400],\n radius: [0, 1, 3, 6, 9, 12, 21],\n shadows: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -1], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 0]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n checkbox: {\n size: 17,\n },\n radio: {\n size: 17,\n markSize: 9,\n },\n switch: {\n width: 33,\n height: 17,\n padding: 4,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n },\n border: {\n width: 1,\n },\n },\n // styles: {\n // button: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // },\n}\n","import {ThemeLayer} from './lib/theme/layer'\n\nexport const DEFAULT_THEME_LAYER: ThemeLayer = {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\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","import {createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: React.Context<ThemeContextValue | null> = globalScope[key]\n","import {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {DEFAULT_THEME_LAYER} from './defaults'\nimport {ThemeColorSchemeKey, ThemeColorName} from './lib/theme'\nimport {ThemeContext} from './themeContext'\nimport {RootTheme, Theme, ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorName\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: themeProp = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\n\n const theme: Theme | null = useMemo(() => {\n if (!themeProp) return null\n\n const {color: rootColor, layer: rootLayer, ...restTheme} = themeProp\n const colorScheme = rootColor[scheme] || rootColor.light\n const color = colorScheme[tone] || colorScheme.default\n const layer = rootLayer || DEFAULT_THEME_LAYER\n\n return {sanity: {...restTheme, color, layer}}\n }, [scheme, themeProp, tone])\n\n const value: ThemeContextValue | null = useMemo(\n () =>\n themeProp && {\n version: 0.0,\n theme: themeProp,\n scheme,\n tone,\n },\n [themeProp, scheme, tone]\n )\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={value}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object')\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../lib/isRecord'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value: unknown = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): 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('useRootTheme(): the context value is not compatible')\n }\n\n return value as any as ThemeContextValue\n}\n","import {ThemeColorName, ThemeColorSchemeKey} from './lib/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorName\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\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","import {useTheme as useStyledTheme} from 'styled-components'\n\nimport {Theme} from './types'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n","/**\n * @internal\n */\nexport interface _MediaManager {\n getCurrentIndex: () => number\n subscribe: (subscriber: (index: number) => void) => () => void\n}\n\nconst MEDIA_MANAGER_CACHE = new WeakMap<number[], _MediaManager>()\n\nfunction _getMediaQuery(media: number[], index: number) {\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 _createMediaManager(media: number[]): _MediaManager {\n const mediaLen = media.length\n const sizes: {mq: MediaQueryList; index: number}[] = []\n\n if (typeof window !== 'undefined') {\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 const getCurrentIndex = () => {\n for (const {index, mq} of sizes) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (subscriber: (index: number) => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {index, mq} of sizes) {\n const handleChange = () => {\n if (mq.matches) subscriber(index)\n }\n\n if (mq.addEventListener) {\n mq.addEventListener('change', handleChange)\n } else {\n mq.addListener(handleChange)\n }\n\n disposeFns.push(() => {\n if (mq.removeEventListener) {\n mq.removeEventListener('change', handleChange)\n } else {\n mq.removeListener(handleChange)\n }\n })\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getCurrentIndex, subscribe}\n}\n\n/**\n * @internal\n */\nexport function _getMediaManager(media: number[]): _MediaManager {\n let manager = MEDIA_MANAGER_CACHE.get(media)\n\n if (!manager) {\n manager = _createMediaManager(media)\n MEDIA_MANAGER_CACHE.set(media, manager)\n }\n\n return manager\n}\n","import {useEffect, useMemo, useState} from 'react'\nimport {useTheme} from '../../theme'\nimport {_getMediaManager} from './lib/media'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const theme = useTheme()\n const {media} = theme.sanity\n const manager = useMemo(() => _getMediaManager(media), [media])\n const [index, setIndex] = useState(manager.getCurrentIndex)\n\n useEffect(() => manager.subscribe(setIndex), [manager])\n\n return index\n}\n","import {useEffect, useMemo, useState} from 'react'\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n const mq = useMemo(() => {\n if (typeof window === 'undefined') return undefined\n\n return window.matchMedia('(prefers-color-scheme: dark)')\n }, [])\n\n const [dark, setDark] = useState(mq?.matches || false)\n\n useEffect(() => {\n if (!mq) return undefined\n\n setDark(mq.matches)\n\n const handleChange = () => setDark(mq.matches)\n\n mq.addEventListener('change', handleChange)\n\n return () => mq.removeEventListener('change', handleChange)\n }, [mq])\n\n return dark\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\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 if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject} from 'styled-components'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nconst BORDER_VALUE = '1px solid var(--card-border-color)'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: BORDER_VALUE}} : {'&&': {border: 0}}\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: BORDER_VALUE}} : {'&&': {borderTop: 0}}\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: BORDER_VALUE}} : {'&&': {borderRight: 0}}\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: BORDER_VALUE}} : {'&&': {borderBottom: 0}}\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: BORDER_VALUE}} : {'&&': {borderLeft: 0}}\n )\n}\n","import {Property} from 'csstype'\nimport {CSSObject} from 'styled-components'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject} from 'styled-components'\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 {theme} = props\n const {media} = theme.sanity\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","export 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: {offset: number; width: number}\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} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject} from 'styled-components'\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space, theme} = props\n const {fonts, media, space: spaceScale} = theme.sanity\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 = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = spaceScale[_padding[i]]\n const s = spaceScale[_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 {css, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeColorSchemeKey, ThemeFontWeightKey} from '../../theme'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): FlattenSimpleInterpolation {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {theme, $scheme, $tone, $weight} = props\n const font = theme.sanity.fonts.text\n const color = theme.sanity.color.input\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.family};\n font-weight: ${($weight && font.weights[$weight]) || font.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.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.default.disabled.fg};\n --input-placeholder-color: ${color.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.invalid.enabled.fg};\n --input-placeholder-color: ${color.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.default.readOnly.fg};\n --input-placeholder-color: ${color.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {fonts, media} = theme.sanity\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = fonts.text.sizes[sizeIndex] || fonts.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): FlattenSimpleInterpolation {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\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.default.enabled.bg};\n --card-fg-color: ${color.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.invalid.enabled.bg};\n --card-fg-color: ${color.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.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: ${focusRingStyle({\n border: {color: color.default.enabled.border, width: input.border.width},\n focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${focusRingStyle({focusRing})};\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ${color.default.disabled.bg} !important;\n --card-fg-color: ${color.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ${color.default.readOnly.bg} !important;\n --card-fg-color: ${color.default.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.default.hovered.bg};\n --card-fg-color: ${color.default.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.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from 'styled-components'\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 'styled-components'\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} from 'styled-components'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {media, radius} = theme.sanity\n\n return _responsive(media, props.$radius, (radiusIndex) => ({\n borderRadius: rem(radius[radiusIndex]),\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {BoxShadow, ThemeShadow} from '../../theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: BoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(1)} 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 {theme} = props\n const {media, shadows} = theme.sanity\n\n return _responsive(media, props.$shadow, (shadow) => shadowStyle(shadows[shadow]))\n}\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps\n): FlattenSimpleInterpolation {\n const {$accent, $muted, theme} = props\n const {weights} = theme.sanity.fonts.text\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: ${theme.sanity.fonts.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: 0 0 0 1px var(--card-bg-color), 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: ${weights.bold};\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n}\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, theme} = props\n const {focusRing} = theme.sanity\n\n return {\n backgroundColor: $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 '-webkit-font-smoothing': '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}),\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 {theme} = props\n const {avatar, media} = theme.sanity\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 avatarInitialsStyle(props: ThemeProps): CSSObject {\n const {theme} = props\n const {base} = theme.sanity.color\n\n return {\n width: '100%',\n height: '100%',\n color: base.fg,\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: '3px',\n\n '[data-status=\"editing\"] &': {\n strokeSasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeColorSpotKey, useTheme} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Text} from '../text'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorSpotKey\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 Root = styled.div<{$color: string; $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\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 as: asProp,\n color: colorKey = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 0,\n ...restProps\n } = props\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n const theme = useTheme()\n const color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray\n\n // @todo: remove this\n const avatarSize = theme.sanity.avatar.sizes[size[0]] || theme.sanity.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(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $size={size}\n $color={color}\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 <svg viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n stroke={color}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <Text as=\"span\" size={initialsSize}>\n <strong>{initials}</strong>\n </Text>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Text} from '../text'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {theme} = props\n const {avatar, media} = theme.sanity\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 {theme} = props\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: 0 0 0 1px var(--card-bg-color), inset 0 0 0 1.5px var(--card-hairline-hard-color);\n padding: 0 ${rem(theme.sanity.space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = 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 = 0} = props\n const size = useArrayProp(sizeProp)\n const counterSize = useMemo(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Text as=\"span\" size={counterSize}>\n <strong>{count}</strong>\n </Text>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string'\n ) as Array<React.ReactElement | string>\n}\n","import {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\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 {theme} = props\n const {avatar, media} = theme.sanity\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 Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\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 = 0,\n ...restProps\n } = props\n const children = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string'\n ) as React.ReactElement[]\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 <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} />\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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = 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 * @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 <Root\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 </Root>\n )\n})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps\n): FlattenSimpleInterpolation {\n const {$accent, $muted, theme} = props\n const {fonts} = theme.sanity\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: ${fonts.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps & ThemeProps): CSSObject {\n const {$mode, $tone, theme} = props\n const palette = theme.sanity.color[$mode === 'outline' ? 'muted' : 'solid']\n const color = palette[$tone] || palette.default\n\n return {\n backgroundColor: color.enabled.bg,\n color: color.enabled.fg,\n boxShadow: `inset 0 0 0 1px ${color.enabled.border}`,\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Label} from '../label'\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 JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle\n)\n\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,\n mode = 'default',\n padding = 1,\n radius = 2,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $mode={mode}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Label size={fontSize}>{children}</Label>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle\n)\n\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 <Root\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})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\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 <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {ThemeColorBase, ThemeColorGenericState} from '../../theme'\n\n/**\n * @internal\n */\nexport function _colorVarsStyle(\n base: ThemeColorBase,\n color: ThemeColorGenericState,\n checkered = false\n): CSSObject {\n return {\n // Base\n // @todo: rename to \"--base-\"?\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 '--card-focus-ring-color': base.focusRing,\n\n // Card\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.bg2 || color.bg} 0% 50%)`\n : undefined,\n '--card-fg-color': color.fg,\n '--card-border-color': color.border,\n '--card-muted-fg-color': color.muted?.fg,\n '--card-accent-fg-color': color.accent?.fg,\n '--card-link-fg-color': color.link?.fg,\n '--card-code-bg-color': color.code?.bg,\n '--card-code-fg-color': color.code?.fg,\n '--card-skeleton-color-from': color.skeleton?.from,\n '--card-skeleton-color-to': color.skeleton?.to,\n\n // @todo: deprecate\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 {css, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(): FlattenSimpleInterpolation {\n return css`\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\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\nconst buttonTheme = {border: {width: 1}}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps\n): CSSObject[] {\n const {$mode, theme} = props\n const {focusRing} = theme.sanity\n const base = theme.sanity.color.base\n const mode = theme.sanity.color.button[$mode] || theme.sanity.color.button.default\n const color = mode[props.$tone] || mode.default\n const border = {width: buttonTheme.border.width, color: 'var(--card-border-color)'}\n\n return [\n _colorVarsStyle(base, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _colorVarsStyle(base, color.disabled),\n \"&:not([data-disabled='true'])\": {\n '&:focus': {\n boxShadow: focusRingStyle({base, border, focusRing}),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: focusRingBorderStyle(border),\n },\n '@media (hover: hover)': {\n '&:hover': _colorVarsStyle(base, color.hovered),\n '&:active': _colorVarsStyle(base, color.pressed),\n },\n '&[data-selected]': _colorVarsStyle(base, color.pressed),\n },\n },\n theme.sanity.styles?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, 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 JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone} & ResponsiveRadiusStyleProps & 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'>,\n ref: React.ForwardedRef<HTMLButtonElement>\n) {\n const {\n children,\n disabled,\n fontSize,\n icon,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n ...restProps\n } = props\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 theme = useTheme()\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 <Root\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 >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box\n flex={iconRight ? 1 : undefined}\n marginLeft={icon ? space : undefined}\n marginRight={iconRight ? space : undefined}\n >\n <Text\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={theme.sanity.button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps\n): Array<FlattenSimpleInterpolation | (() => FlattenSimpleInterpolation)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): FlattenSimpleInterpolation {\n const {$checkered, theme} = props\n const space = theme.sanity.space\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: 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): FlattenSimpleInterpolation {\n const {$checkered, $focusRing, theme} = props\n const {focusRing} = theme.sanity\n const {base, card, dark} = theme.sanity.color\n const border = {width: 0, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${dark ? 'dark' : 'light'};\n\n ${_colorVarsStyle(base, card.enabled, $checkered)}\n\n background-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 ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : 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 ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : undefined};\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, ThemeColorSchemeKey, 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 pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\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 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 return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\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 $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})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const color = theme.sanity.color.input\n const {focusRing, input, radius} = theme.sanity\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.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.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: 2 !important;\n }\n }\n }\n\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.default.enabled.border},\n focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n\n &[data-read-only] + span {\n background-color: ${color.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.readOnly.border,\n })};\n color: ${color.default.readOnly.fg};\n }\n\n &:not([data-read-only]):disabled + span {\n background-color: ${color.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.disabled.border,\n })};\n color: ${color.default.disabled.fg};\n }\n\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, 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 Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : 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 </Root>\n )\n})\n","import {css, FlattenInterpolation, ThemeProps as StyledThemeProps} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {Theme} from '../../theme'\n\nfunction codeSyntaxHighlightingStyle({theme}: ThemeProps) {\n const color = theme.sanity.color.syntax\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(): FlattenInterpolation<StyledThemeProps<Theme>> {\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 & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {container, media} = theme.sanity\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle\n)\n\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 <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\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 <Root\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 </Root>\n )\n})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(\n props: HeadingStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {$accent, $muted, theme} = props\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: ${theme.sanity.fonts.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: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\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 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 Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`\n\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n\n return _responsive(theme.sanity.media, props.$space, (spaceIndex) => {\n const space = rem(theme.sanity.space[spaceIndex])\n\n return {\n margin: `-${space} 0 0 -${space}`,\n '& > div': {padding: `${space} 0 0 ${space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\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 () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp]\n )\n\n return (\n <Root data-ui=\"Inline\" {...restProps} $space={useArrayProp(space)} forwardedAs={as} ref={ref}>\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Box} from '../box'\nimport {Code} from '../code'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: number | number[]\n}\n\nfunction kbdStyle() {\n return css`\n background: var(--card-bg-color);\n font: inherit;\n box-shadow: inset 0 0 0 1px var(--card-hairline-hard-color);\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst Root = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\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 = 1, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Code as=\"span\" muted size={fontSize}>\n {children}\n </Code>\n </Box>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","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, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} from '../../hooks'\nimport {useTheme} 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 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 ref: React.ForwardedRef<HTMLDivElement>\n) {\n const theme = useTheme()\n const {children, media = theme.sanity.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\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(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef]\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: React.Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\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 // 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('useLayer(): the context value is not compatible')\n }\n\n return value\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\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.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n const parent = useContext(LayerContext)\n const zOffset = useArrayProp(zOffsetProp)\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n const [size, setSize] = useState(0)\n\n const registerChild = useCallback(() => {\n setSize((v) => v + 1)\n\n return () => setSize((v) => v - 1)\n }, [])\n\n const parentRegisterChild = parent?.registerChild\n\n useEffect(() => {\n if (!parentRegisterChild) return\n\n return parentRegisterChild()\n }, [parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({version: 0.0, isTopLayer: size === 0, registerChild, size, zIndex}),\n [size, registerChild, zIndex]\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {children, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex} = useLayer()\n\n return (\n <Root {...restProps} data-ui=\"Layer\" ref={ref} style={{...style, zIndex}}>\n {children}\n </Root>\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})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/element')\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof window === '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\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\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\nconst __BROWSER__ = typeof window !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\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 <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme} 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 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 Root = 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 ref: React.ForwardedRef<HTMLDivElement>\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme().sanity\n const forwardedRef = useForwardedRef(ref)\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 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(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\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 }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 27\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 11\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {DEFAULT_POPOVER_ARROW_HEIGHT, DEFAULT_POPOVER_ARROW_WIDTH} from './constants'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n height: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n }\n\n [data-placement^='right'] > & {\n left: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst BorderPath = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\nexport const PopoverArrow = forwardRef(function PopoverArrow(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n return (\n <Root data-ui=\"Popover__arrow\" {...props} ref={ref}>\n <svg\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n viewBox=\"0 0 27 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <BorderPath d=\"M1.18708 1C3.29803 1.0011 5.29585 1.95479 6.62414 3.59561L11.1683 9.20895C12.369 10.6922 14.631 10.6922 15.8317 9.20894L20.3759 3.59561C21.7042 1.95478 23.702 1.0011 25.8129 1H21.9436C21.0533 1.49255 20.2545 2.15618 19.5986 2.96641L15.0545 8.57975C14.254 9.56855 12.746 9.56855 11.9455 8.57975L7.40139 2.96642C6.74548 2.15618 5.94673 1.49255 5.05643 1H1.18708Z\" />\n <ShapePath d=\"M1.18342 0C3.59749 0 5.88246 1.0901 7.40138 2.96642L11.9455 8.57975C12.746 9.56855 14.254 9.56855 15.0545 8.57975L19.5986 2.96641C21.1175 1.0901 23.4025 0 25.8166 0H27H0H1.18342Z\" />\n </svg>\n </Root>\n )\n})\n","import {Strategy} from '@floating-ui/react-dom'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled, {CSSObject} from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {ThemeProps} from '../../styles'\nimport {ThemeColorSchemeKey} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {useLayer} from '../../utils'\nimport {Card} from '../card'\nimport {Container} from '../container'\nimport {\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {PopoverArrow} from './popoverArrow'\n\nfunction popoverCardStyle(props: {$boundaryWidth?: number} & ThemeProps): CSSObject {\n const {$boundaryWidth} = props\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n flexDirection: 'column',\n\n width: 'max-content',\n minWidth: 'min-content',\n maxWidth:\n typeof $boundaryWidth === 'number'\n ? `${$boundaryWidth - DEFAULT_POPOVER_PADDING * 2}px`\n : undefined,\n }\n}\n\nconst Root = memo(styled(Card)(popoverCardStyle))\n\nconst PopoverContainer = memo(styled(Container)`\n max-height: inherit;\n max-width: inherit;\n`)\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n boundaryWidth?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width?: number | 'auto' | (number | 'auto')[]\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 arrow,\n arrowRef,\n arrowX,\n arrowY,\n boundaryWidth,\n children,\n padding,\n placement,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width = 'auto',\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 position: strategy,\n top: y,\n left: x,\n zIndex,\n ...style,\n }),\n [strategy, style, x, y, zIndex]\n )\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = 0 - DEFAULT_POPOVER_ARROW_WIDTH\n\n return style\n }, [arrowX, arrowY, staticSide])\n\n return (\n <Root\n {...restProps}\n $boundaryWidth={boundaryWidth}\n data-placement={placement}\n data-ui=\"Popover\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n >\n <PopoverContainer\n data-ui=\"Popover__wrapper\"\n flex={1}\n overflow={overflow}\n padding={padding}\n sizing=\"border\"\n width={width}\n >\n {children}\n </PopoverContainer>\n\n {arrow && <PopoverArrow ref={arrowRef} style={arrowStyle} />}\n </Root>\n )\n })\n)\n\nPopoverCard.displayName = 'PopoverCard'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n UseFloatingProps,\n} from '@floating-ui/react-dom'\nimport {cloneElement, forwardRef, memo, useCallback, useEffect, useMemo, useRef} from 'react'\nimport {useForwardedRef, useArrayProp, useElementSize} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps, ResponsiveWidthProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {PopoverCard} from './popoverCard'\n\n/**\n * @public\n */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps,\n ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_margins?: PopoverMargins\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n portal?: boolean | string\n preventOverflow?: boolean\n referenceElement?: HTMLElement | null\n matchReferenceWidth?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\n/** @public */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>\n ): React.ReactElement {\n const theme = useTheme()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n arrow: arrowProp = true,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements,\n matchReferenceWidth: matchReferenceWidthProp,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = theme.sanity.layer?.popover.zOffset,\n ...restProps\n } = props\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n })\n )\n }\n\n // Define distance between reference and floating element\n ret.push(\n offset({\n mainAxis: arrowProp ? DEFAULT_POPOVER_DISTANCE : 0,\n })\n )\n\n // Track sizes\n if (constrainSize || matchReferenceWidthProp) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n if (matchReferenceWidthProp) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${availableWidth}px`\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement,\n constrainSize,\n margins,\n matchReferenceWidth: matchReferenceWidthProp,\n padding: DEFAULT_POPOVER_PADDING,\n })\n )\n }\n\n // Shift the popover so its sits within the boundary eleement\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: boundaryElement || 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 ret.push(\n hide({\n boundary: boundaryElement || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n })\n )\n\n return ret\n }, [\n arrowProp,\n boundaryElement,\n constrainSize,\n fallbackPlacements,\n margins,\n matchReferenceWidthProp,\n preventOverflow,\n ])\n\n const floatingProps: UseFloatingProps = useMemo(\n () => ({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n }),\n [middleware, placementProp]\n )\n\n const {\n x,\n y,\n placement,\n reference: referenceRef,\n floating: floatingRef,\n middlewareData,\n strategy,\n } = useFloating(floatingProps)\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n floatingRef(node)\n },\n [floatingRef, forwardedRef]\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n referenceRef(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, referenceRef]\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n referenceRef(referenceElement || null)\n }, [referenceRef, referenceElement])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n boundaryWidth={preventOverflow ? boundarySize?.width : undefined}\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 strategy={strategy}\n tone={tone}\n x={x}\n y={y}\n width={width}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n return (\n <>\n {/* the popover */}\n {open && (\n <>\n {portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {popover}\n </Portal>\n ) : (\n popover\n )}\n </>\n )}\n\n {/* the referred element */}\n {child}\n </>\n )\n })\n)\n\nPopover.displayName = 'Popover'\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\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.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.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.default.enabled.border},\n focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.default.readOnly.border};\n background: ${color.default.readOnly.bg};\n\n &::after {\n background: ${color.default.readOnly.fg};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.default.disabled.border};\n background: ${color.default.disabled.bg};\n\n &::after {\n background: ${color.default.disabled.fg};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {css, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\nimport {ThemeFontSize} from '../../theme'\n\nfunction rootStyle(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const font = theme.sanity.fonts.text\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.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 {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\n\n return css`\n /* enabled */\n background-color: ${color.default.enabled.bg};\n color: ${color.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.default.hovered.bg};\n color: ${color.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.default.enabled.border},\n focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.default.readOnly.bg};\n color: ${color.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.default.disabled.bg};\n color: ${color.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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 {theme, $fontSize} = props\n const {sizes} = theme.sanity.fonts.text\n\n return _responsive(theme.sanity.media, $fontSize, (sizeIndex) =>\n textSize(sizes[sizeIndex] || 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) => FlattenSimpleInterpolation)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const color = theme.sanity.color.input\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.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {SelectIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\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?: number | number[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: number[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\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 = 1,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 <SelectIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\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 <Root\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})\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.button.default\n\n return css`\n --switch-bg-color: ${color.default.enabled.bg};\n --switch-fg-color: ${color.default.enabled.fg};\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})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.positive.enabled.bg};\n --switch-fg-color: ${color.positive.enabled.fg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.default.hovered.bg};\n --switch-fg-color: ${color.default.hovered.fg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.positive.hovered.bg};\n --switch-fg-color: ${color.positive.hovered.fg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.default.disabled.bg};\n --switch-fg-color: ${color.default.disabled.fg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const {input} = theme.sanity\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): FlattenSimpleInterpolation {\n const {$indeterminate, theme} = props\n const {input} = theme.sanity\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\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} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = 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 * @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 = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root 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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = 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 * @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 = 1,\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 $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 </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, useRootTheme} from '../../theme'\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 | '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 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?: number | number[]\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 Root = 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\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 border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon,\n iconRight,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 1,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\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(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\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 $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 {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n border,\n fontSize,\n icon,\n iconRight,\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 <Button\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 <Root 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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 7.5px 7.5px;\n }\n\n /* position: absolute;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n &:not([hidden]) {\n display: block;\n }\n transform-origin: 7.5px 7.5px;\n } */\n\n [data-placement^='top'] > & {\n bottom: -27px;\n }\n\n [data-placement^='right'] > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -27px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst Border = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst Shape = styled.path`\n fill: var(--card-bg-color);\n`\n\ninterface TooltipArrowProps {}\n\nexport const TooltipArrow = forwardRef(function TooltipArrow(\n props: TooltipArrowProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const {...restProps} = props\n\n return (\n <Root data-ui=\"Tooltip__arrow\" {...restProps} ref={ref}>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\">\n <Border d=\"M11.5266 1C11.032 1.32802 10.5837 1.73105 10.1995 2.20057L9.04792 3.6081C8.24771 4.58614 6.7523 4.58614 5.95209 3.6081L4.80047 2.20057C4.41632 1.73105 3.96796 1.32802 3.47341 1H0.156727C1.65639 1 3.07687 1.67313 4.02651 2.83381L5.17813 4.24134C6.37844 5.70839 8.62156 5.70839 9.82187 4.24134L10.9735 2.83381C11.9231 1.67313 13.3436 1 14.8433 1H11.5266Z\" />\n <Shape d=\"M0.156725 0C1.95632 0 3.66089 0.80776 4.80047 2.20057L5.95209 3.6081C6.75229 4.58614 8.24771 4.58614 9.04791 3.6081L10.1995 2.20057C11.3391 0.80776 13.0437 0 14.8433 0H15H0H0.156725Z\" />\n </svg>\n </Root>\n )\n})\n","import {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n} from '@floating-ui/react-dom'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n CSSProperties,\n ForwardedRef,\n} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {Placement} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement} from '../../utils'\nimport {Card} from '../card'\nimport {TooltipArrow} from './tooltipArrow'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n}\n\nconst Root = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const boundaryElementContext = useBoundaryElement()\n const theme = useTheme()\n const {\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp,\n padding,\n placement: placementProp = 'bottom',\n portal,\n scheme,\n shadow = 2,\n zOffset = theme.sanity.layer?.tooltip.zOffset,\n ...restProps\n } = props\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: 4,\n rootBoundary,\n })\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: 3}))\n\n // Shift the tooltip so its sits with the boundary eleement\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: 4,\n })\n )\n\n // Place arrow\n ret.push(arrow({element: arrowRef, padding: 2}))\n\n return ret\n }, [boundaryElement, fallbackPlacements])\n\n const {x, y, placement, reference, floating, middlewareData, update, strategy} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n }),\n [strategy, x, y]\n )\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = -15\n\n return style\n }, [arrowX, arrowY, staticSide])\n\n const [isOpen, setIsOpen] = useState(false)\n const handleBlur = useCallback(() => setIsOpen(false), [])\n const handleFocus = useCallback(() => setIsOpen(true), [])\n const handleMouseEnter = useCallback(() => setIsOpen(true), [])\n const handleMouseLeave = useCallback(() => setIsOpen(false), [])\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 (!isOpen) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n setIsOpen(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [isOpen, referenceElement])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled) setIsOpen(false)\n }, [disabled])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content) setIsOpen(false)\n }, [content])\n\n // Update reference\n useEffect(() => reference(referenceElement), [reference, referenceElement])\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 forwardedRef.current = node\n floating(node)\n },\n [floating, forwardedRef]\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef]\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 ref: setReference,\n })\n }, [childProp, handleBlur, handleFocus, handleMouseEnter, handleMouseLeave, setReference])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const root = (\n <Root data-ui=\"Tooltip\" {...restProps} ref={setFloating} style={rootStyle} zOffset={zOffset}>\n <Card\n data-ui=\"Tooltip__card\"\n data-placement={placement}\n padding={padding}\n radius={2}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n <TooltipArrow ref={setArrow} style={arrowStyle} />\n </Card>\n </Root>\n )\n\n return (\n <>\n {child}\n\n {isOpen && (\n <>\n {portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {root}\n </Portal>\n ) : (\n root\n )}\n </>\n )}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick]\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: number | number[]\n /** @beta */\n relatedElements?: HTMLElement[]\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 3,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp]\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value]\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query]\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : []\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements]\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange]\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange]\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange]\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus]\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef]\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding]\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton]\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value]\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ]\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused]\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n }\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children]\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const color = theme.sanity.color.base\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n background: color.shadow.umbra,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers'\nimport {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {DialogPosition} from '../../types'\nimport {Layer, Portal, useLayer} from '../../utils'\nimport {\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: number | number[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n radius: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nconst Root = styled(Layer)<ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps>(\n responsivePaddingStyle,\n dialogStyle,\n responsiveDialogPositionStyle\n)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Card)`\n position: relative;\n z-index: 2;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -1px;\n border-bottom: 1px solid var(--card-hairline-soft-color);\n }\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n border-top: 1px solid var(--card-hairline-soft-color);\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first interactive element in the contents\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [isTopLayer, onClose]\n )\n )\n\n useClickOutside(\n useCallback(() => {\n if (!isTopLayer || !onClickOutside) return\n\n onClickOutside()\n }, [isTopLayer, onClickOutside]),\n [rootElement]\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef]\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef]\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex>\n <Box flex={1} padding={4}>\n {header && (\n <Text id={labelId} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box padding={2}>\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={3}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const dialog = useDialog()\n const theme = useTheme()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 3,\n cardShadow = 4,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n padding: paddingProp = 4,\n portal,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || theme.sanity.layer?.dialog.zOffset,\n ...restProps\n } = props\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n\n const handleFocus = useCallback((event: React.FocusEvent<HTMLDivElement>) => {\n const target = event.target\n const cardElement = cardRef.current\n\n if (!cardElement) {\n return\n }\n\n if (target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n }, [])\n\n const labelId = `${id}_label`\n\n return (\n <Portal __unstable_name={portal}>\n <Root\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset]\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: number | number[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n &:not([hidden]) {\n display: block;\n }\n font: inherit;\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\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 = 1, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root 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 </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\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'\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 rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => 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}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, 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 [rootElement, 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 rootElement?.focus()\n setActiveIndex(-1)\n }, [rootElement, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\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 activeIndexRef.current = 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 activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, 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}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n ref: 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 = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement]\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 useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside]\n ),\n [rootElement]\n )\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 // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ]\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\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 </Root>\n </MenuContext.Provider>\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {ThemeColorSchemeKey} from '../../theme'\nimport {Placement} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: number | number[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements]\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements]\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ]\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref]\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef]\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ]\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n","import styled, {StyledComponent} from 'styled-components'\nimport {Theme} from '../../theme'\n\n/**\n * @public\n */\nexport const MenuDivider: StyledComponent<'hr', Theme> = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {SelectableTone} from '../../types/selectable'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): FlattenSimpleInterpolation {\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: 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): FlattenSimpleInterpolation {\n const {$tone, theme} = props\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n ${_colorVarsStyle(base, 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 ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {SelectableTone} from '../../types/selectable'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: number | number[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize,\n icon,\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 {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'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 if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick]\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) 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 const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\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 shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\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 onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Box padding={padding}>\n <Flex>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n <Box flex={1} marginLeft={icon ? space : undefined}>\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {text}\n </Text>\n </Box>\n\n <Box marginLeft={space}>\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Box>\n </Flex>\n </Box>\n </Selectable>\n </Popover>\n )\n}\n","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\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 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 = 2,\n hotkeys,\n icon,\n iconRight,\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 menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\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 setRef = useCallback(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref]\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={tone}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...paddingProps}>\n <Flex as=\"span\">\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box\n flex={1}\n marginLeft={icon ? space : undefined}\n marginRight={iconRight ? space : undefined}\n >\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Box marginLeft={space} style={{marginTop: -4, marginBottom: -4}}>\n <Hotkeys fontSize={fontSize} keys={hotkeys} />\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive} from '../../styles'\nimport {Theme, ThemeFontKey} from '../../theme'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>(\n ({$size, $style, theme}: {$size: number[]; $style: ThemeFontKey; theme: Theme}) => {\n const {media} = theme.sanity\n const font = theme.sanity.fonts[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = font.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n }\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport {useForwardedRef} from '../../hooks'\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\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<React.HTMLProps<HTMLButtonElement>, 'aria-controls' | 'as' | 'id' | 'label' | 'type'>,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>\n) {\n const {\n icon,\n id,\n focused,\n fontSize,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\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 const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\n\n return (\n <Button\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={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\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 = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n })\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\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 <Inline data-ui=\"TabList\" {...restProps} onKeyDown={handleKeyDown} ref={ref} role=\"tablist\">\n {tabs}\n </Inline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport styled from 'styled-components'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ThemeColorToneKey} from '../../theme'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n}\n\nconst Root = styled(Card)`\n pointer-events: all;\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\n/**\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>\n): React.ReactElement {\n const {closable, description, onClose, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={2}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && <Text weight=\"semibold\">{title}</Text>}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ninterface ToastState {\n toasts: {\n dismiss: () => void\n id: string\n params: ToastParams\n }[]\n}\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, setState] = useState<ToastState>({toasts: []})\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((params: ToastParams) => {\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState) => {\n const idx = prevState.toasts.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.toasts.slice(0)\n\n toasts.splice(idx, 1)\n\n return {...prevState, toasts}\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState) => {\n return {\n ...prevState,\n toasts: prevState.toasts\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ]),\n }\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n []\n )\n\n const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.toasts.map(({dismiss, id, params}) => (\n <motion.div\n animate={{opacity: 1, y: 0, scale: 1}}\n exit={{opacity: 0, scale: 0.5, transition: {duration: 0.2}}}\n initial={{opacity: 0, y: 32, scale: 0.25}}\n key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>\n ): React.ReactElement {\n const {children, space = 1, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n []\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements]\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]')\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n })\n)\n\nTree.displayName = 'Tree'\n","import {css, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\n\nexport function treeItemRootStyle(): FlattenSimpleInterpolation {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const $tone = 'default'\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n /* <div role=\"none\"><a data-ui=\"TreeItem__box\" role=\"treeitem\" tabIndex=\"0\"></div> */\n &[role='none'] {\n & > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_colorVarsStyle(base, tone.selected)}\n }\n }\n }\n\n /* <div role=\"treeitem\" tabIndex=\"0\"><div data-ui=\"TreeItem__box\"></div> */\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {$level, theme} = props\n const {space} = theme.sanity\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, Flex, Text} from '../../primitives'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize,\n href,\n icon,\n id: idProp,\n muted,\n onClick,\n padding = 3,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree]\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem__box' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused]\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["EMPTY_ARRAY","EMPTY_RECORD","FLOATING_STATIC_SIDES","top","right","bottom","left","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","sanity","spaceIndex","space","responsiveFont","fontKey","$size","$weight","fonts","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","JSON","stringify","useMemo","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","type","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","multiplyChannel","b","s","multiply","r","clamp","g","num","max","min","screenChannel","screen","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbToHex","rgbToHsl","cmin","cmax","delta","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","str","isHex","parseHsl","res","exec","parseColor","color","startsWith","rgba","a","rgb","createButtonTones","opts","dark","solid","muted","mode","default","button","primary","positive","caution","critical","createButtonModes","ghost","bleed","createCardStates","enabled","card","state","disabled","hovered","pressed","selected","black","white","colors","lightest","lighter","light","darker","darkest","transparent","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","tone","bg2","accent","link","code","input","placeholder","selectable","spot","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","createInputModes","readOnly","invalid","createMutedTones","createSelectableTones","_createSelectableStates","createSolidTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","_multiply","_screen","hues","NEUTRAL_TONES","tints","skeletonFrom","mix","mix2","defaultTints","isNeutral","mainShade","secondaryShade","medium","semibold","bold","heading","label","text","studioTheme","avatar","distance","textWeight","container","offset","radius","shadows","checkbox","radio","markSize","switch","transitionDurationMs","transitionTimingFunction","DEFAULT_THEME_LAYER","dialog","zOffset","popover","tooltip","getGlobalScope","globalThis","self","globalScope","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","themeProp","rootColor","layer","rootLayer","restTheme","colorScheme","version","jsx","Provider","StyledThemeProvider","isRecord","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","MEDIA_MANAGER_CACHE","_getMediaQuery","_createMediaManager","mediaLen","mediaQuery","mq","matchMedia","getCurrentIndex","matches","disposeFns","handleChange","addListener","removeListener","disposeFn","_getMediaManager","manager","useMediaIndex","setIndex","usePrefersDark","setDark","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","BORDER_VALUE","responsiveBorderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","focusRingStyle","focusRingOutsetWidth","focusRingInsetWidth","bgColor","join","GRID_CSS","GRID_AUTO_COLUMS","auto","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","spaceScale","len","_padding","_space","_fontSize","_","emSize","p","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","font","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","$radius","radiusIndex","borderRadius","toBoxShadow","shadowStyle","boxShadow","responsiveShadowStyle","$shadow","textBaseStyle","$accent","$muted","Root","styled","div","SpanWithTextOverflow","span","Text","forwardRef","childrenProp","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","zIndex","opacity","transition","$color","backgroundColor","userSelect","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeSasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","Avatar","as","asProp","colorKey","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","d","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","Fragment","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","counterSize","childrenToElementArray","childrenArray","isFragment","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","labelBaseStyle","Label","badgeStyle","$mode","palette","cursor","Badge","Flex","forwardedAs","rotate","keyframes","Spinner","SpinnerIcon","_colorVarsStyle","checkered","_c","_d","_e","_f","_g","_h","buttonBaseStyles","buttonTheme","buttonColorStyles","LoadingBox","Button","icon","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","spaceProp","boxProps","isValidElement","createElement","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","Card","__unstable_checkered","__unstable_focusRing","toneProp","rootTheme","checkboxBaseStyles","inputElementStyles","Input","Checkbox","forwardedRef","checked","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","$width","maxWidth","Container","Grid","headingBaseStyle","Heading","inlineBaseStyle","verticalAlign","inlineSpaceStyle","Inline","kbdStyle","kbd","KBD","BoundaryElementContext","BoundaryElementProvider","DEFAULT_VALUE","useBoundaryElement","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","LayerContext","useLayer","LayerProvider","zOffsetProp","maxMediaIndex","registerChild","v","parentRegisterChild","isTopLayer","LayerChildren","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","_raf","fn","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_MARGINS","apply","margins","args","placement","platform","rects","floating","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","BorderPath","path","ShapePath","PopoverArrow","xmlns","popoverCardStyle","$boundaryWidth","memo","PopoverContainer","PopoverCard","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","boundaryWidth","strategy","xProp","yProp","rootStyle","staticSide","split","arrowStyle","displayName","Popover","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","matchReferenceWidthProp","open","placementProp","preventOverflow","referenceElement","shadowProp","widthProp","boundarySize","middleware","flip","mainAxis","shift","hide","floatingProps","whileElementsMounted","autoUpdate","referenceRef","floatingRef","middlewareData","useFloating","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","radioBaseStyle","inputElementStyle","dist","Radio","inputBaseStyle","inputColorStyle","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","select","IconBox","Select","SelectIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInput","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","Border","Shape","TooltipArrow","Tooltip","fallbackPlacementsProp","setReferenceElement","update","isOpen","setIsOpen","handleBlur","handleFocus","handleMouseEnter","handleMouseLeave","handleWindowMouseMove","isHoveringReference","onBlur","onFocus","onMouseEnter","onMouseLeave","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleClick","setTimeout","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","e","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","ChevronDownIcon","inputValue","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","background","responsiveDialogPositionStyle","$position","DialogContext","useDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","rootElement","setRootElement","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","cardElement","DialogProvider","contextValue","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","delay","visible","setVisible","clearTimeout","$style","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","Tab","elementRef","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","TextBox","Toast","closable","description","cardTone","ToastContext","ToastContainer","toastId","ToastProvider","setState","toasts","toastsRef","params","duration","dismiss","timeoutId","prevState","findIndex","t","AnimatePresence","initial","motion","animate","scale","exit","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","focusedElementRef","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","level","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":"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"}