@sanity/ui 3.0.13 → 3.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks-cjs/_visual-editing.js +805 -609
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +807 -611
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +182 -142
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +183 -143
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/core/components/autocomplete/autocomplete.tsx +10 -14
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +3 -2
- package/src/core/components/dialog/dialog.tsx +10 -14
- package/src/core/components/hotkeys/hotkeys.tsx +2 -2
- package/src/core/components/menu/menuGroup.tsx +2 -2
- package/src/core/components/menu/menuItem.tsx +4 -4
- package/src/core/components/skeleton/skeleton.tsx +2 -2
- package/src/core/components/skeleton/textSkeleton.tsx +5 -6
- package/src/core/hooks/index.ts +1 -1
- package/src/core/hooks/useArrayProp.ts +3 -17
- package/src/core/primitives/avatar/avatar.tsx +14 -16
- package/src/core/primitives/avatar/avatarCounter.tsx +14 -17
- package/src/core/primitives/avatar/avatarStack.tsx +2 -3
- package/src/core/primitives/badge/badge.tsx +3 -3
- package/src/core/primitives/box/box.tsx +26 -26
- package/src/core/primitives/button/button.tsx +11 -12
- package/src/core/primitives/card/card.tsx +8 -8
- package/src/core/primitives/code/code.tsx +8 -2
- package/src/core/primitives/container/container.tsx +2 -2
- package/src/core/primitives/flex/flex.tsx +6 -6
- package/src/core/primitives/grid/grid.tsx +9 -9
- package/src/core/primitives/heading/heading.tsx +3 -3
- package/src/core/primitives/inline/inline.tsx +2 -2
- package/src/core/primitives/kbd/kbd.tsx +2 -2
- package/src/core/primitives/label/label.tsx +3 -3
- package/src/core/primitives/popover/popover.tsx +7 -6
- package/src/core/primitives/select/select.tsx +6 -5
- package/src/core/primitives/stack/stack.tsx +2 -2
- package/src/core/primitives/text/text.tsx +3 -3
- package/src/core/primitives/textArea/textArea.tsx +6 -5
- package/src/core/primitives/textInput/textInput.tsx +6 -5
- package/src/core/primitives/tooltip/tooltip.tsx +3 -2
- package/src/core/utils/layer/layerProvider.tsx +3 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, PropsWithChildren} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: 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 {SpinnerIcon} from '@sanity/icons'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n forwardRef,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n // Element refs that need to be accessed during render\n const [inputElement, setInputElement] = useState<HTMLInputElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const 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 (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n resultsPopoverElementRef={resultsPopoverElementRef}\n renderPopover={renderPopover}\n />\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={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n <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={setInputElement}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n {results}\n </StyledAutocomplete>\n )\n})\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => React.JSX.Element\n","import {styled} from 'styled-components'\n\nimport {Button} from '../../primitives'\n\nexport const StyledBreadcrumbs = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n })\n\n return (\n <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </StyledBreadcrumbs>\n )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n\nfunction useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n}: {\n collapse: () => void\n expand: () => void\n expandElementRef: React.RefObject<HTMLButtonElement | null>\n maxLength: number | undefined\n open: boolean\n popoverElementRef: React.RefObject<HTMLDivElement | null>\n rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]\n space: number[]\n}) {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.JSX.Element\n id: string\n menu?: React.JSX.Element\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {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'\n\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {getTheme_v2, ThemeFontKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {getTheme_v2, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\n\nimport {Card, Flex} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport const STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nexport const BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nexport const StyledToast = styled(Card)`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n\n &[data-has-duration] {\n padding-bottom: calc(${LOADING_BAR_HEIGHT}px / 2);\n }\n`\n\nexport const LoadingBar = styled.div`\n display: flex;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n pointer-events: none;\n z-index: -1;\n overflow: hidden;\n overflow: clip;\n background: transparent;\n align-items: flex-end;\n will-change: opacity;\n`\n\nexport const LoadingBarMask = styled(Card)`\n position: absolute;\n top: 0;\n left: -${LOADING_BAR_HEIGHT}px;\n right: -${LOADING_BAR_HEIGHT}px;\n bottom: ${LOADING_BAR_HEIGHT}px;\n z-index: 1;\n`\n\ntype LoadingBarProgressProps = Omit<React.ComponentProps<typeof Card>, 'tone'> & {\n tone: ThemeColorStateToneKey\n}\nexport const LoadingBarProgress = styled<React.ComponentType<LoadingBarProgressProps>>(Card)`\n display: block;\n height: 100%;\n width: 100%;\n transform-origin: 0% 50%;\n background-color: ${(props) => {\n const {color} = getTheme_v2(props.theme)\n\n return color.button.default[props.tone].enabled.bg\n }};\n`\n","import {CloseIcon} from '@sanity/icons'\nimport {motion, type Variant, type Variants} from 'framer-motion'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Flex, Stack, Text} from '../../primitives'\nimport {\n BUTTON_TONE,\n LoadingBar,\n LoadingBarMask,\n LoadingBarProgress,\n STATUS_CARD_TONE,\n StyledToast,\n TextBox,\n} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n | 'as'\n | 'height'\n | 'ref'\n | 'title'\n | 'onAnimationStart'\n | 'onDragStart'\n | 'onDragEnd'\n | 'onDrag'\n >,\n): React.JSX.Element {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration\n ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n forwardedAs=\"li\"\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionLoadingBar variants={content} transition={transition}>\n <LoadingBarMask tone={cardTone} radius={radius} />\n <MotionLoadingBarProgress\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionLoadingBar>\n )}\n </MotionToast>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionToast = motion.create(StyledToast)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionLoadingBar = motion.create(LoadingBar)\nconst MotionLoadingBarProgress = motion.create(LoadingBarProgress)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {styled} from 'styled-components'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps {\n children: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n gap?: number | number[]\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <StyledLayer\n forwardedAs=\"ul\"\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </StyledLayer>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n\nconst StyledLayer = styled(Grid)`\n box-sizing: border-box;\n position: fixed;\n right: 0;\n bottom: 0;\n list-style: none;\n pointer-events: none;\n max-width: 420px;\n width: 100%;\n`\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\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 = forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n})\nTree.displayName = 'ForwardRef(Tree)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n treeItemRootColorStyle,\n treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = 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 function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, setRootElement] = useState<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, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\nTreeItem.displayName = 'TreeItem'\n"],"names":["_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","children","StyledAutocomplete","styled","div","withConfig","displayName","componentId","ListBox","Box","rotate","keyframes","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","id","onSelect","selected","value","setTimeout","handleClick","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","InnerAutocomplete","forwardRef","forwardedRef","customValidity","filterOptionProp","icon","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","optionsProp","prefix","readOnly","relatedElements","renderOptionProp","renderPopover","restProps","suffix","t6","valueProp","border","filterOption","fontSize","listBox","options","padding","popover","radius","renderOption","renderValue","EMPTY_RECORD","paddingProp","t7","t8","t9","dispatch","useReducer","t10","t11","value_0","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","inputElement","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","listBoxId","useArrayProp","t15","find","o","currentOption","t16","t17","filteredOptions","filteredOptionsLen","activeItemId","expanded","concat","focusInside","e","handleRootBlur","t18","event_0","listBoxElement","focusedElement","HTMLElement","listFocused_0","handleRootFocus","t19","v","handleOptionSelect","t20","event_1","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","t21","event_2","nextQuery","handleInputChange","t22","dispatchOpen","t23","event_3","handleInputFocus","t24","handlePopoverMouseEnter","t25","handlePopoverMouseLeave","t26","handleClearButtonClick","t27","handleClearButtonFocus","t28","t29","t30","t31","t32","t33","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t34","bb0","t35","clearButton","map","_temp","openButtonBoxPadding","t36","_temp2","openButtonPadding","openButtonProps","t37","event_4","onClick","handleOpenClick","t38","ChevronDownIcon","openButtonNode","t39","bb1","t40","inputValue","event_5","handleListBoxKeyDown","t41","bb2","t42","t43","option_0","active","cloneElement","t44","content","bb3","results","t45","t46","RenderPopover","hidden","onMouseEnter","onMouseLeave","Autocomplete","v_0","v_1","Math","max","StyledBreadcrumbs","ol","ExpandButton","Button","Breadcrumbs","maxLength","separator","space","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","Children","toArray","isValidElement","rawItems","items","useItems","item","itemIndex","len","beforeLength","ceil","afterLength","floor","slice","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","Card","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","target_0","CloseIcon","Dialog","dialog","useTheme_v2","_positionProp","_zOffsetProp","onActivate","cardRadius","cardShadow","zOffset","animate","cardRadiusProp","_animate","positionProp","zOffsetProp","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","overflow","popoverProps","keyframe","animation","skeletonStyle","$visible","$animated","StyledSkeleton","responsiveRadiusStyle","Skeleton","delay","animated","visible","setVisible","timeout","$size","$style","font","fontStyle","sizeIndex","sizes","height","lineHeight","ascenderHeight","descenderHeight","TextSkeleton","size","LabelSkeleton","HeadingSkeleton","CodeSkeleton","TabPanel","flex","LOADING_BAR_HEIGHT","STATUS_CARD_TONE","warning","success","BUTTON_TONE","TextBox","StyledToast","LoadingBar","LoadingBarMask","LoadingBarProgress","default","tone","enabled","bg","ROLES","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","verticalAlign","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionToast","motion","create","MotionFlex","MotionText","Text","MotionLoadingBar","MotionLoadingBarProgress","useMounted","useSyncExternalStore","subscribe","ToastContext","ToastLayer","paddingX","paddingY","gap","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","toast","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","$tone","selectable","_cardColorStyle","pressed","hovered","treeItemBoxStyle","$level","rem","useTree","tree","TreeGroup","StyledTreeItem","li","TreeItemBox","attrs","forwardedAs","ToggleArrowText","TreeItem","IconComponent","idProp","linkAs","muted","text","weight","expandedProp","rootElement","setRootElement","treeitemRef","_id","useId","itemPath_0","closest","click","visibility","pointerEvents","transform"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useMemo} from 'react'\n\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n return useMemo(() => _getArrayProp(val, defaultVal), [val, defaultVal])\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, PropsWithChildren} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: 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 {SpinnerIcon} from '@sanity/icons'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n forwardRef,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n // Element refs that need to be accessed during render\n const [inputElement, setInputElement] = useState<HTMLInputElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = _getArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = 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 const openButtonPadding = padding.map((v) => Math.max(v - 1, 0))\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const 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 (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n resultsPopoverElementRef={resultsPopoverElementRef}\n renderPopover={renderPopover}\n />\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={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n <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={setInputElement}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n {results}\n </StyledAutocomplete>\n )\n})\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => React.JSX.Element\n","import {styled} from 'styled-components'\n\nimport {Button} from '../../primitives'\n\nexport const StyledBreadcrumbs = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = _getArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n })\n\n return (\n <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </StyledBreadcrumbs>\n )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n\nfunction useItems({\n collapse,\n expand,\n expandElementRef,\n maxLength,\n open,\n popoverElementRef,\n rawItems,\n space,\n}: {\n collapse: () => void\n expand: () => void\n expandElementRef: React.RefObject<HTMLButtonElement | null>\n maxLength: number | undefined\n open: boolean\n popoverElementRef: React.RefObject<HTMLDivElement | null>\n rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]\n space: number[]\n}) {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n 'top': 0,\n 'left': 0,\n 'right': 0,\n 'bottom': 0,\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'outline': 'none',\n 'background': color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {useClickOutsideEvent, useGlobalKeyDown, usePrefersReducedMotion} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const width = _getArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = _getArrayProp(cardRadiusProp)\n const padding = _getArrayProp(paddingProp)\n const position = _getArrayProp(positionProp)\n const width = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.JSX.Element\n id: string\n menu?: React.JSX.Element\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: MenuProps = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(\n () =>\n buttonProp &&\n cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {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'\n\nimport {Box, BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={_getArrayProp(radius)}\n $visible={delay ? visible : true}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {getTheme_v2, ThemeFontKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp, _responsive, ThemeProps} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {getTheme_v2, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\n\nimport {Card, Flex} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport const STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nexport const BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nexport const StyledToast = styled(Card)`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n\n &[data-has-duration] {\n padding-bottom: calc(${LOADING_BAR_HEIGHT}px / 2);\n }\n`\n\nexport const LoadingBar = styled.div`\n display: flex;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n pointer-events: none;\n z-index: -1;\n overflow: hidden;\n overflow: clip;\n background: transparent;\n align-items: flex-end;\n will-change: opacity;\n`\n\nexport const LoadingBarMask = styled(Card)`\n position: absolute;\n top: 0;\n left: -${LOADING_BAR_HEIGHT}px;\n right: -${LOADING_BAR_HEIGHT}px;\n bottom: ${LOADING_BAR_HEIGHT}px;\n z-index: 1;\n`\n\ntype LoadingBarProgressProps = Omit<React.ComponentProps<typeof Card>, 'tone'> & {\n tone: ThemeColorStateToneKey\n}\nexport const LoadingBarProgress = styled<React.ComponentType<LoadingBarProgressProps>>(Card)`\n display: block;\n height: 100%;\n width: 100%;\n transform-origin: 0% 50%;\n background-color: ${(props) => {\n const {color} = getTheme_v2(props.theme)\n\n return color.button.default[props.tone].enabled.bg\n }};\n`\n","import {CloseIcon} from '@sanity/icons'\nimport {motion, type Variant, type Variants} from 'framer-motion'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Flex, Stack, Text} from '../../primitives'\nimport {\n BUTTON_TONE,\n LoadingBar,\n LoadingBarMask,\n LoadingBarProgress,\n STATUS_CARD_TONE,\n StyledToast,\n TextBox,\n} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n | 'as'\n | 'height'\n | 'ref'\n | 'title'\n | 'onAnimationStart'\n | 'onDragStart'\n | 'onDragEnd'\n | 'onDrag'\n >,\n): React.JSX.Element {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration\n ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n forwardedAs=\"li\"\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionLoadingBar variants={content} transition={transition}>\n <LoadingBarMask tone={cardTone} radius={radius} />\n <MotionLoadingBarProgress\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionLoadingBar>\n )}\n </MotionToast>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionToast = motion.create(StyledToast)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionLoadingBar = motion.create(LoadingBar)\nconst MotionLoadingBarProgress = motion.create(LoadingBarProgress)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {styled} from 'styled-components'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps {\n children: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n gap?: number | number[]\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <StyledLayer\n forwardedAs=\"ul\"\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </StyledLayer>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n\nconst StyledLayer = styled(Grid)`\n box-sizing: border-box;\n position: fixed;\n right: 0;\n bottom: 0;\n list-style: none;\n pointer-events: none;\n max-width: 420px;\n width: 100%;\n`\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\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 = forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n})\nTree.displayName = 'ForwardRef(Tree)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n treeItemRootColorStyle,\n treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = 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 function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, setRootElement] = useState<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, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\nTreeItem.displayName = 'TreeItem'\n"],"names":["_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","useArrayProp","val","defaultVal","$","_c","t0","_getArrayProp","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","boundaryElement","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","children","StyledAutocomplete","styled","div","withConfig","displayName","componentId","ListBox","Box","rotate","keyframes","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","id","onSelect","selected","value","setTimeout","handleClick","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","InnerAutocomplete","forwardRef","forwardedRef","customValidity","filterOptionProp","icon","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","optionsProp","prefix","readOnly","relatedElements","renderOptionProp","renderPopover","restProps","suffix","t6","valueProp","border","filterOption","fontSize","listBox","options","padding","popover","radius","renderOption","renderValue","EMPTY_RECORD","paddingProp","t7","t8","t9","dispatch","useReducer","t10","t11","value_0","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","inputElement","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","listBoxId","t15","find","o","currentOption","t16","t17","filteredOptions","filteredOptionsLen","activeItemId","expanded","concat","focusInside","e","handleRootBlur","t18","event_0","listBoxElement","focusedElement","HTMLElement","listFocused_0","handleRootFocus","t19","v","handleOptionSelect","t20","event_1","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","t21","event_2","nextQuery","handleInputChange","t22","dispatchOpen","t23","event_3","handleInputFocus","t24","handlePopoverMouseEnter","t25","handlePopoverMouseLeave","t26","handleClearButtonClick","t27","handleClearButtonFocus","t28","t29","t30","t31","t32","t33","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t34","bb0","t35","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t36","ChevronDownIcon","openButtonNode","t37","bb1","t38","inputValue","event_5","handleListBoxKeyDown","t39","bb2","t40","t41","option_0","active","cloneElement","t42","content","bb3","results","t43","t44","RenderPopover","hidden","onMouseEnter","onMouseLeave","Autocomplete","v_0","v_1","Math","max","StyledBreadcrumbs","ol","ExpandButton","Button","Breadcrumbs","maxLength","separator","space","spaceRaw","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","Children","toArray","isValidElement","rawItems","items","useItems","item","itemIndex","len","beforeLength","ceil","afterLength","floor","slice","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","Card","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","target_0","CloseIcon","Dialog","dialog","useTheme_v2","_positionProp","_zOffsetProp","onActivate","cardRadius","cardShadow","zOffset","animate","cardRadiusProp","_animate","positionProp","zOffsetProp","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","overflow","popoverProps","keyframe","animation","skeletonStyle","$visible","$animated","StyledSkeleton","responsiveRadiusStyle","Skeleton","delay","animated","visible","setVisible","timeout","$size","$style","font","fontStyle","sizeIndex","sizes","height","lineHeight","ascenderHeight","descenderHeight","TextSkeleton","size","LabelSkeleton","HeadingSkeleton","CodeSkeleton","TabPanel","flex","LOADING_BAR_HEIGHT","STATUS_CARD_TONE","warning","success","BUTTON_TONE","TextBox","StyledToast","LoadingBar","LoadingBarMask","LoadingBarProgress","default","tone","enabled","bg","ROLES","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","verticalAlign","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionToast","motion","create","MotionFlex","MotionText","Text","MotionLoadingBar","MotionLoadingBarProgress","useMounted","useSyncExternalStore","subscribe","ToastContext","ToastLayer","paddingX","paddingY","gap","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","toast","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","$tone","selectable","_cardColorStyle","pressed","hovered","treeItemBoxStyle","$level","rem","useTree","tree","TreeGroup","StyledTreeItem","li","TreeItemBox","attrs","forwardedAs","ToggleArrowText","TreeItem","IconComponent","idProp","linkAs","muted","text","weight","expandedProp","rootElement","setRootElement","treeitemRef","_id","useId","itemPath_0","closest","click","visibility","pointerEvents","transform"],"mappings":";;;;;;;;;AAGO,SAASA,KAAKC,IAA4B;AAC/C,QAAMC,UAAUC,sBAAsBF,EAAE;AAExC,SAAO,MAAM;AACXG,yBAAqBF,OAAO;AAAA,EAC9B;AACF;AAKO,SAASG,MAAMJ,IAA4B;AAChD,MAAIK,eAAoC;AAExC,QAAMC,eAAeP,KAAK,MAAM;AAC9BM,mBAAeN,KAAKC,EAAE;AAAA,EACxB,CAAC;AAED,SAAO,MAAM;AACPK,oBAAcA,aAAAA,GAElBC,aAAAA;AAAAA,EACF;AACF;ACVO,SAASC,UAAUC,SAA+B;AACvD,SAAOC,EAAQC,SAASC,iBAAkBH,QAAQI,SAASF,SAASC,aAAa;AACnF;AAKO,SAASE,YAAYL,SAA+B;AACzD,SACEA,QAAQM,WAAW,KAClBN,QAAQM,aAAa,KAAKN,QAAQO,aAAa,UAAU,MAAM,OAEzD,KAGLC,oBAAoBR,OAAO,IACtBC,CAAAA,CAAQD,QAAQS,QAAST,QAAQU,QAAQ,WAG9CC,mBAAmBX,OAAO,IACrBA,QAAQY,SAAS,YAAYZ,QAAQY,SAAS,UAAU,CAACZ,QAAQa,WAIxEC,oBAAoBd,OAAO,KAC3Be,oBAAoBf,OAAO,KAC3BgB,sBAAsBhB,OAAO,IAEtB,CAACA,QAAQa,WAGX;AACT;AAKO,SAASI,aAAajB,SAA+B;AAC1D,MAAI,CAACK,YAAYL,OAAO;AACtB,WAAO;AAKT,MAAI;AACFA,YAAQkB,MAAAA;AAAAA,EACV,QAAQ;AAAA,EACN;AAKF,SAAOhB,SAASC,kBAAkBH;AACpC;AAKO,SAASmB,qBAAqBnB,SAA+B;AAClE,WAASoB,IAAI,GAAGA,IAAIpB,QAAQqB,WAAWC,QAAQF,KAAK;AAClD,UAAMG,QAAQvB,QAAQqB,WAAWD,CAAC;AAElC,QAAII,cAAcD,KAAK,MAAMN,aAAaM,KAAK,KAAKJ,qBAAqBI,KAAK;AAC5E,aAAO;AAAA,EAEX;AAEA,SAAO;AACT;AAKO,SAASE,oBAAoBzB,SAA+B;AACjE,WAASoB,IAAIpB,QAAQqB,WAAWC,SAAS,GAAGF,KAAK,GAAGA,KAAK;AACvD,UAAMG,QAAQvB,QAAQqB,WAAWD,CAAC;AAElC,QAAII,cAAcD,KAAK,MAAMN,aAAaM,KAAK,KAAKE,oBAAoBF,KAAK;AAC3E,aAAO;AAAA,EAEX;AAEA,SAAO;AACT;ACxFO,SAAAG,aAAAC,KAAAC,YAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,SAAAF,EAAA,CAAA,MAAAD,cAAAC,SAAAF,OAIgBI,KAAAC,cAAcL,KAAKC,UAAU,GAACC,OAAAD,YAAAC,OAAAF,KAAAE,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAA9BE;AAA8B;ACDrD,SAASE,aACPjC,SACAkC,aACe;AACf,QAAMC,MAAM,CAACnC,OAAO;AAEpB,aAAWoC,MAAMF;AACXG,UAAMC,QAAQF,EAAE,IAClBD,IAAII,KAAK,GAAGH,EAAE,IAEdD,IAAII,KAAKH,EAAE;AAIf,SAAOD,IAAIK,OAAOvC,OAAO;AAC3B;AAiBO,SAAAwC,gBAAAC,UAAAX,IAAAY,iBAAA;AAAA,QAAAd,IAAAC,EAAA,EAAA,GAELI,cAAAH,OAA+Ca,SAAAC,cAA/Cd,IAGA,CAAA/B,SAAA8C,UAAA,IAA8BC,aAAiC;AAAC,MAAAC;AAAAnB,IAAA,CAAA,MAAA7B,WAAA6B,SAAAK,eACvBc,KAAAA,MAAMf,aAAajC,SAASkC,WAAW,GAACL,OAAA7B,SAAA6B,OAAAK,aAAAL,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAjF,QAAA,CAAAoB,UAAAC,WAAA,IAAgCH,SAASC,EAAwC,GACjFG,cAAoBC,OAAOH,QAAQ;AAAC,MAAAI,IAAAC;AAAAzB,IAAA,CAAA,MAAA7B,WAAA6B,SAAAK,eAE1BmB,KAAAA,MAAA;AACR,UAAAE,eAAqBJ,YAAWK,SAChCC,eAAqBxB,aAAajC,SAASkC,WAAW;AAAC,QAEnDqB,aAAYjC,WAAYmC,aAAYnC,QAAO;AAE7C4B,kBAAYO,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,IAAA;AAAA,eAK/BrB,MAAYmB;AAAY,UAAA,CACtBE,aAAYC,SAAUtB,EAAE,GAAC;AAC5Bc,oBAAYO,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,MAAA;AAAA,eAMjCE,QAAYF;AAAY,UAAA,CACtBF,aAAYG,SAAUtB,IAAE,GAAC;AAC5Bc,oBAAYO,YAAY,GACxBN,YAAWK,UAAWC;AAAY;AAAA,MAAA;AAAA,EAAA,GAKrCH,KAAA,CAACtD,SAASkC,WAAW,GAACL,OAAA7B,SAAA6B,OAAAK,aAAAL,OAAAwB,IAAAxB,OAAAyB,OAAAD,KAAAxB,EAAA,CAAA,GAAAyB,KAAAzB,EAAA,CAAA,IA7BzB+B,UAAUP,IA6BPC,EAAsB;AAAC,MAAAO,IAAAC;AAAA,SAAAjC,EAAA,CAAA,MAAAc,mBAAAd,SAAAoB,YAAApB,EAAA,CAAA,MAAAa,YAEhBmB,KAAAA,MAAA;AAAA,QAAA,CACHnB;AAAQ;AAEb,UAAAqB,wBAAAC,CAAAA,QAAA;AACE,YAAAC,SAAeD,IAAGC;AAAO,UAEnBA,kBAAMC,QAIRvB,EAAAA,mBAAe,CAAKA,gBAAevC,SAAU6D,MAAM,IAAC;AAAA,mBAInDE,QAAYlB;AAAQ,cACnBgB,WAAW7B,QAAMA,KAAEhC,SAAU6D,MAAM;AAAC;AAK1CvB,iBAASsB,GAAG;AAAA,MAAA;AAAA,IAAC;AAGfI,WAAAA,OAAAC,iBAAwB,aAAaN,qBAAqB,GAAC,MAAA;AAGzDK,aAAAE,oBAA2B,aAAaP,qBAAqB;AAAA,IAAC;AAAA,EAAA,GAE/DD,KAAA,CAACnB,iBAAiBD,UAAUO,QAAQ,GAACpB,OAAAc,iBAAAd,OAAAoB,UAAApB,OAAAa,UAAAb,QAAAgC,IAAAhC,QAAAiC,OAAAD,KAAAhC,EAAA,EAAA,GAAAiC,KAAAjC,EAAA,EAAA,IA5BxC+B,UAAUC,IA4BPC,EAAqC,GAEjChB;AAAU;AC5GZ,SAAAyB,eAAAvE,SAAA;AACsC,SAAvBwE,eAAexE,OAAO,GAExByE,gBAAA;AAAsB;ACCnC,SAAAC,gBAAAC,KAAA;AAAA,QAAA9C,IAAAC,EAAA,CAAA,GACL8C,WAAiBxB,OAAA,IAAqB;AAAC,MAAArB;AAAA,SAAAF,EAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEd/C,KAAAA,MAAM6C,SAAQpB,SAAS3B,OAAAE,MAAAA,KAAAF,EAAA,CAAA,GAAhDkD,oBAAoBJ,KAAK5C,EAAuB,GAEzC6C;AAAQ;ACOV,MAAMI,sBAAsBC,UAAkD;AAAA,EACnFC,QAA4B;AAAA,IAACC,OAAO;AAAA,EAAA;AAAA,EAEpC,OAAOC,yBAAyBD,OAAkC;AAEhE,WAAO;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EACV;AAAA,EAEAE,kBAAkBF,OAAcG,MAA6B;AAC3D,SAAKC,MAAMC,QAAQ;AAAA,MAACL;AAAAA,MAAOG;AAAAA,IAAAA,CAAK;AAAA,EAClC;AAAA,EAEAG,SAA0B;AACxB,UAAM;AAAA,MAACN;AAAAA,IAAAA,IAAS,KAAKD;AAErB,QAAIC,OAAO;AACT,YAAMO,UAAU,OAAOP,OAAOO,WAAY,WAAWP,MAAMO,UAAU;AAErE,aAAO,oBAAC,QAAMA,UAAAA,QAAAA,CAAQ;AAAA,IACxB;AAEA,WAAO,KAAKH,MAAMI;AAAAA,EACpB;AACF;ACvCO,MAAMC,qBAAqBC,OAAOC,IAAGC,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,mBAO/BC,UAAUL,OAAOM,GAAG,EAACJ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,gDAQ5BG,SAASC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAaFC,sBAAsBT,OAAOU,WAAW,EAACR,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,cACvCG,MAAM;ACzBd,SAAAI,mBAAAjB,OAAA;AAAA,QAAA1D,IAAAC,EAAA,EAAA,GACL;AAAA,IAAA6D;AAAAA,IAAAc;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAkDrB;AAAK,MAAAxD;AAAAF,IAAA,CAAA,MAAA6E,YAAA7E,SAAA+E,SAEvB7E,KAAAA,MAAA;AAG9B8E,eAAA,MAAA;AACEH,eAASE,KAAK;AAAA,IAAC,GAAA,CACb;AAAA,EAAC,GACN/E,OAAA6E,UAAA7E,OAAA+E,OAAA/E,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAND,QAAAiF,cAAoB/E;AAMC,MAAAiB;AAAAnB,WAAAiF,eAGnB9D,KAAA+D,CAAAA,UAAA;AACMA,UAAKC,QAAS,WAAO,CAAKC,uBAAuBF,MAAKG,aAAc,KACtEJ,YAAAA;AAAAA,EAAa,GAEhBjF,OAAAiF,aAAAjF,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AALH,QAAAsF,gBAAsBnE;AAOrB,MAAAK;AAAA,SAAAxB,EAAA,CAAA,MAAA8D,YAAA9D,EAAA,CAAA,MAAAiF,eAAAjF,EAAA,CAAA,MAAAsF,iBAAAtF,EAAA,CAAA,MAAA4E,MAAA5E,SAAA8E,YAGCtD,KAAA,oBAAA,MAAA,EACiBsD,2BACP,WAAA,sBACJF,IACC,MAAA,UACIK,sBACEK,0BAEVxB,SAAAA,CACH,GAAK9D,OAAA8D,UAAA9D,OAAAiF,aAAAjF,OAAAsF,eAAAtF,OAAA4E,IAAA5E,OAAA8E,UAAA9E,QAAAwB,MAAAA,KAAAxB,EAAA,EAAA,GATLwB;AASK;ACrCF,SAAS+D,oBACdlC,OACAmC,KACmB;AACnB,SAAIA,IAAIzG,SAAS,iBACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOoC,aAAa;AAAA,IAAMC,SAAS;AAAA,IAAMC,OAAOH,IAAIG;AAAAA,EAAAA,IAG7DH,IAAIzG,SAAS,gBACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOqC,SAAS;AAAA,EAAA,IAGzBF,IAAIzG,SAAS,cACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOqC,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCH,IAAIzG,SAAS,eACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOoC,aAAa;AAAA,IAAME,OAAO;AAAA,IAAMZ,OAAO;AAAA,EAAA,IAGvDS,IAAIzG,SAAS,gBACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOqC,SAAS;AAAA,IAAOC,OAAO;AAAA,EAAA,IAGvCH,IAAIzG,SAAS,cACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOsC,OAAOtC,MAAMsC,SAASH,IAAIG;AAAAA,EAAAA,IAG1CH,IAAIzG,SAAS,wBACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOoC,aAAaD,IAAIT;AAAAA,IAAOa,aAAaJ,IAAII,eAAevC,MAAMuC;AAAAA,EAAAA,IAG9EJ,IAAIzG,SAAS,wBACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOuC,aAAaJ,IAAII;AAAAA,EAAAA,IAGjCJ,IAAIzG,SAAS,iBACR;AAAA,IAAC,GAAGsE;AAAAA,IAAOoC,aAAaD,IAAIT;AAAAA,IAAOY,OAAO;AAAA,IAAMZ,OAAOS,IAAIT;AAAAA,EAAAA,IAG7D1B;AACT;ACzCO,MAAMwC,mCAAmC,CAC9C,WACA,SACA,OACA,SACA,QACA,OACA,UACA,YACA,QACA,OACA,UAAU,GAMCC,iCAA4C,gBAK5CC,2CAAwD,CAAC,gBAAgB,WAAW,GCmE3FC,uBAAuBA,CAACjB,OAAekB,WAC3CA,SAASA,OAAOlB,QAAQA,OAEpBmB,wBAAwBA,CAACP,OAAeM,WAC5CA,OAAOlB,MAAMoB,YAAAA,EAAcC,QAAQT,MAAMQ,YAAAA,CAAa,IAAI,IAEtDE,oBAAoBC,WAAW,SAAA5C,OAAA6C,cAAA;AAAA,QAAAvG,IAAAC,EAAA,GAAA;AAAA,MAAAuG,gBAAAxH,UAAAyH,kBAAAC,MAAA9B,IAAA+B,SAAAC,QAAAC,UAAAC,SAAAC,eAAAlC,UAAAmC,YAAAC,aAAAC,aAAAC,QAAAC,UAAAC,iBAAAC,kBAAAC,eAAAC,WAAAC,QAAAvH,IAAAiB,IAAAK,IAAAC,IAAAO,IAAAC,IAAAyF,IAAAC;AAAA3H,WAAA0D,SA4BnC;AAAA,IAAAkE,QAAA1H;AAAAA,IAAAsG;AAAAA,IAAAxH;AAAAA,IAAA6I,cAAApB;AAAAA,IAAAqB,UAAA3G;AAAAA,IAAAuF;AAAAA,IAAA9B;AAAAA,IAAAmD,SAAAvG;AAAAA,IAAAmF;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAlC;AAAAA,IAAAmC;AAAAA,IAAAC;AAAAA,IAAAe,SAAAd;AAAAA,IAAAe,SAAAxG;AAAAA,IAAAyG,SAAAlG;AAAAA,IAAAmF;AAAAA,IAAAgB,QAAAlG;AAAAA,IAAAmF;AAAAA,IAAAC;AAAAA,IAAAe,cAAAd;AAAAA,IAAAC;AAAAA,IAAAc,aAAAX;AAAAA,IAAAD;AAAAA,IAAA1C,OAAA4C;AAAAA,IAAA,GAAAH;AAAAA,EAAAA,IA8BI9D,OAAK1D,OAAA0D,OAAA1D,OAAAwG,gBAAAxG,OAAAhB,UAAAgB,OAAAyG,kBAAAzG,OAAA0G,MAAA1G,OAAA4E,IAAA5E,OAAA2G,SAAA3G,OAAA4G,QAAA5G,OAAA6G,UAAA7G,OAAA8G,SAAA9G,QAAA+G,eAAA/G,QAAA6E,UAAA7E,QAAAgH,YAAAhH,QAAAiH,aAAAjH,QAAAkH,aAAAlH,QAAAmH,QAAAnH,QAAAoH,UAAApH,QAAAqH,iBAAArH,QAAAsH,kBAAAtH,QAAAuH,eAAAvH,QAAAwH,WAAAxH,QAAAyH,QAAAzH,QAAAE,IAAAF,QAAAmB,IAAAnB,QAAAwB,IAAAxB,QAAAyB,IAAAzB,QAAAgC,IAAAhC,QAAAiC,IAAAjC,QAAA0H,IAAA1H,QAAA2H,cAAAnB,iBAAAxG,EAAA,CAAA,GAAAhB,WAAAgB,EAAA,CAAA,GAAAyG,mBAAAzG,EAAA,CAAA,GAAA0G,OAAA1G,EAAA,CAAA,GAAA4E,KAAA5E,EAAA,CAAA,GAAA2G,UAAA3G,EAAA,CAAA,GAAA4G,SAAA5G,EAAA,CAAA,GAAA6G,WAAA7G,EAAA,CAAA,GAAA8G,UAAA9G,EAAA,CAAA,GAAA+G,gBAAA/G,EAAA,EAAA,GAAA6E,WAAA7E,EAAA,EAAA,GAAAgH,aAAAhH,EAAA,EAAA,GAAAiH,cAAAjH,EAAA,EAAA,GAAAkH,cAAAlH,EAAA,EAAA,GAAAmH,SAAAnH,EAAA,EAAA,GAAAoH,WAAApH,EAAA,EAAA,GAAAqH,kBAAArH,EAAA,EAAA,GAAAsH,mBAAAtH,EAAA,EAAA,GAAAuH,gBAAAvH,EAAA,EAAA,GAAAwH,YAAAxH,EAAA,EAAA,GAAAyH,SAAAzH,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAmB,KAAAnB,EAAA,EAAA,GAAAwB,KAAAxB,EAAA,EAAA,GAAAyB,KAAAzB,EAAA,EAAA,GAAAgC,KAAAhC,EAAA,EAAA,GAAAiC,KAAAjC,EAAA,EAAA,GAAA0H,KAAA1H,EAAA,EAAA,GAAA2H,YAAA3H,EAAA,EAAA;AA7BP,QAAA4H,SAAA1H,OAAaa,cAAbb,IAIA4H,WAAA3G,OAAYJ,aAAZI,IAGA4G,UAAAvG,OAAsBT,SAAAuH,eAAtB9G,IAUS+G,cAAA9G,OAAeV,aAAfU,IACTyG,UAAAlG,OAAsBjB,SAAAuH,eAAtBtG,IAEAmG,SAAAlG,OAAUlB,aAAVkB,IAKAoG,cAAAX,OAAkC3G,SAAAiF,uBAAlC0B,IAOac,KAAAb,aAAS,MAIfc,KAAAd,aAAS;AAAQ,MAAAe;AAAA1I,IAAA,EAAA,MAAAwI,MAAAxI,UAAAyI,MALgCC,KAAA;AAAA,IAAAjD,aAC3C+C;AAAAA,IAAiB9C,SAAA;AAAA,IAAAE,aAAA;AAAA,IAAAD,OAAA;AAAA,IAAAZ,OAIvB0D;AAAAA,EAAAA,GACRzI,QAAAwI,IAAAxI,QAAAyI,IAAAzI,QAAA0I,MAAAA,KAAA1I,EAAA,EAAA;AAND,QAAA,CAAAqD,OAAAsF,QAAA,IAA0BC,WAAArD,qBAAgCmD,EAMzD,GAED;AAAA,IAAAjD;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,IAAAD;AAAAA,IAAAZ;AAAAA,EAAAA,IAA0D1B;AAAK,MAAAwF;AAAA7I,IAAA,EAAA,MAAA8H,YAAA9H,UAAAuI,eAG7DM,MAAAC,CAAAA,SAAA;AAAC,UAAA;AAAA,MAAA/D,OAAAgE;AAAAA,IAAAA,IAAAD;AAA+B,+BAC7B,MAAA,EAAa,WAAA,UAAkBP,SAAAA,aAAqB,QAAA,GAAQ,MAAA,WAC3D,8BAAC,MAAA,EAAWT,MAAAA,UAAuB,cAAA,+BAEnC,GACF;AAAA,EAAO,GACR9H,QAAA8H,UAAA9H,QAAAuI,aAAAvI,QAAA6I,OAAAA,MAAA7I,EAAA,EAAA;AAIH,QAAAoI,eACE,OAAOd,oBAAqB,aAAaA,mBAZfuB,KAc5BhB,eACE,OAAOpB,oBAAqB,aAAaA,mBAAgBP,uBAG3D8C,iBAAuBzH,OAAA,IAAkC,GACzD0H,2BAAiC1H,OAAA,IAAkC,GACnE2H,kBAAwB3H,OAAA,IAAoC,GAC5D4H,oBAA0B5H,OAAA,IAAkC,GAE5D,CAAA6H,cAAAC,eAAA,IAAwCnI,aAAsC,GAG9EoI,iBAAuB/H,OAAA,EAAY,GACnCgI,WAAiBhI,OAAOwD,KAAK,GAC7ByE,eAAqBjI,OAAOoG,SAAS,GACrC8B,wBAA8BlI,OAAA,EAAY;AAAC,MAAAuH,KAAAY;AAAA1J,YAAAoJ,gBAKzCN,MAAAA,MAAMM,cACNM,OAACN,YAAY,GAACpJ,QAAAoJ,cAAApJ,QAAA8I,KAAA9I,QAAA0J,QAAAZ,MAAA9I,EAAA,EAAA,GAAA0J,MAAA1J,EAAA,EAAA,IAHhBkD,oBACEgG,iBACAJ,KACAY,GACF;AAAC,MAAAC,KAAAC;AAAA5J,YAAAoJ,gBAICO,MAAAA,MAAMP,cACNQ,OAACR,YAAY,GAACpJ,QAAAoJ,cAAApJ,QAAA2J,KAAA3J,QAAA4J,QAAAD,MAAA3J,EAAA,EAAA,GAAA4J,MAAA5J,EAAA,EAAA,IAHhBkD,oBACEqD,cACAoD,KACAC,GACF;AAEA,QAAAC,YAAkB,GAAGjF,EAAE,YACvBoD,UAAgBxH,MAAAC,QAAcyG,WAAW,IAAIA,cAAWlG,aACxDiH,UAAgB9H,cAAcoI,WAAW;AAAC,MAAAuB;AAAA9J,IAAA,EAAA,MAAAgI,WAAAhI,UAAA+E,SAEjC+E,MAAA/E,UAAK,OAAYiD,QAAO+B,KAAAC,OAAaA,EAACjF,UAAWA,KAAK,IAAChE,QAAYf,QAAAgI,SAAAhI,QAAA+E,OAAA/E,QAAA8J,OAAAA,MAAA9J,EAAA,EAAA;AAD5E,QAAAiK,gBACSH;AAER,MAAAI;AAAA,MAAAlK,EAAA,EAAA,MAAA6H,gBAAA7H,UAAAgI,WAAAhI,EAAA,EAAA,MAAA2F,OAAA;AAAA,QAAAwE;AAAAnK,MAAA,EAAA,MAAA6H,gBAAA7H,UAAA2F,SAEsBwE,OAAAlE,CAAAA,WAAaN,QAAQkC,aAAalC,OAAOM,MAAM,IAAC,IAAQjG,QAAA6H,cAAA7H,QAAA2F,OAAA3F,QAAAmK,QAAAA,OAAAnK,EAAA,EAAA,GAAvEkK,MAAAlC,QAAOrH,OAAQwJ,IAAwD,GAACnK,QAAA6H,cAAA7H,QAAAgI,SAAAhI,QAAA2F,OAAA3F,QAAAkK;AAAAA,EAAA;AAAAA,UAAAlK,EAAA,EAAA;AADhF,QAAAoK,kBACQF,KAGRG,qBAA2BD,gBAAe3K,QAC1C6K,eAAqB7E,cAAc,GAAGb,EAAE,WAAWa,WAAW,KAAE1E,QAChEwJ,WAAkB5E,UAAK,QAAagB,WAAajB,WAAWC,UAAK;AAAU,MAAAwE;AAAAnK,IAAA,EAAA,MAAA4G,UAAA5G,UAAA+G,iBAAA/G,EAAA,EAAA,MAAAqH,mBAGzE8C,MAAAjF,CAAAA,UAAA;AACEF,eAAA,MAAA;AAAA,UAIMyE,sBAAqB9H;AAAA;AAIzB,YAAAP,YAAiCiG,mBAAe,CAAA,GAAMmD,OACpDxB,eAAcrH,UAAA,CAAYqH,eAAcrH,OAAA,IAAA,CAAA,GACxCsH,yBAAwBtH,UAAA,CAAYsH,yBAAwBtH,OAAA,IAAA,EAC9D;AAEA,UAAA8I,cAAA;AAAuB,UAAApM,SAAAC;AAAA,mBAGhBoM,KAAWtJ;AAAQ,cAClBsJ,MAACrM,SAAAC,iBAA+BoM,EAACnM,SAAAF,SAAAC,aAAgC,GAAC;AACpEmM,0BAAAA;AAAW;AAAA,UAAA;AAAA;AAMbA,sBAAW,OACb9B,SAAQ;AAAA,QAAA5J,MAAQ;AAAA,MAAA,CAAY,GAC5B0K,sBAAqB9H,UAAA,IACjBoF,iBAAeA,kBAAkB,GACjCH,UAAQA,OAAO1B,KAAK;AAAA,IAAC,GAAA,CAEzB;AAAA,EAAC,GACNlF,QAAA4G,QAAA5G,QAAA+G,eAAA/G,QAAAqH,iBAAArH,QAAAmK,OAAAA,MAAAnK,EAAA,EAAA;AAjCH,QAAA2K,iBAAuBR;AAmCtB,MAAAS;AAAA5K,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEmC2H,MAAAC,CAAAA,YAAA;AAClC,UAAAC,iBAAuB3B,kBAAiBxH,SACxCoJ,iBAAuB7F,QAAK9C,kBAAA4I,cAAiC9F,QAAK9C,SAAA,MAClE6I,gBAAoBH,gBAAcvM,SAAWwM,cAAc,KAAA;AAEvDnF,sBAAgB0D,eAAc3H,YAChC2H,eAAc3H,UAAWiE,eAEzB+C,SAAQ;AAAA,MAAA5J,MAAQ;AAAA,MAAqB6G,aAAEA;AAAAA,IAAAA,CAAY;AAAA,EAAC,GAEvD5F,QAAA4K,OAAAA,MAAA5K,EAAA,EAAA;AAVD,QAAAkL,kBAAwBN;AAUlB,MAAAO;AAAAnL,IAAA,EAAA,MAAA6G,YAAA7G,UAAA+G,iBAAA/G,EAAA,EAAA,MAAA6E,YAGJsG,MAAAC,CAAAA,MAAA;AACEzC,aAAQ;AAAA,MAAA5J,MAAQ;AAAA,MAAcgG,OAASqG;AAAAA,IAAAA,CAAE,GAEzC3B,sBAAqB9H,UAAA,IAEjBkD,YAAUA,SAASuG,CAAC,GAExB7B,SAAQ5H,UAAWyJ,GAEfvE,YAAUA,SAASuE,CAAC,GACpBrE,iBAAeA,kBAAkB,GAErCmC,gBAAevH,SAAAtC,MAAAA;AAAAA,EAAA,GAChBW,QAAA6G,UAAA7G,QAAA+G,eAAA/G,QAAA6E,UAAA7E,QAAAmL,OAAAA,MAAAnL,EAAA,EAAA;AAdH,QAAAqL,qBAA2BF;AAgB1B,MAAAG;AAAAtL,IAAA,EAAA,MAAAyF,eAAAzF,EAAA,EAAA,MAAAoK,mBAAApK,EAAA,EAAA,MAAAqK,sBAAArK,UAAA+G,iBAGCuE,MAAAC,CAAAA,YAAA;AAAA,QACMrG,QAAKC,QAAS,aAAW;AACL,UAAtBD,QAAKsG,eAAAA,GAAiB,CAEjBnB;AAAkB;AAEvB,YAAAoB,eAAqBrB,gBAAeL,KAAA2B,SAAa1B,IAACjF,UAAWU,WAAW,GACxEkG,cAAoBF,eAAerB,gBAAehE,QAASqF,YAAY,IAAC,IACxEG,mBAAyBxB,iBAAiBuB,cAAW,KAAQtB,kBAAkB;AAE3EuB,0BACFjD,SAAQ;AAAA,QAAA5J,MAAQ;AAAA,QAAqBgG,OAAS6G,iBAAgB7G;AAAAA,QAAAa,aAAA;AAAA,MAAA,CAA0B;AAAC;AAAA,IAAA;AAAA,QAMzFV,QAAKC,QAAS,WAAS;AACH,UAAtBD,QAAKsG,eAAAA,GAAiB,CAEjBnB;AAAkB;AAEvB,YAAAwB,iBAAqBzB,gBAAeL,KAAA+B,CAAAA,QAAa9B,IAACjF,UAAWU,WAAW,GACxEsG,gBAAoBN,iBAAerB,gBAAehE,QAASqF,cAAY,IAAC,IACxEO,qBACE5B,gBACEuB,uBACItB,qBAAkB,KACjBA,qBAAqBsB,gBAAW,KAAQtB,kBAAkB;AAG/DuB,4BACFjD,SAAQ;AAAA,QAAA5J,MAAQ;AAAA,QAAqBgG,OAAS6G,mBAAgB7G;AAAAA,QAAAa,aAAA;AAAA,MAAA,CAA0B;AAAC;AAAA,IAAA;AAAA,QAMzFV,QAAKC,QAAS,UAAQ;AACxBwD,eAAQ;AAAA,QAAA5J,MAAQ;AAAA,MAAA,CAAc,GAC9B0K,sBAAqB9H,UAAA,IACjBoF,iBAAeA,kBAAkB,GACrCmC,gBAAevH,SAAAtC,MAAAA;AAAA;AAAA,IAAA;AAKjB,UAAA+C,SAAe8C,QAAK9C,QACpB6J,SAAe9C,kBAAiBxH;AAAQ,SAGrCsK,WAAW7J,UAAU6J,QAAM1N,SAAW6D,MAAM,MAAC,CAC7CyD,iCAAAhE,SAA0CqD,QAAKC,GAAI,GAAC;AAErD+D,sBAAevH,SAAAtC,MAAAA;AAAA;AAAA,IAAA;AAAA,EAAA,GAIlBW,QAAAyF,aAAAzF,QAAAoK,iBAAApK,QAAAqK,oBAAArK,QAAA+G,eAAA/G,QAAAsL,OAAAA,MAAAtL,EAAA,EAAA;AA3DH,QAAAkM,oBAA0BZ;AA6DzB,MAAAa;AAAAnM,YAAA+G,iBAGCoF,MAAAC,CAAAA,YAAA;AACE,UAAAC,YAAkBnH,QAAKG,cAAAN;AAEvB4D,aAAQ;AAAA,MAAA5J,MAAQ;AAAA,MAAc4G,OAAS0G;AAAAA,IAAAA,CAAU,GAE7CtF,iBAAeA,cAAcsF,SAAS;AAAA,EAAC,GAC5CrM,QAAA+G,eAAA/G,QAAAmM,OAAAA,MAAAnM,EAAA,EAAA;AAPH,QAAAsM,oBAA0BH;AASzB,MAAAI;AAAAvM,IAAA,EAAA,MAAAiK,iBAAAjK,UAAAqI,eAAArI,EAAA,EAAA,MAAA+E,SAEgCwH,MAAAA,MAAA;AAC/B5D,aAAQ;AAAA,MAAA5J,MACA;AAAA,MAAW4G,OACVZ,QAAQsD,YAAYtD,OAAOkF,aAAa,IAAI;AAAA,IAAA,CACpD;AAAA,EAAC,GACHjK,QAAAiK,eAAAjK,QAAAqI,aAAArI,QAAA+E,OAAA/E,QAAAuM,OAAAA,MAAAvM,EAAA,EAAA;AALD,QAAAwM,eAAqBD;AAKkB,MAAAE;AAAAzM,IAAA,EAAA,MAAAwM,gBAAAxM,EAAA,EAAA,MAAA0F,WAAA1F,EAAA,EAAA,MAAA8G,WAAA9G,UAAAiH,eAGrCwF,MAAAC,CAAAA,YAAA;AACOhH,gBACHiD,SAAQ;AAAA,MAAA5J,MAAQ;AAAA,IAAA,CAAc,GAE1B+H,WAASA,QAAQ5B,OAAK,GACtB+B,eAAauF;EAAc,GAElCxM,QAAAwM,cAAAxM,QAAA0F,SAAA1F,QAAA8G,SAAA9G,QAAAiH,aAAAjH,QAAAyM,OAAAA,MAAAzM,EAAA,EAAA;AARH,QAAA2M,mBAAyBF;AAUxB,MAAAG;AAAA5M,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAE2C2J,MAAAA,MAAA;AAC1CnD,0BAAqB9H,UAAA;AAAA,EAAA,GACtB3B,QAAA4M,OAAAA,MAAA5M,EAAA,EAAA;AAFD,QAAA6M,0BAAgCD;AAE1B,MAAAE;AAAA9M,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEsC6J,MAAAA,MAAA;AAC1CrD,0BAAqB9H,UAAA;AAAA,EAAA,GACtB3B,QAAA8M,OAAAA,MAAA9M,EAAA,EAAA;AAFD,QAAA+M,0BAAgCD;AAE1B,MAAAE;AAAAhN,IAAA,EAAA,MAAA6G,YAAA7G,UAAA+G,iBAEqCiG,MAAAA,MAAA;AACzCrE,aAAQ;AAAA,MAAA5J,MAAQ;AAAA,IAAA,CAAa,GAC7BwK,SAAQ5H,UAAW,IACfkF,YAAUA,SAAS,EAAE,GACrBE,iBAAeA,kBAAkB,GACrCmC,gBAAevH,SAAAtC,MAAAA;AAAAA,EAAA,GAChBW,QAAA6G,UAAA7G,QAAA+G,eAAA/G,QAAAgN,OAAAA,MAAAhN,EAAA,EAAA;AAND,QAAAiN,yBAA+BD;AAMF,MAAAE;AAAAlN,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEciK,MAAAA,MAAA;AACzCvE,aAAQ;AAAA,MAAA5J,MAAQ;AAAA,IAAA,CAAc;AAAA,EAAC,GAChCiB,QAAAkN,OAAAA,MAAAlN,EAAA,EAAA;AAFD,QAAAmN,yBAA+BD;AAEzB,MAAAE,KAAAC;AAAArN,YAAA2H,aAGIyF,MAAAA,MAAA;AAAA,QAEJzF,cAAc6B,aAAY7H,SAAQ;AACpC6H,mBAAY7H,UAAWgG,WAEnBA,cAAS5G,WACX4H,SAAQ;AAAA,QAAA5J,MAAQ;AAAA,QAAcgG,OAAS4C;AAAAA,MAAAA,CAAU,GACjD4B,SAAQ5H,UAAWgG;AAAS;AAAA,IAAA;AAO5BA,kBAAc4B,SAAQ5H,YACxB4H,SAAQ5H,UAAWgG,aAAS,MAE5BgB,SAAQ;AAAA,MAAA5J,MAAQ;AAAA,MAAcgG,OAAS4C,aAAS;AAAA,IAAA,CAAS;AAAA,EAAC,GAE3D0F,OAAC1F,SAAS,GAAC3H,QAAA2H,WAAA3H,QAAAoN,KAAApN,QAAAqN,QAAAD,MAAApN,EAAA,EAAA,GAAAqN,MAAArN,EAAA,EAAA,IAnBd+B,UAAUqL,KAmBPC,GAAW;AAAC,MAAAC,KAAAC;AAAAvN,YAAA0F,WAGL4H,MAAAA,MAAA;AACJ,KAAC5H,WAAW6D,SAAQ5H,WACtBgH,SAAQ;AAAA,MAAA5J,MAAQ;AAAA,MAAqBgG,OAASwE,SAAQ5H;AAAAA,IAAAA,CAAS;AAAA,EAAC,GAEjE4L,OAAC7H,OAAO,GAAC1F,QAAA0F,SAAA1F,QAAAsN,KAAAtN,QAAAuN,QAAAD,MAAAtN,EAAA,EAAA,GAAAuN,MAAAvN,EAAA,EAAA,IAJZ+B,UAAUuL,KAIPC,GAAS;AAAC,MAAAC,KAAAC;AAAAzN,IAAA,EAAA,MAAAyF,eAAAzF,UAAAoK,mBAGHoD,MAAAA,MAAA;AACR,UAAAE,cAAoBvE,kBAAiBxH;AAAQ,QAAA,CAExC+L;AAAW;AAEhB,UAAAC,iBAAqBvD,gBAAeL,KAAA6D,CAAAA,QAAa5D,IAACjF,UAAWU,WAAW;AAAC,QAErEgG,gBAAY;AACd,YAAAoC,gBAAoBzD,gBAAehE,QAASqF,cAAY,GACxDqC,oBAA0BJ,YAAWlO,WAAYmM,aAAW;AAA8B,UAEtFmC,mBAAiB;AAAA,YACf5P,UAAU4P,iBAAiB;AAAC;AAKhCxO,6BAAqBwO,iBAAiB;AAAA,MAAC;AAAA,IAAA;AAAA,EAAA,GAG1CL,MAAA,CAAChI,aAAa2E,eAAe,GAACpK,QAAAyF,aAAAzF,QAAAoK,iBAAApK,QAAAwN,KAAAxN,QAAAyN,QAAAD,MAAAxN,EAAA,EAAA,GAAAyN,MAAAzN,EAAA,EAAA,IApBjC+B,UAAUyL,KAoBPC,GAA8B;AAAC,MAAAM;AAAAC,OAAA;AAAA,QAG5B,CAACrH,WAAO,CAAK3H,YAAY+F,OAAK;AAAA,UAAAkJ;AAAAjO,QAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACzBgL,OAAA;AAAA,QAAA,cACS;AAAA,QAAO,SACVd;AAAAA,MAAAA,GACZnN,QAAAiO,QAAAA,OAAAjO,EAAA,EAAA,GAHD+N,MAAOE;AAGN,YAAAD;AAAAA,IAAA;AAGHD,UAAAhN;AAAAA,EAAgB;AARlB,QAAAmN,cAAoBH,KAWpBI,uBAA6BlG,QAAOmG,IAAAC,OAMnC,GACDC,oBAA0BrG,QAAOmG,IAAAG,QAA8B,GAC/DC,kBACS,OAAOxH,cAAe,WAAWA,aAAUsB;AAEnD,MAAA2F;AAAAjO,IAAA,EAAA,MAAAwM,gBAAAxM,UAAAwO,mBAGCP,MAAAQ,CAAAA,YAAA;AACEjC,oBAEIgC,gBAAeE,WAAUF,gBAAeE,QAASxJ,OAAK,GAE1DxH,WAAWwL,gBAAevH,SAAAtC,MAAAA,CAAiB;AAAA,EAAC,GAC7CW,QAAAwM,cAAAxM,QAAAwO,iBAAAxO,QAAAiO,OAAAA,MAAAjO,EAAA,EAAA;AAPH,QAAA2O,kBAAwBV;AASvB,MAAAW;AAAA5O,IAAA,EAAA,MAAAhB,YAAAgB,EAAA,EAAA,MAAAuK,YAAAvK,UAAA8H,YAAA9H,EAAA,GAAA,MAAA2O,mBAAA3O,EAAA,GAAA,MAAAgH,cAAAhH,EAAA,GAAA,MAAAmO,wBAAAnO,EAAA,GAAA,MAAAsO,qBAAAtO,EAAA,GAAA,MAAAwO,mBAAAxO,WAAAoH,YAIGwH,MAAA,CAAC5P,YAAQ,CAAKoI,YAAYJ,aACxB,oBAAC,KAAA,EAAiBuD,eAAAA,UAAmB4D,SAAAA,sBACnC,UAAA,oBAAC,QAAA,EACY,cAAA,QACD5D,UAAAA,UACAzC,UACJ+G,MAAAA,iBACD,MAAA,SACIP,SAAAA,mBAAiB,GACtBE,iBACKG,SAAAA,gBAAAA,CAAe,EAAA,CAE5B,IAAM5N,QACKf,QAAAhB,UAAAgB,QAAAuK,UAAAvK,QAAA8H,UAAA9H,SAAA2O,iBAAA3O,SAAAgH,YAAAhH,SAAAmO,sBAAAnO,SAAAsO,mBAAAtO,SAAAwO,iBAAAxO,SAAAoH,UAAApH,SAAA4O,OAAAA,MAAA5O,EAAA,GAAA;AAfjB,QAAA8O,iBAEIF;AAyBH,MAAAG;AAAAC,OAAA;AAAA,QAGKrJ,UAAK,MAAS;AAAA,UACZZ,UAAK,MAAS;AAAA,YAAAkK;AAAAjP,UAAA,GAAA,MAAAiK,iBAAAjK,WAAAqI,eAAArI,EAAA,GAAA,MAAA+E,SACTkK,OAAA5G,YAAYtD,OAAOkF,aAAa,GAACjK,SAAAiK,eAAAjK,SAAAqI,aAAArI,SAAA+E,OAAA/E,SAAAiP,QAAAA,OAAAjP,EAAA,GAAA,GAAxC+O,MAAOE;AAAiC,cAAAD;AAAAA,MAAA;AAG1CD,YAAO;AAAE,YAAAC;AAAAA,IAAA;AAGXD,UAAOpJ;AAAAA,EAAK;AATd,QAAAuJ,aAAmBH;AAU2B,MAAAE;AAAAjP,aAAA4F,eAG5CqJ,MAAAE,CAAAA,YAAA;AAEMjK,YAAKC,QAAS,SACZS,eAAasD,gBAAevH,SAAAtC,MAAAA;AAAAA,EAAA,GAEnCW,SAAA4F,aAAA5F,SAAAiP,OAAAA,MAAAjP,EAAA,GAAA;AANH,QAAAoP,uBAA6BH;AAQ5B,MAAAI;AAAAC,OAAA;AAAA,QAGKlF,gBAAe3K,WAAA,GAAa;AAAE4P,YAAA;AAAW,YAAAC;AAAAA,IAAA;AAAA,QAAAC;AAAA,QAAAvP,EAAA,GAAA,MAAAyF,eAAAzF,EAAA,GAAA,MAAAiK,iBAAAjK,EAAA,GAAA,MAAAoK,mBAAApK,EAAA,GAAA,MAAAqL,sBAAArL,EAAA,GAAA,MAAA4E,MAAA5E,EAAA,GAAA,MAAA4F,eAAA5F,EAAA,GAAA,MAAA2G,WAAA3G,WAAAoI,cAAA;AAAA,UAAAoH;AAAAxP,QAAA,GAAA,MAAAyF,eAAAzF,EAAA,GAAA,MAAAiK,iBAAAjK,EAAA,GAAA,MAAAqL,sBAAArL,WAAA4E,MAAA5E,EAAA,GAAA,MAAA4F,eAAA5F,EAAA,GAAA,MAAA2G,WAAA3G,EAAA,GAAA,MAAAoI,gBAmBlBoH,OAAAC,CAAAA,aAAA;AACnB,cAAAC,SACEjK,gBAAW,OAAYQ,SAAMlB,UAAWU,cAAcwE,kBAAkBhE;AAAM,mCAG7E,oBAAA,EACK,IAAA,GAAGrB,EAAE,WAAWqB,SAAMlB,KAAA,IAEhBsG,UAAAA,oBACAqE,kBACH,OAAAzJ,SAAMlB,OAEZ4K,UAAAA,aAAavH,aAAanC,QAAM,GAAC;AAAA,UAAAjH,UACtB2H;AAAAA,UAAO7B,UACP4K;AAAAA,UAAMjR,UACNmH,eAAe8J,SAAM,IAAA;AAAA,QAAA,CAChC,EAAA,GATIzJ,SAAMlB,KAUb;AAAA,MAAqB,GAExB/E,SAAAyF,aAAAzF,SAAAiK,eAAAjK,SAAAqL,oBAAArL,SAAA4E,IAAA5E,SAAA4F,aAAA5F,SAAA2G,SAAA3G,SAAAoI,cAAApI,SAAAwP,QAAAA,OAAAxP,EAAA,GAAA,GAnBAuP,OAAAnF,gBAAegE,IAAKoB,IAmBpB,GAACxP,SAAAyF,aAAAzF,SAAAiK,eAAAjK,SAAAoK,iBAAApK,SAAAqL,oBAAArL,SAAA4E,IAAA5E,SAAA4F,aAAA5F,SAAA2G,SAAA3G,SAAAoI,cAAApI,SAAAuP;AAAAA,IAAA;AAAAA,aAAAvP,EAAA,GAAA;AAAA,QAAAwP;AAAAxP,MAAA,GAAA,MAAA6J,aAAA7J,WAAAuP,QA5BJC,2BAAC,OAAA,EACI,IAAA,MACmB,wBAAA,IACd,WAAA,6BACJ3F,IAAAA,WACCV,KAAAA,mBACA,MAAA,WACE,UAENoG,UAAAA,MAoBH,GAAQvP,SAAA6J,WAAA7J,SAAAuP,MAAAvP,SAAAwP,QAAAA,OAAAxP,EAAA,GAAA;AAAA,QAAA4P;AAAA5P,MAAA,GAAA,MAAAoP,wBAAApP,WAAA+H,WAAA/H,EAAA,GAAA,MAAAwP,QApCVI,OAAA,oBAAC,WACS,WAAA,yBACGR,WAAAA,sBACF,SAAA,GAAC,GACNrH,SACM,UAAA,IAEVyH,UAAAA,MA8BF,GAAUxP,SAAAoP,sBAAApP,SAAA+H,SAAA/H,SAAAwP,MAAAxP,SAAA4P,QAAAA,OAAA5P,EAAA,GAAA,GAtCZqP,MACEO;AAAAA,EAsCD;AA1CH,QAAAC,WAAgBR;AAuDd,MAAAE;AAAAO,OAAA;AAAA,QAGIvI,eAAa;AAIH,YAAAiI,QAACjF;AAAQ,UAAAqF;AAAA5P,iBAAA6P,YAAA7P,EAAA,GAAA,MAAA6M,2BAAA7M,EAAA,GAAA,MAAA+M,2BAAA/M,EAAA,GAAA,MAAAoJ,gBAAApJ,WAAAuH,iBAAAvH,EAAA,GAAA,MAAAwP,QAFnBI,2BAAC,eAAA,EACUC,SAAAA,UACD,QAAAL,MACMpG,cACAyD,uCACAE,uCACY9D,0BACX1B,cAAAA,CAAa,GAC5BvH,SAAA6P,UAAA7P,SAAA6M,yBAAA7M,SAAA+M,yBAAA/M,SAAAoJ,cAAApJ,SAAAuH,eAAAvH,SAAAwP,MAAAxP,SAAA4P,QAAAA,OAAA5P,EAAA,GAAA,GATJuP,MACEK;AASD,YAAAE;AAAAA,IAAA;AAAA,QAGCzF,uBAAkB,GAAM;AAC1BkF,YAAA;AAAW,YAAAO;AAAAA,IAAA;AAAA,QAAAN;AAAAxP,MAAA,GAAA,MAAA6P,YAAA7P,EAAA,GAAA,MAAAuK,YAAAvK,EAAA,GAAA,MAAA6M,2BAAA7M,WAAA+M,2BAAA/M,EAAA,GAAA,MAAAoJ,gBAAApJ,EAAA,GAAA,MAAAkI,WAAAlI,EAAA,GAAA,MAAAmI,UAIXqH,2BAAC,SAAA,EACQ,OAAA,IACP,eAAA,IACSK,SAAAA,UACW9J,oBAAAA,0CACpB,qBAAA,IACc8G,cAAAA,yBACAE,cAAAA,yBACRxC,MAAAA,UACG,UAAA,QACEzE,WAAAA,gCACX,QAAA,IACQqC,QACHc,KAAAA,0BACaG,kBAAAA,cAAY,GAC1BlB,QAAAA,CAAO,GACXlI,SAAA6P,UAAA7P,SAAAuK,UAAAvK,SAAA6M,yBAAA7M,SAAA+M,yBAAA/M,SAAAoJ,cAAApJ,SAAAkI,SAAAlI,SAAAmI,QAAAnI,SAAAwP,QAAAA,OAAAxP,EAAA,GAAA,GAjBJuP,MACEC;AAAAA,EAiBD;AArCH,QAAAO,UAAgBR,KAyECC,MAAA7I,WAAOlC,qBAaVmL,MAAAnI,UAAUqH;AAAc,MAAAkB;AAAAhQ,IAAA,GAAA,MAAAsK,gBAAAtK,WAAA4H,UAAA5H,EAAA,GAAA,MAAAkO,eAAAlO,WAAAwG,kBAAAxG,EAAA,GAAA,MAAAhB,YAAAgB,WAAAuK,YAAAvK,EAAA,GAAA,MAAA8H,YAAA9H,EAAA,GAAA,MAAAiN,0BAAAjN,EAAA,GAAA,MAAAsM,qBAAAtM,EAAA,GAAA,MAAA2M,oBAAA3M,EAAA,GAAA,MAAA0G,QAAA1G,EAAA,GAAA,MAAA4E,MAAA5E,EAAA,GAAA,MAAAkP,cAAAlP,WAAA6J,aAAA7J,EAAA,GAAA,MAAAiI,WAAAjI,EAAA,GAAA,MAAAmH,UAAAnH,EAAA,GAAA,MAAAmI,UAAAnI,EAAA,GAAA,MAAAoH,YAAApH,EAAA,GAAA,MAAAwH,aAAAxH,EAAA,GAAA,MAAAwP,OAAAxP,WAAA4P,OA5BlCI,MAAA,oBAAC,WAAA,EAAS,GACJxI,WACmB8C,yBAAAA,cACL,qBAAA,QACHC,iBAAAA,UACJV,aAAAA,WACI,gBAAA,OACF,cAAA,OACD,aAAA,OACJjC,QACKsG,aACG1H,gBACNxH,UACA8I,UACJpB,MACK,WAAA8I,KACP5K,IACM,WAAA,UACA0H,UAAAA,mBACDW,SAAAA,wBACAN,SAAAA,kBACA1E,SACDd,QACAgB,QACEf,UACLiC,KAAAA,iBACA,MAAA,YACO,YAAA,IACJ,QAAAuG,KACDV,OAAAA,YAAU,GACjBlP,SAAAsK,cAAAtK,SAAA4H,QAAA5H,SAAAkO,aAAAlO,SAAAwG,gBAAAxG,SAAAhB,UAAAgB,SAAAuK,UAAAvK,SAAA8H,UAAA9H,SAAAiN,wBAAAjN,SAAAsM,mBAAAtM,SAAA2M,kBAAA3M,SAAA0G,MAAA1G,SAAA4E,IAAA5E,SAAAkP,YAAAlP,SAAA6J,WAAA7J,SAAAiI,SAAAjI,SAAAmH,QAAAnH,SAAAmI,QAAAnI,SAAAoH,UAAApH,SAAAwH,WAAAxH,SAAAwP,KAAAxP,SAAA4P,KAAA5P,SAAAgQ,OAAAA,MAAAhQ,EAAA,GAAA;AAAA,MAAAiQ;AAAA,SAAAjQ,EAAA,GAAA,MAAA2K,kBAAA3K,EAAA,GAAA,MAAAkL,mBAAAlL,EAAA,GAAA,MAAAkM,qBAAAlM,EAAA,GAAA,MAAA+P,WAAA/P,WAAAgQ,OArCJC,MAAA,qBAAC,sBACS,WAAA,gBACAtF,wBACCO,0BACEgB,WAAAA,mBACNlD,KAAAA,gBAELgH,UAAAA;AAAAA,IAAAA;AAAAA,IA+BCD;AAAAA,EAAAA,EAAAA,CACH,GAAqB/P,SAAA2K,gBAAA3K,SAAAkL,iBAAAlL,SAAAkM,mBAAAlM,SAAA+P,SAAA/P,SAAAgQ,KAAAhQ,SAAAiQ,OAAAA,MAAAjQ,EAAA,GAAA,GAvCrBiQ;AAuCqB,CAExB;AAED,SAASC,cAAc;AAAA,EACrB3I;AAAAA,EACAsI,SAAAA;AAAAA,EACAM;AAAAA,EACA/G;AAAAA,EACAgH;AAAAA,EACAC;AAAAA,EACApH;AAIsE,GAAG;AACzE,SAAO1B,cACL;AAAA,IACEsI,SAAAA;AAAAA,IACAM;AAAAA,IACA/G;AAAAA,IACAgH;AAAAA,IACAC;AAAAA,EAAAA,GAEFpH,wBACF;AACF;AAEA5C,kBAAkBlC,cAAc;AAQzB,MAAMmM,eAAejK;AAtnBS,SAAAgI,QAAAkC,KAAA;AAAA,SAqX7BnF,QAAC,IAAM,IACPA,QAAC,KACDA,QAAC,IAAM,IAEJA,MAAC;AAAI;AAzXqB,SAAAmD,SAAAiC,KAAA;AAAA,SA2XUC,KAAAC,IAAStF,MAAC,IAAO;AAAC;AC3d1D,MAAMuF,oBAAoB3M,OAAO4M,GAAE1M,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,yGAU7ByM,eAAe7M,OAAO8M,MAAM,EAAC5M,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,iCCc7B2M,cAAczK,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,EAAA;AAAA,MAAA6D,UAAAkN,WAAAxJ,WAAAyJ,WAAA/Q;AAAAF,WAAA0D,SAIpC;AAAA,IAAAI;AAAAA,IAAAkN;AAAAA,IAAAC;AAAAA,IAAAC,OAAAhR;AAAAA,IAAA,GAAAsH;AAAAA,EAAAA,IAA4E9D,OAAK1D,OAAA0D,OAAA1D,OAAA8D,UAAA9D,OAAAgR,WAAAhR,OAAAwH,WAAAxH,OAAAiR,WAAAjR,OAAAE,OAAA4D,WAAA9D,EAAA,CAAA,GAAAgR,YAAAhR,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA,GAAAiR,YAAAjR,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAnC,QAAAmR,WAAAjR,OAAYa,aAAZb;AAAY,MAAAiB;AAAAnB,WAAAmR,YAC5ChQ,KAAAhB,cAAcgR,QAAQ,GAACnR,OAAAmR,UAAAnR,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAArC,QAAAkR,QAAc/P,IACd,CAAAiQ,MAAAC,OAAA,IAAwBnQ,WAAc,GACtCoQ,mBAAyB/P,OAAA,IAAqC,GAC9DgQ,oBAA0BhQ,OAAA,IAAkC;AAAC,MAAAC;AAAAxB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEhCzB,KAAAA,MAAM6P,UAAa,GAACrR,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA;AAAjD,QAAAwR,WAAiBhQ;AAAqC,MAAAC;AAAAzB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAC3BxB,KAAAA,MAAM4P,UAAY,GAACrR,OAAAyB,MAAAA,KAAAzB,EAAA,CAAA;AAA9C,QAAAyR,SAAehQ;AAAoC,MAAAO;AAAAhC,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEpBjB,KAAAA,MAAA,CAAOsP,iBAAgB3P,SAAU4P,kBAAiB5P,OAAA,GAAS3B,QAAAgC,MAAAA,KAAAhC,EAAA,EAAA,GAA1F0R,qBAAqBF,UAAUxP,EAA2D;AAAC,MAAAC;AAAAjC,YAAA8D,YAE5D7B,KAAA0P,SAAAC,QAAiB9N,QAAQ,EAACnD,OAAAkR,cAAsB,GAAC7R,QAAA8D,UAAA9D,QAAAiC,MAAAA,KAAAjC,EAAA,EAAA;AAAhF,QAAA8R,WAA+B7P;AAA8D,MAAAyF;AAAA1H,IAAA,EAAA,MAAAgR,aAAAhR,EAAA,EAAA,MAAAoR,QAAApR,EAAA,EAAA,MAAA8R,YAAA9R,UAAAkR,SAEtExJ,KAAA;AAAA,IAAA8J;AAAAA,IAAAC;AAAAA,IAAAH;AAAAA,IAAAN;AAAAA,IAAAI;AAAAA,IAAAG;AAAAA,IAAAO;AAAAA,IAAAZ;AAAAA,EAAAA,GAStBlR,QAAAgR,WAAAhR,QAAAoR,MAAApR,QAAA8R,UAAA9R,QAAAkR,OAAAlR,QAAA0H,MAAAA,KAAA1H,EAAA,EAAA;AATD,QAAA+R,QAAcC,SAAStK,EAStB;AAAC,MAAAc;AAAA,MAAAxI,EAAA,EAAA,MAAA+R,SAAA/R,UAAAiR,aAAAjR,EAAA,EAAA,MAAAkR,OAAA;AAAA,QAAAzI;AAAAzI,MAAA,EAAA,MAAAiR,aAAAjR,UAAAkR,SAIazI,MAAAA,CAAAwJ,MAAAC,mCACR,UAAA,EACEA,UAAAA;AAAAA,MAAAA,YAAS,KACR,oBAAC,KAAA,EAAI,eAAA,IAAe,IAAA,MAAehB,UAAAA,OAChCD,uBAAa,oBAAC,MAAA,EAAK,OAAA,IAAM,eAAC,GAC7B;AAAA,MAEF,oBAAC,KAAA,EAAO,IAAA,MAAMgB,UAAAA,KAAAA,CAAK;AAAA,IAAA,EAAA,GANNC,SAOf,GACDlS,QAAAiR,WAAAjR,QAAAkR,OAAAlR,QAAAyI,OAAAA,MAAAzI,EAAA,EAAA,GATAwI,KAAAuJ,MAAK3D,IAAK3F,GASV,GAACzI,QAAA+R,OAAA/R,QAAAiR,WAAAjR,QAAAkR,OAAAlR,QAAAwI;AAAAA,EAAA;AAAAA,SAAAxI,EAAA,EAAA;AAAA,MAAAyI;AAAA,SAAAzI,EAAA,EAAA,MAAA8C,OAAA9C,UAAAwH,aAAAxH,EAAA,EAAA,MAAAwI,MAVJC,yBAAC,qBAA0B,WAAA,kBAAkBjB,WAAgB1E,KAC1D0F,UAAAA,IAUH,GAAoBxI,QAAA8C,KAAA9C,QAAAwH,WAAAxH,QAAAwI,IAAAxI,QAAAyI,MAAAA,KAAAzI,EAAA,EAAA,GAXpByI;AAWoB,CAEvB;AACDsI,YAAY5M,cAAc;AAE1B,SAAA6N,SAAA9R,IAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAkB;AAAA,IAAAuR;AAAAA,IAAAC;AAAAA,IAAAH;AAAAA,IAAAN;AAAAA,IAAAI;AAAAA,IAAAG;AAAAA,IAAAO;AAAAA,IAAAZ;AAAAA,EAAAA,IAAAhR,IAmBhBiS,MAAYL,SAAQrS;AAAO,MAEvBuR,aAAamB,MAAMnB,WAAS;AAC9B,UAAAoB,eAAqB3B,KAAA4B,KAAUrB,aAAa,GAC5CsB,cAAoB7B,KAAA8B,MAAWvB,aAAa;AAAC,QAAA7P;AAAA,QAAAnB,EAAA,CAAA,MAAAsS,eAAAtS,SAAAoS,gBAAApS,EAAA,CAAA,MAAAwR,YAAAxR,SAAAyR,UAAAzR,EAAA,CAAA,MAAAsR,oBAAAtR,SAAAmS,OAAAnS,EAAA,CAAA,MAAAoR,QAAApR,EAAA,CAAA,MAAAuR,qBAAAvR,EAAA,CAAA,MAAA8R,YAAA9R,SAAAkR,OAAA;AAGxC,YAAA1P,KAAAsQ,SAAQU,MAAA,GAAUJ,gBAAgB;AAAC,UAAA3Q;AAAAzB,QAAA,EAAA,MAAAsS,eAAAtS,EAAA,EAAA,MAAAoS,gBAAApS,EAAA,EAAA,MAAAmS,OAAAnS,UAAA8R,YAK/BrQ,KAAAqQ,SAAQU,MAAOJ,eAAY,GAAMD,MAAMG,WAAW,GAACtS,QAAAsS,aAAAtS,QAAAoS,cAAApS,QAAAmS,KAAAnS,QAAA8R,UAAA9R,QAAAyB,MAAAA,KAAAzB,EAAA,EAAA;AAAA,UAAAgC;AAAAhC,QAAA,EAAA,MAAAkR,SAAAlR,UAAAyB,MADtDO,yBAAC,OAAA,EAAS,IAAA,MAAc,UAAA,QAAgBkP,gBAAcA,OACnDzP,UAAAA,GAAAA,CACH,GAAQzB,QAAAkR,OAAAlR,QAAAyB,IAAAzB,QAAAgC,MAAAA,KAAAhC,EAAA,EAAA;AAWC,YAAAiC,KAAAmP,OAAOI,WAAWC;AAAM,UAAA/J;AAAA1H,QAAA,EAAA,MAAAsR,oBAAAtR,UAAAoR,QAAApR,EAAA,EAAA,MAAAiC,MAHnCyF,KAAA,oBAAC,gBACW,UAAA,GACL,MAAA,SACI,SAAAzF,IACA,YACJqP,KAAAA,kBACKF,UAAAA,MACL,MAAA,SAAA,CAAG,GACRpR,QAAAsR,kBAAAtR,QAAAoR,MAAApR,QAAAiC,IAAAjC,QAAA0H,MAAAA,KAAA1H,EAAA,EAAA;AAAA,UAAAwI;AAAAxI,QAAA,EAAA,MAAAoR,QAAApR,EAAA,EAAA,MAAAuR,qBAAAvR,EAAA,EAAA,MAAAgC,MAAAhC,UAAA0H,MArBJc,yBAAC,SAAA,EACC,eAAA,IAEE,SAAAxG,IAKIoP,MACI,WAAA,OACV,YACKG,KAAAA,mBAEL7J,UAAAA,GAAAA,GANI,QAeN,GAAU1H,QAAAoR,MAAApR,QAAAuR,mBAAAvR,QAAAgC,IAAAhC,QAAA0H,IAAA1H,QAAAwI,MAAAA,KAAAxI,EAAA,EAAA,GAxBLmB,KAAA,CAAA,GACFK,IACHgH,IAsBU,GACPsJ,SAAQU,MAAOL,MAAMG,WAAW,CAAC,GACrCtS,OAAAsS,aAAAtS,OAAAoS,cAAApS,OAAAwR,UAAAxR,OAAAyR,QAAAzR,OAAAsR,kBAAAtR,OAAAmS,KAAAnS,OAAAoR,MAAApR,OAAAuR,mBAAAvR,OAAA8R,UAAA9R,OAAAkR,OAAAlR,QAAAmB;AAAAA,IAAA;AAAAA,WAAAnB,EAAA,EAAA;AAAA,WA1BMmB;AAAAA,EA0BN;AAAA,SAGI2Q;AAAQ;AClHV,SAASW,YAAY;AAAA,EAACC;AAAiB,GAAc;AAC1D,QAAM;AAAA,IAACC;AAAAA,EAAAA,IAASC,YAAYF,KAAK;AAEjC,SAAO;AAAA,IACL,mBAAmB;AAAA,MACjBG,SAAS;AAAA,IAAA;AAAA,IAGX,KAAO;AAAA,IACP,MAAQ;AAAA,IACR,OAAS;AAAA,IACT,QAAU;AAAA,IACV,YAAc;AAAA,IACd,gBAAkB;AAAA,IAClB,SAAW;AAAA,IACX,YAAcF,MAAMG;AAAAA,EAAAA;AAExB;AAEO,SAASC,8BACdrP,OACa;AACb,QAAM;AAAA,IAACsP;AAAAA,EAAAA,IAASJ,YAAYlP,MAAMgP,KAAK;AAEvC,SAAOO,YAAYD,OAAOtP,MAAMwP,WAAYC,CAAAA,cAAc;AAAA,IAAC,MAAM;AAAA,MAACA;AAAAA,IAAAA;AAAAA,EAAQ,EAAG;AAC/E;AASO,SAASC,qBAAqB1P,OAA0D;AAC7F,SAAKA,MAAM2P,WAEJC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAFqBA;AA4B9B;AC5DO,MAAMC,gBAAgBC,0BAC3B,6BACA;AAAA,EAACC,SAAS;AAAG,CACf;ACXO,SAAAC,YAAA;AAAA,SACEC,WAAAJ,aAAwB;AAAC;AC4ElC,SAASK,oBACP9S,iBACA+S,eACAzR,QACS;AACT,SAAI,CAACtB,mBAAmB,CAAC+S,gBAAsB,KAG7CC,wBAAwBhT,iBAAiBsB,MAAM,KAC/C0R,wBAAwBD,eAAezR,MAAM;AAEjD;AAEA,MAAM2R,eAAe/P,uBAAOgQ,KAAK,EAAC9P,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,EAEhC6P,wBAAwBxB,aAAaM,+BAA+BK,oBAAoB,GAEpFc,kBAAkBlQ,OAAOmQ,SAAS,EAACjQ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,0HAWnCgQ,iBAAiBpQ,OAAOqQ,IAAI,EAACnQ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,yGAW7BkQ,eAAetQ,OAAOuQ,IAAI,EAACrQ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,oCAM3BoQ,eAAexQ,OAAOM,GAAG,EAACJ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,iCAK1BqQ,gBAAgBzQ,OAAOM,GAAG,EAACJ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,4DAO3BsQ,eAAe1Q,OAAOM,GAAG,EAACJ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,iCAK1BuQ,aAAarO,WAAW,SAAA5C,OAAA6C,cAAA;AAAA,QAAAvG,IAAAC,EAAA,EAAA,GAI5B;AAAA,IAAA2U,sBAAAC;AAAAA,IAAAC,4BAAAC;AAAAA,IAAAjR;AAAAA,IAAAkR,YAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAvQ;AAAAA,IAAAwQ;AAAAA,IAAAC;AAAAA,IAAAC,QAAAC;AAAAA,IAAApN,QAAAqN;AAAAA,IAAAC;AAAAA,IAAAC,QAAAC;AAAAA,IAAAC,OAAAC;AAAAA,EAAAA,IAeInS,OACJ4R,SAAeQ,UAAAA,GACfjC,gBAAsB0B,aAAaD,OAAMlU,WAAYmU,UAAU,KAAA,OAAYD,OAAMnX,SACjF2C,kBAAwBiV,qBAAoB5X;AAAQ,MAAA+B;AAAAF,WAAAwV,cACrCtV,KAAAC,cAAcqV,UAAU,GAACxV,OAAAwV,YAAAxV,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AAAxC,QAAAmI,SAAejI;AAAyB,MAAAiB;AAAAnB,WAAA2V,cACzBxU,KAAAhB,cAAcwV,UAAU,GAAC3V,OAAA2V,YAAA3V,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAxC,QAAA0V,SAAevU;AAAyB,MAAAK;AAAAxB,WAAA6V,aAC1BrU,KAAArB,cAAc0V,SAAS,GAAC7V,OAAA6V,WAAA7V,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA;AAAtC,QAAA4V,QAAcpU,IACdsB,MAAYvB,OAAA,IAAkC,GAC9CyT,aAAmBzT,OAAA,IAAkC,GACrDyU,QAAcC,SAAAA,GACd;AAAA,IAAAC;AAAAA,EAAAA,IAAqBF,OACrBG,UAAgB,GAAGvR,EAAE,UACrBwR,kBAAwBhY,CAAAA,CAAQiX,WAAYN,oBAAe,IAC3DsB,aAAmBjY,EAAQ+W,UAAWiB;AAAe,MAAA3U;AAAAzB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAE2BxB,KAAAA,MAAMqB,IAAGnB,SAAQ3B,OAAAyB,MAAAA,KAAAzB,EAAA,CAAA,GAAjGkD,oBAAkEqD,cAAc9E,EAAiB;AAAC,MAAAO;AAAAhC,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAGhGjB,KAAAA,MAAMgT,WAAUrT,SAAQ3B,OAAAgC,MAAAA,KAAAhC,EAAA,CAAA,GAF1BkD,oBACE+R,qBACAjT,EACF;AAAC,MAAAC,IAAAyF;AAAA1H,WAAA6U,aAES5S,KAAAA,MAAA;AACH4S,iBAGD/R,IAAGnB,WACLrC,qBAAqBwD,IAAGnB,OAAQ;AAAA,EAAC,GAElC+F,KAAA,CAACmN,WAAW/R,GAAG,GAAC9C,OAAA6U,WAAA7U,OAAAiC,IAAAjC,QAAA0H,OAAAzF,KAAAjC,EAAA,CAAA,GAAA0H,KAAA1H,EAAA,EAAA,IAPnB+B,UAAUE,IAOPyF,EAAgB;AAAC,MAAAc;AAAAxI,IAAA,EAAA,MAAAc,mBAAAd,EAAA,EAAA,MAAAkW,cAAAlW,EAAA,EAAA,MAAAqV,WAAArV,UAAA6T,iBAIhBrL,KAAAtD,CAAAA,UAAA;AAAA,QACM,CAACgR,cAAU,CAAKb;AAAO;AAE3B,UAAAjT,SAAA/D,SAAAC;AAEI8D,eAAWwR,oBAAoB9S,iBAAiB+S,eAAezR,MAAM,KAKrE8C,MAAKC,QAAS,aAChBD,MAAKsG,eAAAA,GACLtG,MAAKoR,gBAAAA,GACLjB;EAAS,GAEZrV,QAAAc,iBAAAd,QAAAkW,YAAAlW,QAAAqV,SAAArV,QAAA6T,eAAA7T,QAAAwI,MAAAA,KAAAxI,EAAA,EAAA,GAjBLuW,iBACE/N,EAmBF;AAAC,MAAAC;AAAAzI,IAAA,EAAA,MAAAc,mBAAAd,EAAA,EAAA,MAAAkW,cAAAlW,EAAA,EAAA,MAAAoV,kBAAApV,UAAA6T,iBAGCpL,KAAAyN,cACEd,mBAAcvK,CAAAA,YAAA;AAEZ,UAAA2L,WAAetR,QAAK9C;AAEhBA,iBAAWwR,oBAAoB9S,iBAAiB+S,eAAezR,QAAM,KAKzEgT,eAAAA;AAAAA,EAAgB,IAChBpV,QAAAc,iBAAAd,QAAAkW,YAAAlW,QAAAoV,gBAAApV,QAAA6T,eAAA7T,QAAAyI,MAAAA,KAAAzI,EAAA,EAAA;AAAA,MAAA0I;AAAA1I,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACJyF,KAAAA,MAAA,CAAO5F,IAAGnB,OAAA,GAAS3B,QAAA0I,MAAAA,KAAA1I,EAAA,EAAA,GAbrB0R,qBACEjJ,IAYAC,EACF;AAAC,MAAAG;AAAA7I,IAAA,EAAA,MAAAmV,UAAAnV,EAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAAqV,WAAArV,EAAA,EAAA,MAAAoW,mBAAApW,UAAAqW,cAMQxN,MAAAwN,cACC,oBAAC,cAAA,EACC,UAAA,qBAAC,MAAA,EAAW,OAAA,cAAsB,SAAA,GAChC,UAAA;AAAA,IAAA,oBAAC,KAAA,EAAU,MAAA,GAAY,SAAA,GACpBlB,UAAAA,UACC,oBAAC,MAAA,EAASgB,IAAAA,SAAe,MAAA,GAAU,QAAA,YAChChB,kBACH,GAEJ;AAAA,IACCiB,uCACE,KAAA,EAAS,MAAA,QACR,UAAA,oBAAC,QAAA,EACY,cAAA,gBACD,UAAA,CAACf,SACLoB,MAAAA,WACD,MAAA,SACIpB,SAAAA,SACA,SAAA,GAAC,EAAA,CAEd;AAAA,EAAA,EAAA,CAEJ,EAAA,CACF,GACDrV,QAAAmV,QAAAnV,QAAAmW,SAAAnW,QAAAqV,SAAArV,QAAAoW,iBAAApW,QAAAqW,YAAArW,QAAA6I,OAAAA,MAAA7I,EAAA,EAAA;AAAA,MAAA8I;AAAA9I,YAAA8D,YAEDgF,0BAAC,eAAA,EAAoB,MAAA,GAAQkM,KAAAA,YAAsB,UAAA,IAChDlR,UACH,GAAgB9D,QAAA8D,UAAA9D,QAAA8I,OAAAA,MAAA9I,EAAA,EAAA;AAAA,MAAA0J;AAAA1J,YAAAkV,UAEfxL,MAAAwL,UAAU,oBAAC,gBAAcA,UAAAA,OAAAA,CAAO,GAAelV,QAAAkV,QAAAlV,QAAA0J,OAAAA,MAAA1J,EAAA,EAAA;AAAA,MAAA2J;AAAA3J,IAAA,EAAA,MAAA6I,OAAA7I,UAAA8I,OAAA9I,EAAA,EAAA,MAAA0J,OA/BlDC,2BAAC,cAAA,EAAuB,WAAA,UACrBd,UAAAA;AAAAA,IAAAA;AAAAA,IA0BDC;AAAAA,IAICY;AAAAA,EAAAA,GACH,GAAe1J,QAAA6I,KAAA7I,QAAA8I,KAAA9I,QAAA0J,KAAA1J,QAAA2J,OAAAA,MAAA3J,EAAA,EAAA;AAAA,MAAA4J;AAAA5J,IAAA,EAAA,MAAAmI,UAAAnI,EAAA,EAAA,MAAAyV,UAAAzV,EAAA,EAAA,MAAA0V,UAAA1V,UAAA2J,OAjCjBC,MAAA,oBAAC,gBAAA,EAAuBzB,QAAarF,KAAa2S,QAAgBC,QAChE/L,eAiCF,GAAiB3J,QAAAmI,QAAAnI,QAAAyV,QAAAzV,QAAA0V,QAAA1V,QAAA2J,KAAA3J,QAAA4J,OAAAA,MAAA5J,EAAA,EAAA;AAAA,MAAA8J;AAAA,SAAA9J,EAAA,EAAA,MAAA4J,OAAA5J,UAAA4V,SAnCnB9L,0BAAC,iBAAA,EAAwB,WAAA,cAAoB8L,OAC3ChM,UAAAA,IAAAA,CAmCF,GAAkB5J,QAAA4J,KAAA5J,QAAA4V,OAAA5V,QAAA8J,OAAAA,MAAA9J,EAAA,EAAA,GApClB8J;AAoCkB,CAErB;AAED6K,WAAWxQ,cAAc;AAOlB,MAAMuS,SAASpQ,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,EAAA,GAI/B0W,SAAejD,aACf;AAAA,IAAAsC;AAAAA,EAAAA,IAAgBY,YAAAA;AAAa,MAAAC,eAAAC,cAAAhT,UAAAkR,YAAAE,QAAAC,QAAAvQ,IAAAmS,YAAA3B,gBAAAC,SAAAvO,SAAAyO,YAAA/N,WAAAiO,QAAAvV,IAAAiB,IAAAK,IAAAC,IAAAO,IAAAC,IAAAyF;AAAA1H,WAAA0D,SAC7B;AAAA,IAAAkR,sBAAA1U;AAAAA,IAAA4U,4BAAA3T;AAAAA,IAAA6V,YAAAxV;AAAAA,IAAAyV,YAAAxV;AAAAA,IAAAqC;AAAAA,IAAAkR;AAAAA,IAAAE;AAAAA,IAAAC;AAAAA,IAAAvQ;AAAAA,IAAAmS;AAAAA,IAAA3B;AAAAA,IAAAC;AAAAA,IAAAvO;AAAAA,IAAAmB,SAAAjG;AAAAA,IAAAsT,QAAAC;AAAAA,IAAApC,UAAA0D;AAAAA,IAAApB;AAAAA,IAAAG,OAAA3T;AAAAA,IAAAiV,SAAAJ;AAAAA,IAAAK,SAAAzP;AAAAA,IAAA,GAAAF;AAAAA,EAAAA,IAsBI9D,OAAK1D,OAAA0D,OAAA1D,OAAA6W,eAAA7W,OAAA8W,cAAA9W,OAAA8D,UAAA9D,OAAAgV,YAAAhV,OAAAkV,QAAAlV,OAAAmV,QAAAnV,OAAA4E,IAAA5E,OAAA+W,YAAA/W,OAAAoV,gBAAApV,QAAAqV,SAAArV,QAAA8G,SAAA9G,QAAAuV,YAAAvV,QAAAwH,WAAAxH,QAAAyV,QAAAzV,QAAAE,IAAAF,QAAAmB,IAAAnB,QAAAwB,IAAAxB,QAAAyB,IAAAzB,QAAAgC,IAAAhC,QAAAiC,IAAAjC,QAAA0H,OAAAmP,gBAAA7W,EAAA,CAAA,GAAA8W,eAAA9W,EAAA,CAAA,GAAA8D,WAAA9D,EAAA,CAAA,GAAAgV,aAAAhV,EAAA,CAAA,GAAAkV,SAAAlV,EAAA,CAAA,GAAAmV,SAAAnV,EAAA,CAAA,GAAA4E,KAAA5E,EAAA,CAAA,GAAA+W,aAAA/W,EAAA,CAAA,GAAAoV,iBAAApV,EAAA,CAAA,GAAAqV,UAAArV,EAAA,EAAA,GAAA8G,UAAA9G,EAAA,EAAA,GAAAuV,aAAAvV,EAAA,EAAA,GAAAwH,YAAAxH,EAAA,EAAA,GAAAyV,SAAAzV,EAAA,EAAA,GAAAE,KAAAF,EAAA,EAAA,GAAAmB,KAAAnB,EAAA,EAAA,GAAAwB,KAAAxB,EAAA,EAAA,GAAAyB,KAAAzB,EAAA,EAAA,GAAAgC,KAAAhC,EAAA,EAAA,GAAAiC,KAAAjC,EAAA,EAAA,GAAA0H,KAAA1H,EAAA,EAAA;AArBe,QAAA6U,YAAA3U,OAAgBa,cAAhBb,IACM6U,kBAAA5T,OAAuBJ,cAAvBI,IAChBiW,iBAAA5V,OAAkBT,aAAlBS,IACZyV,aAAAxV,OAAcV,aAAdU,IAUS8G,cAAAvG,OAAejB,aAAfiB,IAIF6T,YAAA5T,OAAalB,aAAbkB,IAEEoV,WAAA3P,OAAgB3G,cAAhB2G,IAGX4P,eAAqBT,kBAAkBF,OAAMxD,YAAa,UAC1DoE,cAAoBT,iBAAiBH,OAAMO,WAAYlB,MAAKW,OAAAO,UAE5DC,UAD6BK,wBAAAA,IACO,KAAWH,UAC/C/B,SAAeQ,UAAAA,GACfjC,gBAAsB0B,aAAaD,OAAMlU,WAAYmU,UAAU,KAAA,OAAYD,OAAMnX,SACjF2C,kBAAwBiV,qBAAoB5X;AAAQ,MAAAqK;AAAAxI,YAAAoX,kBACjC5O,KAAArI,cAAciX,cAAc,GAACpX,QAAAoX,gBAAApX,QAAAwI,MAAAA,KAAAxI,EAAA,EAAA;AAAhD,QAAAgX,aAAmBxO;AAA6B,MAAAC;AAAAzI,YAAAuI,eAChCE,KAAAtI,cAAcoI,WAAW,GAACvI,QAAAuI,aAAAvI,QAAAyI,MAAAA,KAAAzI,EAAA,EAAA;AAA1C,QAAAiI,UAAgBQ;AAA0B,MAAAC;AAAA1I,YAAAsX,gBACzB5O,KAAAvI,cAAcmX,YAAY,GAACtX,QAAAsX,cAAAtX,QAAA0I,MAAAA,KAAA1I,EAAA,EAAA;AAA5C,QAAAmT,WAAiBzK;AAA2B,MAAAG;AAAA7I,YAAA6V,aAC9BhN,MAAA1I,cAAc0V,SAAS,GAAC7V,QAAA6V,WAAA7V,QAAA6I,OAAAA,MAAA7I,EAAA,EAAA;AAAtC,QAAA4V,QAAc/M;AAAwB,MAAAC;AAAA9I,YAAAuX,eACtBzO,MAAA3I,cAAcoX,WAAW,GAACvX,QAAAuX,aAAAvX,QAAA8I,OAAAA,MAAA9I,EAAA,EAAA;AAA1C,QAAAkX,UAAgBpO,KAChB2O,YAAkBlW,OAAA,IAAkC,GACpDmW,aAAmBnW,OAAA,IAAkC,GACrDoW,UAAgBpW,OAAA,IAAkC,GAClDqW,oBAA0BrW,OAAA,IAA+B;AAAC,MAAAmI;AAAA1J,YAAA8G,WAGxD4C,MAAAxE,CAAAA,UAAA;AACE4B,cAAU5B,KAAK;AAEf,UAAA9C,SAAe8C,MAAK9C,QACpByV,cAAoBF,QAAOhW;AAAQ,QAE/BkW,eAAezV,WAAWqV,UAAS9V,SAAQ;AAC7C/B,0BAAoBiY,WAAW;AAAC;AAAA,IAAA;AAAA,QAK9BA,eAAezV,WAAWsV,WAAU/V,SAAQ;AAC9CrC,2BAAqBuY,WAAW;AAAC;AAAA,IAAA;AAK/BlY,kBAAcuF,MAAK9C,MAAO,MAC5BwV,kBAAiBjW,UAAWuD,MAAK9C;AAAAA,EAAA,GAEpCpC,QAAA8G,SAAA9G,QAAA0J,OAAAA,MAAA1J,EAAA,EAAA;AAtBH,QAAA8X,cAAoBpO,KA0BpByM,UAAgB,GAAGvR,EAAE,UAErBmT,sBAA4BxW,OAAAR,MAAgC;AAAC,MAAA4I;AAAA3J,IAAA,EAAA,MAAAc,mBAAAd,UAAA6T,iBAKzBlK,MAAAA,MAAA;AAC9BoO,wBAAmBpW,WACrBqW,aAAaD,oBAAmBpW,OAAQ,GAG1CoW,oBAAmBpW,UAAWqD,WAAA,MAAA;AAC5B,YAAA1G,gBAAAD,SAAAC;AAA4C,UAExCA,kBAAkBsV,oBAAoB9S,iBAAiB+S,eAAevV,aAAa,GAAC;AACtF,cAAAkY,WAAeoB,kBAAiBjW;AAAQ,YAEpC,CAACS,YAAM,CAAK/D,SAAA4Z,KAAA1Z,SAAuB6D,QAAM,GAAC;AAE5C,gBAAA8V,gBAAoBP,QAAOhW;AACvBkW,2BAAavY,qBAAqBuY,aAAW;AAAC;AAAA,QAAA;AAKpDzV,iBAAM/C,MAAAA;AAAAA,MAAQ;AAAA,IAAA,GAAA,CAEd;AAAA,EAAC,GACNW,QAAAc,iBAAAd,QAAA6T,eAAA7T,QAAA2J,OAAAA,MAAA3J,EAAA,EAAA;AAtBD,QAAAmY,kBAAwBxO;AAsBY,MAAAC;AAAA5J,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAqB9B2G,MAAA,oBAAA,OAAA,EAAU6N,KAAAA,WAAqB,UAAA,GAAC,GAAIzX,QAAA4J,OAAAA,MAAA5J,EAAA,EAAA;AAAA,MAAA8J;AAAA9J,IAAA,EAAA,MAAA6U,aAAA7U,UAAAgX,cAAAhX,EAAA,EAAA,MAAAiX,cAAAjX,EAAA,EAAA,MAAA8D,YAAA9D,EAAA,EAAA,MAAAgV,cAAAhV,EAAA,EAAA,MAAAkV,UAAAlV,EAAA,EAAA,MAAAmV,UAAAnV,EAAA,EAAA,MAAA+U,mBAAA/U,EAAA,EAAA,MAAA4E,MAAA5E,EAAA,EAAA,MAAAoV,kBAAApV,UAAAqV,WAAArV,EAAA,EAAA,MAAAuV,cAAAvV,EAAA,EAAA,MAAAyV,UAAAzV,EAAA,EAAA,MAAA4V,SACpC9L,0BAAC,cACuB+K,iCACME,6CAChBC,YACJE,QACAC,QACJvQ,IACYwQ,gBACPC,SACDE,oBACAyB,oBACHW,cACGlC,QACAwB,oBACDrB,iBAGT,GAAa5V,QAAA6U,WAAA7U,QAAAgX,YAAAhX,QAAAiX,YAAAjX,QAAA8D,UAAA9D,QAAAgV,YAAAhV,QAAAkV,QAAAlV,QAAAmV,QAAAnV,QAAA+U,iBAAA/U,QAAA4E,IAAA5E,QAAAoV,gBAAApV,QAAAqV,SAAArV,QAAAuV,YAAAvV,QAAAyV,QAAAzV,QAAA4V,OAAA5V,QAAA8J,OAAAA,MAAA9J,EAAA,EAAA;AAAA,MAAAkK;AAAAlK,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEbiH,MAAA,oBAAA,OAAA,EAAUwN,KAAAA,YAAsB,UAAA,GAAC,GAAI1X,QAAAkK,OAAAA,MAAAlK,EAAA,EAAA;AAAA,MAAAmK;AAAAnK,YAAAmX,WAAAnX,EAAA,EAAA,MAAA8X,eAAA9X,EAAA,EAAA,MAAAmY,mBAAAnY,UAAA4E,MAAA5E,EAAA,EAAA,MAAAmW,WAAAnW,EAAA,EAAA,MAAA+W,cAAA/W,EAAA,EAAA,MAAAiI,WAAAjI,UAAAmT,YAAAnT,EAAA,EAAA,MAAA8C,OAAA9C,EAAA,EAAA,MAAAwH,aAAAxH,UAAA8J,OAAA9J,EAAA,EAAA,MAAAkX,WArCvC/M,2BAAC,cAAA,EAAY,GACP3C,WACM2P,UAAAA,SACAlP,UAAAA,SACCkL,WAAAA,UACMgD,mBAAAA,SACjB,cAAA,IACQ,WAAA,UACJvR,IACQmS,YACHoB,0BACAL,sBACJhV,KACA,MAAA,UACIoU,SAGTtN,UAAAA;AAAAA,IAAAA;AAAAA,IACAE;AAAAA,IAmBAI;AAAAA,EAAAA,EAAAA,CACF,GAAelK,QAAAmX,SAAAnX,QAAA8X,aAAA9X,QAAAmY,iBAAAnY,QAAA4E,IAAA5E,QAAAmW,SAAAnW,QAAA+W,YAAA/W,QAAAiI,SAAAjI,QAAAmT,UAAAnT,QAAA8C,KAAA9C,QAAAwH,WAAAxH,QAAA8J,KAAA9J,QAAAkX,SAAAlX,QAAAmK,OAAAA,MAAAnK,EAAA,EAAA;AAAA,MAAA4K;AAAA,SAAA5K,EAAA,EAAA,MAAAuV,cAAAvV,UAAAmK,OAvCjBS,MAAA,oBAAC,QAAA,EAAwB2K,iBAAAA,YACvBpL,UAAAA,IAAAA,CAuCF,GAASnK,QAAAuV,YAAAvV,QAAAmK,KAAAnK,QAAA4K,OAAAA,MAAA5K,EAAA,EAAA,GAxCT4K;AAwCS,CAEZ;AACD8L,OAAOvS,cAAc;AC1Zd,SAAAiU,eAAA1U,OAAA;AAAA,QAAA1D,IAAAC,EAAA,CAAA,GACL;AAAA,IAAA6D;AAAAA,IAAAqP;AAAAA,IAAA+D;AAAAA,EAAAA,IAAsCxT;AAAK,MAAAxD;AAAAF,IAAA,CAAA,MAAAmT,YAAAnT,SAAAkX,WAGlChX,KAAA;AAAA,IAAAuT,SAAA;AAAA,IAAAN;AAAAA,IAAA+D;AAAAA,EAAAA,GAINlX,OAAAmT,UAAAnT,OAAAkX,SAAAlX,OAAAE,MAAAA,KAAAF,EAAA,CAAA;AALH,QAAAqY,eACSnY;AAMR,MAAAiB;AAAA,SAAAnB,EAAA,CAAA,MAAA8D,YAAA9D,SAAAqY,gBAEMlX,KAAA,oBAAA,cAAA,UAAA,EAA+BkX,OAAAA,cAAevU,SAAAA,CAAS,GAAyB9D,OAAA8D,UAAA9D,OAAAqY,cAAArY,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA,GAAhFmB;AAAgF;AAGzFiX,eAAejU,cAAc;AC4BtB,MAAMmU,aAAahS,WAAW,SAAA5C,OAAA6C,cAAA;AAAA,QAAAvG,IAAAC,EAAA,EAAA,GAInC;AAAA,IAAAsY,uCAAArY;AAAAA,IAAAY,iBAAA0X;AAAAA,IAAAC,QAAAC;AAAAA,IAAA9T;AAAAA,IAAA+T,MAAAC;AAAAA,IAAAvD;AAAAA,IAAAwD;AAAAA,IAAAC,WAAAC;AAAAA,IAAAC,eAAAC;AAAAA,IAAA3D,QAAAnU;AAAAA,IAAA+G;AAAAA,IAAAgR,eAAAC;AAAAA,IAAAC,iBAAAC;AAAAA,EAAAA,IAcI3V,OAbqC4V,6BAAApZ,OAAkCa,cAAlCb,IAS/BqZ,oBAAApY,OAAwBJ,cAAxBI,IAKV,CAAAiQ,MAAAC,OAAA,IAAwBnQ,WAAc,GACtC,CAAAsY,aAAAC,cAAA,IAAsCvY,aAAsC,GAC5E,CAAAwY,eAAAC,gBAAA,IAA0CzY,aAAuC;AAAC,MAAAM;AAAAxB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACbzB,KAAA,CAAA,GAAExB,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA;AAAvE,QAAA,CAAA4Z,cAAAC,oBAAA,IAA6C3Y,SAAwBM,EAAE,GACvEsY,UAAgBvY,OAAgB6P,IAAI;AAAC,MAAA3P,IAAAO;AAAAhC,IAAA,CAAA,MAAA6Y,UAAA7Y,SAAAoR,QAG3B3P,KAAAA,MAAA;AACJoX,cAAUzH,QAAI,CAAK0I,QAAOnY,WAC5BkX,OAAAA;AAAAA,EAAQ,GAET7W,KAAA,CAAC6W,QAAQzH,IAAI,GAACpR,OAAA6Y,QAAA7Y,OAAAoR,MAAApR,OAAAyB,IAAAzB,OAAAgC,OAAAP,KAAAzB,EAAA,CAAA,GAAAgC,KAAAhC,EAAA,CAAA,IAJjB+B,UAAUN,IAIPO,EAAc;AAAC,MAAAC,IAAAyF;AAAA1H,IAAA,CAAA,MAAAqV,WAAArV,SAAAoR,QAGRnP,KAAAA,MAAA;AACJoT,eAAO,CAAKjE,QAAQ0I,QAAOnY,WAC7B0T,QAAAA;AAAAA,EAAS,GAEV3N,KAAA,CAAC2N,SAASjE,IAAI,GAACpR,OAAAqV,SAAArV,OAAAoR,MAAApR,OAAAiC,IAAAjC,OAAA0H,OAAAzF,KAAAjC,EAAA,CAAA,GAAA0H,KAAA1H,EAAA,CAAA,IAJlB+B,UAAUE,IAIPyF,EAAe;AAAC,MAAAc,IAAAC;AAAAzI,WAAAoR,QAET5I,KAAAA,MAAA;AACRsR,YAAOnY,UAAWyP;AAAAA,EAAI,GACrB3I,MAAC2I,IAAI,GAACpR,OAAAoR,MAAApR,QAAAwI,IAAAxI,QAAAyI,OAAAD,KAAAxI,EAAA,EAAA,GAAAyI,KAAAzI,EAAA,EAAA,IAFT+B,UAAUyG,IAEPC,EAAM;AAAC,MAAAC;AAAA1I,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAE4ByF,KAAAA,MAAA;AACpC2I,YAAOhD,OAAU,GACjBoL,mBAAmB;AAAA,EAAC,GACrBzZ,QAAA0I,MAAAA,KAAA1I,EAAA,EAAA;AAHD,QAAA+Z,oBAA0BrR;AAGpB,MAAAG;AAAA7I,YAAAoR,QAMJvI,MAAA3D,CAAAA,UAAA;AACMkM,YAAMlM,MAAKsG,eAAAA;AAAAA,EAAiB,GACjCxL,QAAAoR,MAAApR,QAAA6I,OAAAA,MAAA7I,EAAA,EAAA;AAHH,QAAAga,kBAAwBnR;AAKvB,MAAAC;AAAA9I,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEuC6F,MAAA+B,CAAAA,YAAA;AAAA,QAGlC3F,QAAKC,QAAS,eAAeD,QAAKC,QAAS,WAAWD,QAAKC,QAAS,KAAG;AACzED,cAAKsG,kBACL6F,UAAY,GACZoI,eAAe,OAAO;AAAC;AAAA,IAAA;AAAA,QAOrBvU,QAAKC,QAAS,WAAS;AACzBD,cAAKsG,kBACL6F,UAAY,GACZoI,eAAe,MAAM;AAAC;AAAA,IAAA;AAAA,EAAA,GAIzBzZ,QAAA8I,OAAAA,MAAA9I,EAAA,EAAA;AApBD,QAAAia,sBAA4BnR;AAoBtB,MAAAY;AAAA1J,IAAA,EAAA,MAAA0Z,iBAAA1Z,UAAA4Z,gBAGJlQ,MAAA6B,CAAAA,YAAA;AACE,UAAAnJ,SAAe8C,QAAK9C;AAAO,QAErBA,kBAAMC,QAIRqX,EAAAA,kBAAkBtX,WAAWsX,iBAAiBA,cAAanb,SAAU6D,MAAM,KAAE;AAAA,iBAI5E7B,MAAYqZ;AAAY,YACvBxX,WAAW7B,MAAMA,GAAEhC,SAAU6D,MAAM;AAAC;AAK1CiP,gBAAa;AAAA,IAAA;AAAA,EAAC,GACfrR,QAAA0Z,eAAA1Z,QAAA4Z,cAAA5Z,QAAA0J,OAAAA,MAAA1J,EAAA,EAAA;AAnBH,QAAAka,yBAA+BxQ;AAqB9B,MAAAC;AAAA3J,IAAA,EAAA,MAAA0Z,iBAAA1Z,UAAAsZ,8BAEoC3P,MAAAA,MAAA;AACnC0H,cAAa,GACTiI,CAAAA,8BACAI,iBAAeA,cAAara,MAAAA;AAAAA,EAAQ,GACzCW,QAAA0Z,eAAA1Z,QAAAsZ,4BAAAtZ,QAAA2J,OAAAA,MAAA3J,EAAA,EAAA;AAJD,QAAAma,mBAAyBxQ;AAIsB,MAAAC;AAAA5J,YAAA4Z,gBAG7ChQ,MAAAwC,CAAAA,YAAA;AACE,UAAAoK,WAAetR,QAAKkV;AAAc,QAE5BhY,oBAAMC,MAAgB;AAAA,iBAIvBP,QAAY8X;AAAY,YACvBrZ,SAAO6B,YAAU7B,KAAEhC,SAAU6D,QAAM;AAAC;AAK1CiP,gBAAa;AAAA,IAAA;AAAA,EAAC,GACfrR,QAAA4Z,cAAA5Z,QAAA4J,OAAAA,MAAA5J,EAAA,EAAA;AAfH,QAAAqa,aAAmBzQ;AAiBlB,MAAAE;AAAA9J,IAAA,EAAA,MAAA0Z,iBAAA1Z,UAAAsZ,8BAEmCxP,MAAAA,MAAA;AAClCuH,cAAa,GACTiI,CAAAA,8BACAI,iBAAeA,cAAara,MAAAA;AAAAA,EAAQ,GACzCW,QAAA0Z,eAAA1Z,QAAAsZ,4BAAAtZ,QAAA8J,OAAAA,MAAA9J,EAAA,EAAA;AAJD,QAAAsa,kBAAwBxQ;AAIuB,MAAAI;AAAAlK,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEXiH,MAAA5H,CAAAA,UAClCuX,qBAAoBU,CAAAA,QAAUA,IAAG/P,OAAA,CAASjK,IAAE,CAAC,CAAC,GAAC,MAElCsZ,qBAAoBW,CAAAA,UAAUD,MAAG5Z,OAAA8Z,SAAiBA,QAAQla,IAAE,CAAC,IAC3EP,QAAAkK,OAAAA,MAAAlK,EAAA,EAAA;AAJD,QAAA0a,kBAAwBxQ;AAIlB,MAAAC;AAAAnK,IAAA,EAAA,MAAA0Z,iBAAA1Z,EAAA,EAAA,MAAAqa,cAAAra,EAAA,EAAA,MAAAsa,mBAAAta,EAAA,EAAA,MAAAka,0BAAAla,EAAA,EAAA,MAAAma,oBAAAna,EAAA,EAAA,MAAA4E,MAAA5E,EAAA,EAAA,MAAA4Y,YAAA5Y,UAAAwZ,eAaOrP,MAAAyO,YAAYjJ,aAAaiJ,UAXtC;AAAA,IAAA,mBACqBhU;AAAAA,IAAE,eACJyV;AAAAA,IAAU,gBACTH;AAAAA,IAAsB,UAC5BC;AAAAA,IAAgB,aACbG;AAAAA,IAAe,eACbZ;AAAAA,IAAagB;AAAAA,IAAAlB;AAAAA,EAAAA,CAKyB,GAACxZ,QAAA0Z,eAAA1Z,QAAAqa,YAAAra,QAAAsa,iBAAAta,QAAAka,wBAAAla,QAAAma,kBAAAna,QAAA4E,IAAA5E,QAAA4Y,UAAA5Y,QAAAwZ,aAAAxZ,QAAAmK,OAAAA,MAAAnK,EAAA,EAAA;AAA1D,QAAA2Y,OAAaxO;AAA6C,MAAAS;AAAA5K,IAAA,EAAA,MAAA0Y,cAAA1Y,EAAA,EAAA,MAAAga,mBAAAha,EAAA,EAAA,MAAA4E,MAAA5E,UAAAoR,QAItDxG,MAAA8N,cACA/I,aAAa+I,YAAU;AAAA,IAAA,WACV;AAAA,IAAY9T;AAAAA,IAAA,SAEZmV;AAAAA,IAAiB,WACfE;AAAAA,IAAmB,aACjBD;AAAAA,IAAe,iBAAA;AAAA,IAAA,iBAEb5I;AAAAA,IAAI,KACduI;AAAAA,IAAgB,UACXjB,WAAUhV,MAAAoB,YAAmBsM;AAAAA,EAAAA,CAC1C,GAACpR,QAAA0Y,YAAA1Y,QAAAga,iBAAAha,QAAA4E,IAAA5E,QAAAoR,MAAApR,QAAA4K,OAAAA,MAAA5K,EAAA,EAAA;AAbN,QAAAyY,SAEI7N;AAaH,MAAAO,KAAAG;AAAAtL,YAAA0Z,iBAKCvO,MAAAA,MAAMuO,eACNpO,OAACoO,aAAa,GAAC1Z,QAAA0Z,eAAA1Z,QAAAmL,KAAAnL,QAAAsL,QAAAH,MAAAnL,EAAA,EAAA,GAAAsL,MAAAtL,EAAA,EAAA,IAHjBkD,oBACEqD,cACA4E,KACAG,GACF;AAAC,MAAAa;AAAAnM,YAAAkI,WAWOiE,MAAAjE,WAAO,CAAA,GAAMlI,QAAAkI,SAAAlI,QAAAmM,OAAAA,MAAAnM,EAAA,EAAA;AAAA,MAAAuM;AAAAvM,IAAA,EAAA,MAAAwY,8BAAAxY,EAAA,EAAA,MAAA+Y,wBAAA/Y,EAAA,EAAA,MAAAmZ,4BAAAnZ,UAAAiZ,4BAAAjZ,EAAA,EAAA,MAAAuZ,qBAAAvZ,EAAA,EAAA,MAAAqZ,8BAAArZ,EAAA,EAAA,MAAAmM,OARZI,MAAA;AAAA,IAAAzL,iBACY0X;AAAAA,IAA0BmC,UACjC;AAAA,IAAM7B,WACLC;AAAAA,IAAoBzD,QACvBiE;AAAAA,IAAiBH,iBACRC;AAAAA,IAA0BlR,QACnCgR;AAAAA,IAAwB1D,QACxBwD;AAAAA,IAAwB,GAC5B9M;AAAAA,EAAAA,GACLnM,QAAAwY,4BAAAxY,QAAA+Y,sBAAA/Y,QAAAmZ,0BAAAnZ,QAAAiZ,0BAAAjZ,QAAAuZ,mBAAAvZ,QAAAqZ,4BAAArZ,QAAAmM,KAAAnM,QAAAuM,OAAAA,MAAAvM,EAAA,EAAA;AAVH,QAAA4a,eACSrO;AAmBR,MAAAE;AAAAzM,YAAAyY,UAIIhM,MAAAgM,4CAAM,GAASzY,QAAAyY,QAAAzY,QAAAyM,OAAAA,MAAAzM,EAAA,EAAA;AAAA,MAAA4M;AAAA,SAAA5M,EAAA,EAAA,MAAA2Y,QAAA3Y,EAAA,EAAA,MAAAoR,QAAApR,EAAA,EAAA,MAAA4a,gBAAA5a,UAAAyM,OADlBG,MAAA,oBAAC,WAAgB,WAAA,uBAAqB,GAAKgO,cAAuBjC,SAAAA,MAAYvH,MAC3E3E,UAAAA,IAAAA,CACH,GAAUzM,QAAA2Y,MAAA3Y,QAAAoR,MAAApR,QAAA4a,cAAA5a,QAAAyM,KAAAzM,QAAA4M,OAAAA,MAAA5M,EAAA,EAAA,GAFV4M;AAEU,CAEb;AACD0L,WAAWnU,cAAc;AA7MY,SAAAkK,QAAAjD,GAAA;AAAA,SAAA,CA4CjBA;AAAC;ACxGrB,MAAMyP,WAAWrW;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GASXsW,YAAYxH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,oBAYEuH,QAAQ;AAAA;AAAA;AAAA;AAAA,GAUfE,gBAAgBzH;AAAAA,aAChB,CAAC;AAAA,EAAC0H;AAAQ,MAAOA,WAAW,IAAI,CAAE;AAAA;AAAA;AAAA;AAAA,MAIzC,CAAC;AAAA,EAACC;AAAS,MACXA,YACIH,YACAxH;AAAAA;AAAAA,WAEC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCnCL4H,mBAAiBlX,uBAAOM,GAAG,EAACJ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,EAEhC+W,uBAAuBJ,aAAa,GAezBK,WAAW9U,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,EAAA;AAAA,MAAAob,OAAAlT,QAAAX,WAAAtH;AAAAF,WAAA0D,SAIjC;AAAA,IAAA4X,UAAApb;AAAAA,IAAAmb;AAAAA,IAAAlT;AAAAA,IAAA,GAAAX;AAAAA,EAAAA,IAAwD9D,OAAK1D,OAAA0D,OAAA1D,OAAAqb,OAAArb,OAAAmI,QAAAnI,OAAAwH,WAAAxH,OAAAE,OAAAmb,QAAArb,EAAA,CAAA,GAAAmI,SAAAnI,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAtD,QAAAsb,WAAApb,OAAgBa,cAAhBb,IACP,CAAAqb,SAAAC,UAAA,IAA8Bta,SAAkBma,CAAAA,KAAoB;AAAC,MAAAla,IAAAK;AAAAxB,WAAAqb,SAE3Dla,KAAAA,MAAA;AAAA,QAAA,CACHka;AAAK;AAIV,UAAAI,UAAgBzW,WAAA,MAAA;AACdwW,mBAAe;AAAA,IAAC,GACfH,KAAK;AAAC,WAAA,MAAA;AAGPrD,mBAAayD,OAAO;AAAA,IAAC;AAAA,EAAA,GAEtBja,MAAC6Z,KAAK,GAACrb,OAAAqb,OAAArb,OAAAmB,IAAAnB,OAAAwB,OAAAL,KAAAnB,EAAA,CAAA,GAAAwB,KAAAxB,EAAA,CAAA,IAZV+B,UAAUZ,IAYPK,EAAO;AAAC,MAAAC;AAAAzB,WAAAmI,UAME1G,KAAAtB,cAAcgI,MAAM,GAACnI,OAAAmI,QAAAnI,OAAAyB,MAAAA,KAAAzB,EAAA,CAAA;AACpB,QAAAgC,KAAAqZ,QAAQE,UAAO;AAAO,MAAAtZ;AAAA,SAAAjC,EAAA,EAAA,MAAAsb,YAAAtb,EAAA,EAAA,MAAA8C,OAAA9C,EAAA,EAAA,MAAAwH,aAAAxH,EAAA,EAAA,MAAAyB,MAAAzB,UAAAgC,MAJlCC,KAAA,oBAACiZ,kBAAA,EAAc,GACT1T,WACO8T,WAAAA,UACF,SAAA7Z,IACC,UAAAO,IACLc,IAAAA,CAAG,GACR9C,QAAAsb,UAAAtb,QAAA8C,KAAA9C,QAAAwH,WAAAxH,QAAAyB,IAAAzB,QAAAgC,IAAAhC,QAAAiC,MAAAA,KAAAjC,EAAA,EAAA,GANFiC;AAME,CAEL;AACDmZ,SAASjX,cAAc;ACjDvB,MAAM+W,iBAAiBlX,uBAAOoX,QAAQ,EAAClX,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,EACrCV,CAAAA,UAIG;AACH,QAAM;AAAA,IAACgY;AAAAA,IAAOC;AAAAA,EAAAA,IAAUjY,OAClB;AAAA,IAACkY;AAAAA,IAAM5I;AAAAA,EAAAA,IAASJ,YAAYlP,MAAMgP,KAAK,GACvCmJ,YAAYD,KAAKD,MAAM;AAS7B,SAPe1I,YAAYD,OAAO0I,OAAQI,CAAAA,cAAc;AACtD,UAAMhU,WAAW+T,UAAUE,MAAMD,SAAS;AAG1C,WAAO;AAAA,MAACE,QAFUlU,SAASmU,aAAanU,SAASoU,iBAAiBpU,SAASqU;AAAAA,IAAAA;AAAAA,EAG7E,CAAC;AAGH,CAAC,GAsCYC,eAAe9V,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,CAAA;AAAA,MAAAuH,WAAAtH;AAAAF,WAAA0D,SAKrC;AAAA,IAAA2Y,MAAAnc;AAAAA,IAAA,GAAAsH;AAAAA,EAAAA,IAAiC9D,OAAK1D,OAAA0D,OAAA1D,OAAAwH,WAAAxH,OAAAE,OAAAsH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAA/B,QAAAqc,OAAAnc,OAAQa,aAARb;AAAQ,MAAAiB;AAAAnB,WAAAqc,QACDlb,KAAAhB,cAAckc,IAAI,GAACrc,OAAAqc,MAAArc,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAjC,QAAA0b,QAAcva;AAAmB,MAAAK;AAAA,SAAAxB,EAAA,CAAA,MAAA0b,SAAA1b,SAAA8C,OAAA9C,EAAA,CAAA,MAAAwH,aAE1BhG,yBAAC,kBAAc,GAAKgG,WAAkBkU,OAAY5Y,KAAY,QAAA,OAAA,CAAM,GAAG9C,OAAA0b,OAAA1b,OAAA8C,KAAA9C,OAAAwH,WAAAxH,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA,GAAvEwB;AAAuE,CAC/E;AACD4a,aAAajY,cAAc;AAMpB,MAAMmY,gBAAgBhW,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,CAAA;AAAA,MAAAuH,WAAAtH;AAAAF,WAAA0D,SAKtC;AAAA,IAAA2Y,MAAAnc;AAAAA,IAAA,GAAAsH;AAAAA,EAAAA,IAAiC9D,OAAK1D,OAAA0D,OAAA1D,OAAAwH,WAAAxH,OAAAE,OAAAsH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAA/B,QAAAqc,OAAAnc,OAAQa,aAARb;AAAQ,MAAAiB;AAAAnB,WAAAqc,QACDlb,KAAAhB,cAAckc,IAAI,GAACrc,OAAAqc,MAAArc,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAjC,QAAA0b,QAAcva;AAAmB,MAAAK;AAAA,SAAAxB,EAAA,CAAA,MAAA0b,SAAA1b,SAAA8C,OAAA9C,EAAA,CAAA,MAAAwH,aAE1BhG,yBAAC,kBAAc,GAAKgG,WAAkBkU,OAAY5Y,KAAY,QAAA,QAAA,CAAO,GAAG9C,OAAA0b,OAAA1b,OAAA8C,KAAA9C,OAAAwH,WAAAxH,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA,GAAxEwB;AAAwE,CAChF;AACD8a,cAAcnY,cAAc;AAMrB,MAAMoY,kBAAkBjW,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,CAAA;AAAA,MAAAuH,WAAAtH;AAAAF,WAAA0D,SAKxC;AAAA,IAAA2Y,MAAAnc;AAAAA,IAAA,GAAAsH;AAAAA,EAAAA,IAAiC9D,OAAK1D,OAAA0D,OAAA1D,OAAAwH,WAAAxH,OAAAE,OAAAsH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAA/B,QAAAqc,OAAAnc,OAAQa,aAARb;AAAQ,MAAAiB;AAAAnB,WAAAqc,QACDlb,KAAAhB,cAAckc,IAAI,GAACrc,OAAAqc,MAAArc,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAjC,QAAA0b,QAAcva;AAAmB,MAAAK;AAAA,SAAAxB,EAAA,CAAA,MAAA0b,SAAA1b,SAAA8C,OAAA9C,EAAA,CAAA,MAAAwH,aAE1BhG,yBAAC,kBAAc,GAAKgG,WAAkBkU,OAAY5Y,KAAY,QAAA,UAAA,CAAS,GAAG9C,OAAA0b,OAAA1b,OAAA8C,KAAA9C,OAAAwH,WAAAxH,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA,GAA1EwB;AAA0E,CAClF;AACD+a,gBAAgBpY,cAAc;AAMvB,MAAMqY,eAAelW,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,CAAA;AAAA,MAAAuH,WAAAtH;AAAAF,WAAA0D,SAKrC;AAAA,IAAA2Y,MAAAnc;AAAAA,IAAA,GAAAsH;AAAAA,EAAAA,IAAiC9D,OAAK1D,OAAA0D,OAAA1D,OAAAwH,WAAAxH,OAAAE,OAAAsH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAA/B,QAAAqc,OAAAnc,OAAQa,aAARb;AAAQ,MAAAiB;AAAAnB,WAAAqc,QACDlb,KAAAhB,cAAckc,IAAI,GAACrc,OAAAqc,MAAArc,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAjC,QAAA0b,QAAcva;AAAmB,MAAAK;AAAA,SAAAxB,EAAA,CAAA,MAAA0b,SAAA1b,SAAA8C,OAAA9C,EAAA,CAAA,MAAAwH,aAE1BhG,yBAAC,kBAAc,GAAKgG,WAAkBkU,OAAY5Y,KAAY,QAAA,OAAA,CAAM,GAAG9C,OAAA0b,OAAA1b,OAAA8C,KAAA9C,OAAAwH,WAAAxH,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA,GAAvEwB;AAAuE,CAC/E;AACDgb,aAAarY,cAAc;ACvGpB,MAAMsY,WAAWnW,WAAW,SAAA5C,OAAAZ,KAAA;AAAA,QAAA9C,IAAAC,EAAA,CAAA;AAAA,MAAAyc,MAAAlV;AAAAxH,WAAA0D,SAKjC;AAAA,IAAAgZ;AAAAA,IAAA,GAAAlV;AAAAA,EAAAA,IAA6B9D,OAAK1D,OAAA0D,OAAA1D,OAAA0c,MAAA1c,OAAAwH,cAAAkV,OAAA1c,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA;AASpB,QAAAE,KAAAwD,MAAKjF,aAAAsC,SAAuB,IAAO2C,MAAKjF;AAAS,MAAA0C;AAAA,SAAAnB,SAAA0c,QAAA1c,EAAA,CAAA,MAAA0D,MAAAI,YAAA9D,EAAA,CAAA,MAAA8C,OAAA9C,EAAA,CAAA,MAAAwH,aAAAxH,SAAAE,MAN7DiB,yBAAC,KAAA,EACS,WAAA,YAAU,GACdqG,WACEkV,MACD5Z,KACA,MAAA,YACK,UAAA5C,IAETwD,UAAAA,MAAKI,SAAAA,CACR,GAAM9D,OAAA0c,MAAA1c,EAAA,CAAA,IAAA0D,MAAAI,UAAA9D,OAAA8C,KAAA9C,OAAAwH,WAAAxH,OAAAE,IAAAF,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA,GATNmB;AASM,CAET;AACDsb,SAAStY,cAAc;AChCvB,MAAMwY,qBAAqB,GAEdC,mBAAmB;AAAA,EAC9BtZ,OAAO;AAAA,EACPuZ,SAAS;AAAA,EACTC,SAAS;AAAA,EACTrZ,MAAM;AACR,GAEasZ,cAAc;AAAA,EACzBzZ,OAAO;AAAA,EACPuZ,SAAS;AAAA,EACTC,SAAS;AAAA,EACTrZ,MAAM;AACR,GAEauZ,UAAUhZ,OAAOuQ,IAAI,EAACrQ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,qBAItB6Y,cAAcjZ,OAAOqQ,IAAI,EAACnQ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,2HAQZuY,kBAAkB,aAIhCO,aAAalZ,OAAOC,IAAGC,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,uMAgBvB+Y,iBAAiBnZ,OAAOqQ,IAAI,EAACnQ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,kCAG/BuY,kBAAkB,aACjBA,kBAAkB,aAClBA,kBAAkB,iBAOjBS,qBAAqBpZ,OAAqDqQ,IAAI,EAACnQ,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,kFAKrEV,CAAAA,UAAU;AAC7B,QAAM;AAAA,IAACiP;AAAAA,EAAAA,IAASC,YAAYlP,MAAMgP,KAAK;AAEvC,SAAOC,MAAM8F,OAAO4E,QAAQ3Z,MAAM4Z,IAAI,EAAEC,QAAQC;AAClD,CAAC,KC9CGC,QAAQ;AAAA,EACZna,OAAO;AAAA,EACPuZ,SAAS;AAAA,EACTC,SAAS;AAAA,EACTrZ,MAAM;AACR,GAIMia,+BAA+B,MAAO,KAAK,KAAK,KAAK;AASpD,SAAAC,MAAAja,OAAA;AAAA,QAAA1D,IAAAC,EAAA,EAAA;AAAA,MAAA2d,UAAAC,aAAAC,UAAAzI,SAAA7N,WAAAuW,QAAA7d,IAAA8d,OAAAC;AAAAje,WAAA0D,SAcL;AAAA,IAAAka;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAzI;AAAAA,IAAAlN,QAAAjI;AAAAA,IAAA8d;AAAAA,IAAAD;AAAAA,IAAAE;AAAAA,IAAA,GAAAzW;AAAAA,EAAAA,IAUI9D,OAAK1D,OAAA0D,OAAA1D,OAAA4d,UAAA5d,OAAA6d,aAAA7d,OAAA8d,UAAA9d,OAAAqV,SAAArV,OAAAwH,WAAAxH,OAAA+d,QAAA/d,OAAAE,IAAAF,OAAAge,OAAAhe,OAAAie,cAAAL,WAAA5d,EAAA,CAAA,GAAA6d,cAAA7d,EAAA,CAAA,GAAA8d,WAAA9d,EAAA,CAAA,GAAAqV,UAAArV,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA,GAAA+d,SAAA/d,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAge,QAAAhe,EAAA,CAAA,GAAAie,YAAAje,EAAA,CAAA;AALP,QAAAmI,SAAAjI,OAAUa,aAAVb,IAMFge,WAAiBH,SAAMnB,iBAAoBmB,MAAM,IAAI,WACrDI,aAAmBJ,SAAMhB,YAAegB,MAAM,IAAI,WAClDK,OAAaL,SAAMN,MAASM,MAAM,IAAI,UAItCM,iBAF6B7G,wBAAAA,IAEsB,IAAA;AAAW,MAAArW;AAAAnB,YAAAqe,kBAC3Cld,KAAAkd,iBAAc;AAAA,IAAAtf,MACtB;AAAA,IAAQsf;AAAAA,IAAAC,QAAA;AAAA,EAAA,IAAA;AAAA,IAAAR,UAAA;AAAA,EAAA,GACF9d,QAAAqe,gBAAAre,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA;AAFjB,QAAAue,aAAmBpd,IAInBqd,cAAoBV,YAAYW,SAASX,QAAQ,KAAKA,WAAQJ;AAA+B,MAAAlc;AAAAxB,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACxDzB,KAAA,CAAC,UAAU,SAAS,GAACxB,QAAAwB,MAAAA,KAAAxB,EAAA,EAAA;AAA1D,QAAA0e,UAAqCld;AAAqB,MAAAC;AAAAzB,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACrBxB,KAAA,CAAC,WAAW,SAAS,GAACzB,QAAAyB,MAAAA,KAAAzB,EAAA,EAAA;AAA3D,QAAAmX,UAAqC1V;AAAsB,MAAAO;AAAAhC,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACzBjB,KAAA,CAAC,UAAU,UAAU,GAAChC,QAAAgC,MAAAA,KAAAhC,EAAA,EAAA;AAAxD,QAAA2e,OAAkC3c,IAOXC,KAAAuc,cAAc,KAAEzd;AAAY,MAAA2G;AAAA1H,YAAAge,SAgBxCtW,KAAAsW,SACC,oBAAC,MAAA,EAAW,MAAA,GAAU,QAAA,2BAEtB,GACDhe,QAAAge,OAAAhe,QAAA0H,MAAAA,KAAA1H,EAAA,EAAA;AAAA,MAAAwI;AAAAxI,IAAA,EAAA,MAAA6d,eAAA7d,UAAAue,cACA/V,KAAAqV,eACC,oBAAC,YAAA,EAAW,OAAA,IAAY,MAAA,GAAahO,UAAAA,SAAqB0O,YACvDV,uBACH,GACD7d,QAAA6d,aAAA7d,QAAAue,YAAAve,QAAAwI,MAAAA,KAAAxI,EAAA,EAAA;AAAA,MAAAyI;AAAAzI,IAAA,EAAA,MAAA0H,MAAA1H,UAAAwI,MAXLC,KAAA,oBAAC,SAAA,EAAc,MAAA,GAAY,SAAA,GACzB,UAAA,qBAAC,OAAA,EAAa,OAAA,GACXf,UAAAA;AAAAA,IAAAA;AAAAA,IAKAc;AAAAA,EAAAA,EAAAA,CAKH,GACF,GAAUxI,QAAA0H,IAAA1H,QAAAwI,IAAAxI,QAAAyI,MAAAA,KAAAzI,EAAA,EAAA;AAAA,MAAA0I;AAAA1I,IAAA,EAAA,MAAAme,cAAAne,UAAA4d,YAAA5d,EAAA,EAAA,MAAAqV,WAET3M,KAAAkV,YACC,oBAAC,KAAA,EAAa,SAAA,GACZ,UAAA,oBAAC,QAAA,EACI,IAAA,UACGnH,MAAAA,WACD,MAAA,SACI,YACH0H,MAAAA,YACG9I,kBACF,OAAA;AAAA,IAAAuJ,eAAgB;AAAA,EAAA,GAAM,GAEjC,GACD5e,QAAAme,YAAAne,QAAA4d,UAAA5d,QAAAqV,SAAArV,QAAA0I,MAAAA,KAAA1I,EAAA,EAAA;AAAA,MAAA6I;AAAA7I,IAAA,EAAA,MAAAyI,MAAAzI,UAAA0I,MAAA1I,EAAA,EAAA,MAAAue,cA5BH1V,MAAA,qBAAC,YAAA,EAAiB,OAAA,cAAuBgH,UAAAA,SAAqB0O,YAC5D9V,UAAAA;AAAAA,IAAAA;AAAAA,IAeCC;AAAAA,EAAAA,GAaH,GAAa1I,QAAAyI,IAAAzI,QAAA0I,IAAA1I,QAAAue,YAAAve,QAAA6I,OAAAA,MAAA7I,EAAA,EAAA;AAAA,MAAA8I;AAAA9I,IAAA,EAAA,MAAAke,YAAAle,EAAA,EAAA,MAAA8d,YAAA9d,EAAA,EAAA,MAAAwe,eAAAxe,EAAA,EAAA,MAAAqV,WAAArV,EAAA,EAAA,MAAAmI,UAAAnI,EAAA,EAAA,MAAAue,cAAAve,EAAA,EAAA,MAAAie,aAAAje,UAAAqe,kBACZvV,MAAA0V,oCACE,kBAAA,EAA2B3O,UAAAA,SAAqB0O,YAC/C,UAAA;AAAA,IAAA,oBAAC,gBAAA,EAAqBL,MAAAA,UAAkB/V,OAAAA;IACxC,oBAAC,0BAAA,EAEO+V,MAAAA,UACG,SAAA;AAAA,MAAAW,QAAA;AAAA,IAAA,GACA,SAAA;AAAA,MAAAA,QAAA;AAAA,IAAA,GACG,YAAA;AAAA,MAAAxD,OAAQgD;AAAAA,MAAcP,UAAYA,WAAQ;AAAA,MAAQgB,MAAQ;AAAA,IAAA,GACjDzJ,qBAAAA,QAAAA,eALJ4I,SAAS,EAKE;AAAA,EAAA,EAAA,CAEhC,GACDje,QAAAke,UAAAle,QAAA8d,UAAA9d,QAAAwe,aAAAxe,QAAAqV,SAAArV,QAAAmI,QAAAnI,QAAAue,YAAAve,QAAAie,WAAAje,QAAAqe,gBAAAre,QAAA8I,OAAAA,MAAA9I,EAAA,EAAA;AAAA,MAAA0J;AAAA,SAAA1J,EAAA,EAAA,MAAAke,YAAAle,EAAA,EAAA,MAAAmI,UAAAnI,UAAAwH,aAAAxH,EAAA,EAAA,MAAAoe,QAAApe,EAAA,EAAA,MAAA6I,OAAA7I,EAAA,EAAA,MAAA8I,OAAA9I,EAAA,EAAA,MAAAiC,MAAAjC,EAAA,EAAA,MAAAue,cAAAve,UAAAqe,kBA3DH3U,2BAAC,aAAA,EACS,WAAA,SACF0U,MAAI,GACN5W,WACe,qBAAAvF,IACXoc,QAAAA,gBACAlW,QACA,QAAA,GACF+V,MAAAA,UACM,aAAA,MACL,QAAA,YACGa,UAAAA,WACDL,SACAvH,SACHwH,MACMJ,YAEZ1V,UAAAA;AAAAA,IAAAA;AAAAA,IA8BCC;AAAAA,EAAAA,GAaH,GAAc9I,QAAAke,UAAAle,QAAAmI,QAAAnI,QAAAwH,WAAAxH,QAAAoe,MAAApe,QAAA6I,KAAA7I,QAAA8I,KAAA9I,QAAAiC,IAAAjC,QAAAue,YAAAve,QAAAqe,gBAAAre,QAAA0J,OAAAA,MAAA1J,EAAA,EAAA,GA5Dd0J;AA4Dc;AAIlBiU,MAAMxZ,cAAc;AAEpB,MAAM4a,YAAY;AAAA,EAChBL,SAAS;AAAA,IAACM,GAAG;AAAA,IAAIC,OAAO;AAAA,IAAKC,QAAQ;AAAA,EAAA;AAAA,EACrC/O,QAAQ;AAAA,IAACgP,SAAS;AAAA,EAAA;AAAA,EAClB5D,SAAU8C,oBACHA,iBAEE;AAAA,IACLc,SAAS;AAAA,IACTZ,YAAY;AAAA,MACVa,MAAM;AAAA,MACNC,iBAAiBhB,iBAAiB;AAAA,MAClCP,UAAUO,iBAAiB;AAAA,IAAA;AAAA,EAC7B,IAR0B;AAAA,IAACc,SAAS;AAAA,EAAA;AAAA,EAWxCG,SAAS;AAAA,IACPN,GAAG;AAAA,IACHC,OAAO;AAAA,EAAA;AAAA,EAETM,UAAU;AAAA,IACRL,QAAQ;AAAA,IACRD,OAAO;AAAA,EAAA;AAEX,GAGMpP,UAAU;AAAA,EACd6O,SAAS;AAAA,IACPc,YAAY;AAAA,EAAA;AAAA,EAEdrP,QAAQ;AAAA,IACNgP,SAAS;AAAA,EAAA;AAAA,EAEX5D,SAAS;AAAA,IACP4D,SAAS;AAAA,EAAA;AAEb,GAEMM,cAAcC,OAAOC,OAAO1C,WAAW,GACvC2C,aAAaF,OAAOC,OAAOpL,IAAI,GAC/BsL,aAAaH,OAAOC,OAAOG,IAAI,GAC/BC,mBAAmBL,OAAOC,OAAOzC,UAAU,GAC3C8C,2BAA2BN,OAAOC,OAAOvC,kBAAkB;AC/L1D,SAAA6C,aAAA;AAAA,SACEC,qBAAAC,WAAA9R,SAAAE,MAIP;AAAC;AALI,SAAAA,SAAA;AAAA,SAAA;AAAA;AAAA,SAAAF,UAAA;AAAA,SAAA;AAAA;AAQP,MAAM8R,YAAYA,MAAM,MAAM;AAAC,GCXlBC,eAAe5M,0BAC1B,4BACA,IACF;ACaO,SAAA6M,WAAA3c,OAAA;AAAA,QAAA1D,IAAAC,EAAA,CAAA,GACL;AAAA,IAAA6D;AAAAA,IAAAmE,SAAA/H;AAAAA,IAAAogB;AAAAA,IAAAC;AAAAA,IAAAC,KAAArf;AAAAA,EAAAA,IAA6DuC,OAA5CuE,UAAA/H,OAAWa,aAAXb,IAAiCsgB,MAAArf,OAAOJ,aAAPI,IAClD;AAAA,IAAA+d;AAAAA,EAAAA,IAAiBjJ,SAAAA;AAAU,MAAAzU;AAAAxB,WAAAkf,UAWhB1d,KAAA;AAAA,IAAA0d;AAAAA,EAAAA,GAAQlf,OAAAkf,QAAAlf,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA;AAAA,MAAAyB;AAAA,SAAAzB,SAAA8D,YAAA9D,EAAA,CAAA,MAAAwgB,OAAAxgB,EAAA,CAAA,MAAAiI,WAAAjI,EAAA,CAAA,MAAAsgB,YAAAtgB,SAAAugB,YAAAvgB,EAAA,CAAA,MAAAwB,MARjBC,KAAA,oBAAC,aAAA,EACa,aAAA,MACJ,WAAA,iBACCwG,SACCqY,UACAC,UACLC,KACI,SAAA,GACF,OAAAhf,IAENsC,SAAAA,CACH,GAAc9D,OAAA8D,UAAA9D,OAAAwgB,KAAAxgB,OAAAiI,SAAAjI,OAAAsgB,UAAAtgB,OAAAugB,UAAAvgB,OAAAwB,IAAAxB,OAAAyB,MAAAA,KAAAzB,EAAA,CAAA,GAXdyB;AAWc;AAIlB4e,WAAWlc,cAAc;AAEzB,MAAMsc,cAAczc,OAAO0c,IAAI,EAACxc,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA;ACzChC,IAAIuc,UAAU;AAGP,SAASC,kBAA0B;AACxC,SAAOC,OAAOF,SAAS;AACzB;ACwBO,SAAAG,cAAApd,OAAA;AAAA,QAAA1D,IAAAC,EAAA,EAAA,GACL;AAAA,IAAA6D;AAAAA,IAAAmE;AAAAA,IAAAqY;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAtJ,SAAAhX;AAAAA,EAAAA,IAAkEwD,OAAfwT,UAAAhX,OAAWa,aAAXb;AAAW,MAAAiB;AAAAnB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACf9B,KAAA,CAAA,GAAEnB,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAjD,QAAA,CAAAqD,OAAA0d,QAAA,IAA0B7f,SAAqBC,EAAE,GACjD6f,UAAgBf,WAAAA;AAAY,MAAAze;AAAAxB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAkDnBzB,KAAA;AAAA,IAAAiS,SAAA;AAAA,IAAA/S,MA/CPugB,CAAAA,WAAA;AACE,YAAArc,KAAWqc,OAAMrc,MAAOgc,mBACxB9C,WAAiBmD,OAAMnD,YAAA;AAEvBoD,aAAAA,gBAAA,MAAA;AACEH,iBAAQI,CAAAA,cAAA;AAAA,cAOFrD,aAAQ;AAAS,mBACZqD,UAASxgB,OAAAygB,CAAAA,UAAmBA,MAAKxc,OAAQA,EAAE;AAQpD,gBAAAyc,UAAAA,MACEH,gBAAA,MACEH,SAAQO,CAAAA,iBAAmBA,aAAY3gB,OAAA4gB,CAAAA,YAAmBH,QAAKxc,OAAQA,EAAE,CAAC,CAC5E;AAAC,iBAAA,CAAA,GASEuc,UAASxgB,OAAA6gB,aAAmBJ,QAAKxc,OAAQA,EAAE,GAAC;AAAA,YAAAyc;AAAAA,YAAAzc;AAAAA,YAAAqZ,WAIlCwD,KAAAC,IAAAA;AAAAA,YAAUT,QAAA;AAAA,cAAA,GACTA;AAAAA,cAAMnD;AAAAA,YAAAA;AAAAA,UAAA,CAAA;AAAA,QAAA,CAGvB;AAAA,MAAC,CACH,GAEMlZ;AAAAA,IAAE;AAAA,EAAA,GAGgB5E,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA;AAhD7B,QAAA+E,QAgDSvD;AACH,MAAAC;AAAAzB,IAAA,CAAA,MAAAwgB,OAAAxgB,EAAA,CAAA,MAAAghB,WAAAhhB,EAAA,CAAA,MAAAiI,WAAAjI,SAAAsgB,YAAAtgB,EAAA,CAAA,MAAAugB,YAAAvgB,EAAA,CAAA,MAAAqD,SAAArD,EAAA,CAAA,MAAAkX,WAKDzV,KAAAuf,WACC,oBAAC,iBAAuB9J,SACtB,UAAA,oBAAC,cAAoBjP,SAAmBqY,UAAoBC,UAAeC,KACzE,UAAA,oBAAC,mBAAyB,SAAA,IAAY,MAAA,aACnCnd,gBAAK+K,IAAAC,KAWL,GACH,EAAA,CACF,EAAA,CACF,GACDrO,OAAAwgB,KAAAxgB,OAAAghB,SAAAhhB,OAAAiI,SAAAjI,OAAAsgB,UAAAtgB,OAAAugB,UAAAvgB,OAAAqD,OAAArD,OAAAkX,SAAAlX,OAAAyB,MAAAA,KAAAzB,EAAA,CAAA;AAAA,MAAAgC;AAAA,SAAAhC,EAAA,EAAA,MAAA8D,YAAA9D,UAAAyB,MArBHO,KAAA,qBAAA,aAAA,UAAA,EAA8B+C,OAC3BjB,UAAAA;AAAAA,IAAAA;AAAAA,IACArC;AAAAA,EAAAA,EAAAA,CAoBH,GAAwBzB,QAAA8D,UAAA9D,QAAAyB,IAAAzB,QAAAgC,MAAAA,KAAAhC,EAAA,EAAA,GAtBxBgC;AAsBwB;AA/ErB,SAAAqM,MAAAnO,IAAA;AA+DmB,QAAA;AAAA,IAAAmhB,SAAAM;AAAAA,IAAA/c,IAAAgd;AAAAA,IAAAX,QAAAY;AAAAA,IAAA5D;AAAAA,EAAAA,IAAA/d;AAAgC,SAC1C,oBAAC,SAEW,UAAA+gB,SAAMrD,UACH,aAAAqD,SAAMpD,aACVwD,SAAAA,WACD,QAAAJ,SAAMlD,QACP,OAAAkD,SAAMjD,OACH,UAAAiD,SAAMnD,UACLG,aAPNrZ,IAOe;AACpB;AAUlBkc,cAAc3c,cAAc;ACvGrB,SAAA2d,WAAA;AACL,QAAA/c,QAAc4O,WAAAyM,YAAuB;AAAC,MAAA,CAEjCrb;AAAK,UAAA,IAAAgd,MACQ,mCAAmC;AAAA,MAMjD,CAACC,SAASjd,KAAK,KAAKA,MAAK0O,YAAA;AAAgB,UAAA,IAAAsO,MAC3B,iDAAiD;AAAA,SAG5Dhd;AAAK;ACrBP,SAASkd,qBACd5e,OACA6e,cACAnX,gBACoB;AACpB,QAAMoX,MAAMD,aAAa9b,QAAQ2E,cAAc,GACzCwP,MAAM2H,aAAa1P,MAAM,GAAG2P,GAAG,GAC/BhQ,MAAMoI,IAAI9a;AAEhB,WAASF,IAAI4S,MAAM,GAAG5S,KAAK,GAAGA,KAAK,GAAG;AACpC,UAAM6iB,UAAU7H,IAAIhb,CAAC,EAAEb,aAAa,eAAe;AAEnD,QAAI,CAAC0jB;AACH;AAGF,UAAMC,WAAWD,QAAQE,MAAM,GAAG;AAElCD,aAASE,IAAAA;AAET,UAAMC,IAAc,CAAA;AAEpB,QAAIjY,WAAW;AAEf,aAASkY,IAAI,GAAGA,IAAIJ,SAAS5iB,QAAQgjB,KAAK,GAAG;AAC3CD,QAAE9hB,KAAK2hB,SAASI,CAAC,CAAC;AAElB,YAAMC,IAAIF,EAAEG,KAAK,GAAG;AAEpB,UAAI,CAACtf,MAAMqf,CAAC,GAAGnY,UAAU;AACvBA,mBAAW;AACX;AAAA,MACF;AAAA,IACF;AAEA,QAAIA;AACF,aAAOgQ,IAAIhb,CAAC;AAAA,EAEhB;AAEA,SAAO;AACT;AAEO,SAASqjB,qBACdvf,OACA6e,cACAnX,gBACoB;AACpB,QAAMoX,MAAMD,aAAa9b,QAAQ2E,cAAc,GACzCwP,MAAM2H,aAAa1P,MAAM2P,GAAG,GAC5BhQ,MAAM+P,aAAaziB;AAEzB,WAASF,IAAI,GAAGA,IAAI4S,KAAK5S,KAAK,GAAG;AAC/B,QAAI,CAACgb,IAAIhb,CAAC;AACR;AAGF,UAAM6iB,UAAU7H,IAAIhb,CAAC,EAAEb,aAAa,eAAe;AAEnD,QAAI,CAAC0jB;AACH;AAGF,UAAMC,WAAWD,QAAQE,MAAM,GAAG;AAElCD,aAASE,IAAAA;AAET,UAAMC,IAAc,CAAA;AAEpB,QAAIjY,WAAW;AAEf,aAASkY,IAAI,GAAGA,IAAIJ,SAAS5iB,QAAQgjB,KAAK,GAAG;AAC3CD,QAAE9hB,KAAK2hB,SAASI,CAAC,CAAC;AAElB,YAAMC,IAAIF,EAAEG,KAAK,GAAG;AAEpB,UAAI,CAACtf,MAAMqf,CAAC,GAAGnY,UAAU;AACvBA,mBAAW;AACX;AAAA,MACF;AAAA,IACF;AAEA,QAAIA;AACF,aAAOgQ,IAAIhb,CAAC;AAAA,EAEhB;AAEA,SAAO;AACT;AAEO,SAASsjB,kBAAkBtiB,IAAuB;AAKvD,MAJIA,GAAG7B,aAAa,MAAM,MAAM,cAC9B6B,GAAGlB,MAAAA,GAGDkB,GAAG7B,aAAa,MAAM,MAAM,QAAQ;AACtC,UAAMokB,aAAaviB,GAAGuiB;AAElBA,kBAAcA,sBAAsB9X,eACtC8X,WAAWzjB,MAAAA;AAAAA,EAEf;AACF;AClGO,MAAM0jB,cAAcvP,0BACzB,2BACA,IACF,GCkBawP,OAAO1c,WAAW,SAAA5C,OAAA6C,cAAA;AAAA,QAAAvG,IAAAC,EAAA,EAAA;AAAA,MAAA6D,UAAAgD,SAAAU,WAAAtH;AAAAF,WAAA0D,SAK7B;AAAA,IAAAI;AAAAA,IAAAoN,OAAAhR;AAAAA,IAAA4G;AAAAA,IAAA,GAAAU;AAAAA,EAAAA,IAAqD9D,OAAK1D,OAAA0D,OAAA1D,OAAA8D,UAAA9D,OAAA8G,SAAA9G,OAAAwH,WAAAxH,OAAAE,OAAA4D,WAAA9D,EAAA,CAAA,GAAA8G,UAAA9G,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAzC,QAAAkR,QAAAhR,OAASa,aAATb,IACjB4C,MAAYvB,OAAA,IAAkC,GAC9C,CAAAwJ,gBAAAkY,iBAAA,IAA4C/hB,aAAiC,GAC7E0W,oBAA0BrW,OAAOwJ,cAAc;AAAC,MAAA5J;AAAAnB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACX9B,KAAA,CAAA,GAAEnB,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAvC,QAAAkjB,OAAqC/hB;AAAO,MAAAK;AAAAxB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACoBzB,KAAA,CAAA,GAAExB,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA;AAAlE,QAAA,CAAAkiB,cAAAiB,eAAA,IAAwCjiB,SAAwBM,EAAE;AAAC,MAAAC;AAAAzB,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KACrBxB,KAAA,CAAA,GAAEzB,OAAAyB,MAAAA,KAAAzB,EAAA,CAAA;AAAhD,QAAA,CAAAqD,OAAA0d,QAAA,IAA0B7f,SAAoBO,EAAE,GAChD2hB,WAAiB7hB,OAAO8B,KAAK;AAAC,MAAArB;AAAAhC,IAAA,CAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAEkDjB,KAAAA,MAAMc,IAAGnB,SAAQ3B,OAAAgC,MAAAA,KAAAhC,EAAA,CAAA,GAAjGkD,oBAAkEqD,cAAcvE,EAAiB;AAAC,MAAAC,IAAAyF;AAAA1H,WAAA+K,kBAExF9I,KAAAA,MAAA;AACR2V,sBAAiBjW,UAAWoJ;AAAAA,EAAc,GACzCrD,MAACqD,cAAc,GAAC/K,OAAA+K,gBAAA/K,QAAAiC,IAAAjC,QAAA0H,OAAAzF,KAAAjC,EAAA,EAAA,GAAA0H,KAAA1H,EAAA,EAAA,IAFnB+B,UAAUE,IAEPyF,EAAgB;AAAC,MAAAc,IAAAC;AAAAzI,YAAAqD,SAEVmF,KAAAA,MAAA;AACR4a,aAAQzhB,UAAW0B;AAAAA,EAAK,GACvBoF,MAACpF,KAAK,GAACrD,QAAAqD,OAAArD,QAAAwI,IAAAxI,QAAAyI,OAAAD,KAAAxI,EAAA,EAAA,GAAAyI,KAAAzI,EAAA,EAAA,IAFV+B,UAAUyG,IAEPC,EAAO;AAAC,MAAAC;AAAA1I,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAGTyF,KAAAA,CAAAvK,SAAAklB,QAAA9Y,UAAAzF,cACEic,SAAQuC,CAAAA,OAAA;AAAA,IAAA,GAAaA;AAAAA,IAAC,CAAGJ,MAAI,GAAA;AAAA,MAAA/kB;AAAAA,MAAAoM;AAAAA,IAAAA;AAAAA,EAAA,EAAwB,GAEjDzF,YACFme,kBAAkB9kB,OAAO,GAAC,MAAA;AAI1B4iB,aAAQwC,CAAAA,QAAA;AACN,YAAAC,WAAA;AAAA,QAAA,GAAqBF;AAAAA,MAAAA;AAAE,aAAA,OAEhBE,SAASN,MAAI,GAEbM;AAAAA,IAAQ,CAChB;AAAA,EAAC,IAELxjB,QAAA0I,MAAAA,KAAA1I,EAAA,EAAA;AAjBH,QAAAyjB,eAAqB/a;AAmBpB,MAAAG;AAAA7I,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAE+B4F,MAAAA,CAAA6a,QAAAC,eAAA;AAC9B5C,aAAQ6C,CAAAA,QAAA;AACN,YAAAC,YAAkBP,IAAEJ,MAAI;AAAC,aAEpBW,YAAmB;AAAA,QAAA,GAEbP;AAAAA,QAAC,CAAGJ,MAAI,GAAA;AAAA,UAAA,GAAOW;AAAAA,UAAStZ,UAAEA;AAAAA,QAAAA;AAAAA,MAAQ,IAFtB+Y;AAAAA,IAEsB,CAC9C;AAAA,EAAC,GACHtjB,QAAA6I,OAAAA,MAAA7I,EAAA,EAAA;AARD,QAAA8jB,cAAoBjb,KAaAC,MAAAiC,kBAAkBmX,mBAAe;AAAQ,MAAAxY;AAAA1J,IAAA,EAAA,MAAAkR,SAAAlR,UAAAqD,SAAArD,EAAA,EAAA,MAAA8I,OAFpDY,MAAA;AAAA,IAAA+J,SAAA;AAAA,IAAA1I,gBAEWjC;AAAAA,IAAyCib,OAAA;AAAA,IAAAb;AAAAA,IAAAO;AAAAA,IAAAK;AAAAA,IAAAb;AAAAA,IAAA/R;AAAAA,IAAA7N;AAAAA,EAAAA,GAQ1DrD,QAAAkR,OAAAlR,QAAAqD,OAAArD,QAAA8I,KAAA9I,QAAA0J,OAAAA,MAAA1J,EAAA,EAAA;AAXH,QAAAqY,eACS3O;AAYR,MAAAC;AAAA3J,YAAAkiB,gBAGCvY,MAAAzE,CAAAA,UAAA;AAAA,QACO0S,kBAAiBjW,SAAA;AAAA,UAElBuD,MAAKC,QAAS,aAAW;AAC3BD,cAAKsG,eAAAA;AAEL,cAAAwY,SAAepB,qBACbQ,SAAQzhB,SACRugB,cACAtK,kBAAiBjW,OACnB;AAEIqiB,mBACFnB,kBAAkBmB,MAAM,GACxBf,kBAAkBe,MAAM;AAAC;AAAA,MAAA;AAAA,UAMzB9e,MAAKC,QAAS,WAAS;AACzBD,cAAKsG,eAAAA;AAEL,cAAAyY,SAAehC,qBACbmB,SAAQzhB,SACRugB,cACAtK,kBAAiBjW,OACnB;AAEIsiB,mBACFpB,kBAAkBoB,MAAM,GACxBhB,kBAAkBgB,MAAM;AAAC;AAAA,MAAA;AAAA,UAMzB/e,MAAKC,QAAS,aAAW;AAC3BD,cAAKsG,eAAAA;AAEL,cAAA4W,UAAgBxK,kBAAiBjW,QAAAjD,aAAsB,eAAe;AAAC,YAAA,CAElE0jB;AAAO;AAEZ,cAAA8B,cAAkBd,SAAQzhB,QAASygB,OAAO;AAAC,YAAA,CAEtCyB;AAAS;AAAA,YAEVA,YAAStZ;AACXwW,mBAAQoD,CAAAA,QAAA;AACN,kBAAAC,cAAkBd,IAAElB,OAAO;AAAC,mBAEvByB,cAAmB;AAAA,cAAA,GAEbP;AAAAA,cAAC,CAAGlB,OAAO,GAAA;AAAA,gBAAA,GAAOyB;AAAAA,gBAAStZ,UAAA;AAAA,cAAA;AAAA,YAAA,IAFf+Y;AAAAA,UAEe,CACvC;AAAA,aAAC;AAEF,gBAAAe,WAAiBjC,QAAOE,MAAO,GAAG;AAElC+B,mBAAQ9B,IAAAA;AAER,gBAAA+B,YAAkBD,SAAQ1B,KAAM,GAAG,GACnC4B,cAAoBD,aAAalB,SAAQzhB,QAAS2iB,SAAS;AAEvDC,0BACFA,YAAWpmB,QAAAkB,SACX4jB,kBAAkBsB,YAAWpmB,OAAQ;AAAA,QAAC;AAAA;AAAA,MAAA;AAAA,UAOxC+G,MAAKC,QAAS,cAAY;AAC5BD,cAAKsG,eAAAA;AAEL,cAAAgZ,aAAmB5M,kBAAiBjW,QAAAjD,aAAsB,eAAe;AAAC,YAAA,CAErE8lB;AAAU;AAEVpB,iBAAQzhB,QAAS6iB,UAAU,GAAAja,YAC9BwW,SAAQ0D,CAAAA,QAAA;AACN,gBAAAC,cAAkBpB,IAAEkB,UAAU;AAAC,iBAE1BX,cAAmB;AAAA,YAAA,GAEbP;AAAAA,YAAC,CAAGkB,UAAU,GAAA;AAAA,cAAA,GAAOX;AAAAA,cAAStZ,UAAA;AAAA,YAAA;AAAA,UAAA,IAFlB+Y;AAAAA,QAEkB,CAC1C;AAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAKPtjB,QAAAkiB,cAAAliB,QAAA2J,OAAAA,MAAA3J,EAAA,EAAA;AA7FH,QAAAsF,gBAAsBqE;AA+FrB,MAAAC;AAAA5J,YAAA8G,WAGC8C,MAAAiB,CAAAA,YAAA;AACEoY,sBAAkB/d,QAAK9C,MAAO,GAG9B0E,UAAU5B,OAAK;AAAA,EAAA,GAChBlF,QAAA8G,SAAA9G,QAAA4J,OAAAA,MAAA5J,EAAA,EAAA;AANH,QAAA8X,cAAoBlO;AAQnB,MAAAE;AAAA9J,IAAA,EAAA,MAAAgD,OAAAC,IAAA,2BAAA,KAES6G,MAAAA,MAAA;AAAA,QAAA,CACHhH,IAAGnB;AAAA;AACR,UAAAgjB,gBAAsBnkB,MAAAokB,KACpB9hB,IAAGnB,QAAAkjB,iBAA0B,sBAAsB,CACrD;AAGA1B,oBAAgBwB,aAAa;AAAA,EAAC,GAC/B3kB,QAAA8J,OAAAA,MAAA9J,EAAA,EAAA;AAAA,MAAAkK;AAAAlK,YAAA8D,YAAEoG,OAACpG,QAAQ,GAAC9D,QAAA8D,UAAA9D,QAAAkK,OAAAA,MAAAlK,EAAA,EAAA,GARb+B,UAAU+H,KAQPI,GAAU;AAAC,MAAAC;AAAAnK,IAAA,EAAA,MAAA8D,YAAA9D,EAAA,EAAA,MAAA8X,eAAA9X,EAAA,EAAA,MAAAsF,iBAAAtF,EAAA,EAAA,MAAAwH,aAAAxH,UAAAkR,SAIV/G,0BAAC,OAAA,EACI,IAAA,MACK,WAAA,QAAM,GACV3C,WACKsQ,SAAAA,aACExS,WAAAA,eACNxC,KACA,MAAA,QACEoO,iBAGT,GAAQlR,QAAA8D,UAAA9D,QAAA8X,aAAA9X,QAAAsF,eAAAtF,QAAAwH,WAAAxH,QAAAkR,OAAAlR,QAAAmK,OAAAA,MAAAnK,EAAA,EAAA;AAAA,MAAA4K;AAAA,SAAA5K,EAAA,EAAA,MAAAqY,gBAAArY,UAAAmK,OAZVS,MAAA,oBAAA,YAAA,UAAA,EAA6ByN,OAAAA,cAC3BlO,UAAAA,IAAAA,CAYF,GAAuBnK,QAAAqY,cAAArY,QAAAmK,KAAAnK,QAAA4K,OAAAA,MAAA5K,EAAA,EAAA,GAbvB4K;AAauB,CAE1B;AACDoY,KAAK7e,cAAc;ACjOZ,SAAS2gB,oBAA4C;AAC1D,SAAOxR;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA8BT;AAEO,SAASyR,uBAAuBrhB,OAA2C;AAChF,QAAMshB,QAAQ,WACR;AAAA,IAACrS;AAAAA,EAAAA,IAASC,YAAYlP,MAAMgP,KAAK,GACjC4K,OAAO3K,MAAMsS,WAAWD,KAAK;AAEnC,SAAO1R;AAAAA;AAAAA;AAAAA,UAGC4R,gBAAgBvS,OAAO2K,KAAKC,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,UAIpC2H,gBAAgBvS,OAAO2K,KAAK6H,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKlCD,gBAAgBvS,OAAO2K,KAAK8H,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpCF,gBAAgBvS,OAAO2K,KAAKxY,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAOvCogB,gBAAgBvS,OAAO2K,KAAKC,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,UAIpC2H,gBAAgBvS,OAAO2K,KAAK6H,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,YAKlCD,gBAAgBvS,OAAO2K,KAAK8H,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,YAIpCF,gBAAgBvS,OAAO2K,KAAKxY,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAKjD;AAMO,SAASugB,iBACd3hB,OACwB;AACxB,QAAM;AAAA,IAAC4hB;AAAAA,EAAAA,IAAU5hB,OACX;AAAA,IAACwN;AAAAA,EAAAA,IAAS0B,YAAYlP,MAAMgP,KAAK;AAEvC,SAAOY;AAAAA,oBACWiS,IAAIrU,MAAM,CAAC,IAAIoU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAM1C;AChGO,SAAAE,UAAA;AACL,QAAAC,OAAa9R,WAAAoP,WAAsB;AAAC,MAAA,CAE/B0C;AAAI,UAAA,IAAA1D,MACS,6BAA6B;AAAA,SAGxC0D;AAAI;ACRN,SAAAC,UAAAhiB,OAAA;AAAA,QAAA1D,IAAAC,EAAA,CAAA;AAAA,MAAA6D,UAAA0D,WAAAtH;AAAAF,WAAA0D,SAIL;AAAA,IAAAI;AAAAA,IAAAyG,UAAArK;AAAAA,IAAA,GAAAsH;AAAAA,EAAAA,IAAmD9D,OAAK1D,OAAA0D,OAAA1D,OAAA8D,UAAA9D,OAAAwH,WAAAxH,OAAAE,OAAA4D,WAAA9D,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA;AAAvC,QAAAuK,WAAArK,OAAgBa,cAAhBb,IACjBulB,OAAaD,QAAAA,GAODrkB,MAACoJ;AAAQ,MAAA/I;AAAA,SAAAxB,EAAA,CAAA,MAAA8D,YAAA9D,SAAAwH,aAAAxH,EAAA,CAAA,MAAAmB,MAAAnB,EAAA,CAAA,MAAAylB,KAAAvU,SAJnB1P,yBAAC,OAAA,EACI,IAAA,MACK,WAAA,aAAW,GACfgG,WACI,QAAArG,IACG,WAAAskB,KAAIvU,OACV,MAAA,SACE,OAAAuU,KAAIvU,iBAGb,GAAQlR,OAAA8D,UAAA9D,OAAAwH,WAAAxH,OAAAmB,IAAAnB,EAAA,CAAA,IAAAylB,KAAAvU,OAAAlR,OAAAwB,MAAAA,KAAAxB,EAAA,CAAA,GAVRwB;AAUQ;ACQZ,MAAMmkB,iBAAiB3hB,uBAAO4hB,GAAE1hB,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,EAAC0gB,mBAAmBC,sBAAsB,GAEpEc,cAAc7hB,uBAAOM,GAAG,EAAEwhB,MAAM;AAAA,EAACC,aAAa;AAAG,CAAC,EAAC7hB,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA,EAAwBihB,gBAAgB,GAE3FW,kBAAkBhiB,OAAO8b,IAAI,EAAC5b,WAAA;AAAA,EAAAC,aAAA;AAAA,EAAAC,aAAA;AAAA,CAAA;AAU7B,SAAA6hB,SAAAviB,OAAA;AAAA,QAAA1D,IAAAC,EAAA,GAAA;AAAA,MAAAimB,eAAApiB,UAAAlF,MAAAunB,QAAAC,QAAAC,OAAA3X,SAAAlH,WAAAtH,IAAAiB,IAAAK,IAAAC,IAAAO,IAAAskB,MAAAC;AAAAvmB,WAAA0D,SAGL;AAAA,IAAAI;AAAAA,IAAAyG,UAAArK;AAAAA,IAAA4H,UAAA3G;AAAAA,IAAAvC;AAAAA,IAAA8H,MAAAwf;AAAAA,IAAAthB,IAAAuhB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA3X;AAAAA,IAAAzG,SAAAzG;AAAAA,IAAAsD,UAAArD;AAAAA,IAAAyP,OAAAlP;AAAAA,IAAAskB;AAAAA,IAAAC;AAAAA,IAAA,GAAA/e;AAAAA,EAAAA,IAgBI9D,OAAK1D,OAAA0D,OAAA1D,OAAAkmB,eAAAlmB,OAAA8D,UAAA9D,OAAApB,MAAAoB,OAAAmmB,QAAAnmB,OAAAomB,QAAApmB,OAAAqmB,OAAArmB,OAAA0O,SAAA1O,OAAAwH,WAAAxH,OAAAE,IAAAF,QAAAmB,IAAAnB,QAAAwB,IAAAxB,QAAAyB,IAAAzB,QAAAgC,IAAAhC,QAAAsmB,MAAAtmB,QAAAumB,WAAAL,gBAAAlmB,EAAA,CAAA,GAAA8D,WAAA9D,EAAA,CAAA,GAAApB,OAAAoB,EAAA,CAAA,GAAAmmB,SAAAnmB,EAAA,CAAA,GAAAomB,SAAApmB,EAAA,CAAA,GAAAqmB,QAAArmB,EAAA,CAAA,GAAA0O,UAAA1O,EAAA,CAAA,GAAAwH,YAAAxH,EAAA,CAAA,GAAAE,KAAAF,EAAA,CAAA,GAAAmB,KAAAnB,EAAA,EAAA,GAAAwB,KAAAxB,EAAA,EAAA,GAAAyB,KAAAzB,EAAA,EAAA,GAAAgC,KAAAhC,EAAA,EAAA,GAAAsmB,OAAAtmB,EAAA,EAAA,GAAAumB,SAAAvmB,EAAA,EAAA;AAdG,QAAAwmB,eAAAtmB,OAAoBa,cAApBb,IACV4H,WAAA3G,OAAYJ,aAAZI,IAOA8G,UAAAzG,OAAWT,aAAXS,IACAsD,WAAArD,OAAgBV,cAAhBU,IACAyP,QAAAlP,OAASjB,aAATiB,IAKF,CAAAykB,aAAAC,cAAA,IAAsCxlB,aAAmC,GACzEylB,cAAoBplB,OAAA,IAAkC,GACtDkkB,OAAaD,WACb;AAAA,IAAAtC;AAAAA,IAAAO;AAAAA,IAAAK;AAAAA,IAAAb;AAAAA,EAAAA,IAA6DwC,MAC7DmB,MAAYC,MAAAA,GACZjiB,KAAWuhB,UAAUS;AAAG,MAAA3kB,IAAAyF;AAAA,MAAA1H,EAAA,EAAA,MAAA4E,MAAA5E,UAAAkjB,MAAA;AAEtB,UAAAmB,WAAiBnB,KAAI1Y,QAAS5F,MAAM,EAAE,CAAC;AAC/Byf,SAAAA,UAAU3c,KAAA2c,SAAQ1B,KAAM,GAAG,GAAC3iB,QAAA4E,IAAA5E,QAAAkjB,MAAAljB,QAAAiC,IAAAjC,QAAA0H;AAAAA,EAAA;AAAAzF,SAAAjC,EAAA,EAAA,GAAA0H,KAAA1H,EAAA,EAAA;AAAA,MAAAwI;AAAAxI,IAAA,EAAA,MAAAiC,MAAAjC,UAAA0H,MAA7Bc,KAAA,CAAC6b,IAAU3c,EAAkB,GAAC1H,QAAAiC,IAAAjC,QAAA0H,IAAA1H,QAAAwI,MAAAA,KAAAxI,EAAA,EAAA;AAFvC,QAAA,CAAA8mB,YAAA1E,OAAA,IAES5Z,IAETqb,YAAkB4B,KAAIpiB,MAAO+e,OAAO,GACpC1c,UAAgB+f,KAAI1a,mBAAoB0b,aACxClc,WAAiBsZ,WAAStZ,aAAAxJ,SAA2BylB,eAAe3C,WAAStZ,YAAA,IAC7E9L,WAAiBgnB,KAAI1a,kBAAmB0a,KAAI1a,mBAAoB0b,cAAW,IAAA,IAEjDhe,KAAAgd,KAAI1B,QAAA;AAAU,MAAArb;AAAA1I,IAAA,EAAA,MAAA8mB,cAAA9mB,UAAAyI,MAAAzI,EAAA,EAAA,MAAAylB,QAA/B/c,KAAA;AAAA,IAAA,GAAI+c;AAAAA,IAAI1B,OAAStb;AAAAA,IAAcya,MAAQmB;AAAAA,EAAAA,GAASrkB,QAAA8mB,YAAA9mB,QAAAyI,IAAAzI,QAAAylB,MAAAzlB,QAAA0I,MAAAA,KAAA1I,EAAA,EAAA;AADzD,QAAAqY,eACS3P;AAER,MAAAG;AAAA7I,YAAAuK,YAAAvK,EAAA,EAAA,MAAAoiB,WAAApiB,EAAA,EAAA,MAAA0O,WAAA1O,EAAA,EAAA,MAAAymB,eAAAzmB,UAAA8jB,eAAA9jB,EAAA,EAAA,MAAAijB,qBAGCpa,MAAA3D,CAAAA,UAAA;AACMwJ,eAASA,QAAQxJ,KAAK;AAE1B,UAAA9C,SAAe8C,MAAK9C;AAGlBA,sBAAM4I,gBACL5I,OAAM1D,aAAc,SAAS,MAAM,cAClC0D,OAAM2kB,QAAS,2BAA2B,OAE5C7hB,MAAKoR,gBAAAA,GACLwN,YAAY1B,SAAO,CAAG7X,QAAQ,GAC9B0Y,kBAAkBwD,WAAW;AAAA,EAAC,GAEjCzmB,QAAAuK,UAAAvK,QAAAoiB,SAAApiB,QAAA0O,SAAA1O,QAAAymB,aAAAzmB,QAAA8jB,aAAA9jB,QAAAijB,mBAAAjjB,QAAA6I,OAAAA,MAAA7I,EAAA,EAAA;AAfH,QAAAiF,cAAoB4D;AAiBnB,MAAAC;AAAA9I,IAAA,EAAA,MAAA0F,WAAA1F,UAAAymB,eAGC3d,MAAA+B,CAAAA,YAAA;AACMnF,eAAWR,QAAKC,QAAS,YAChBwhB,YAAWhlB,WAAY8kB,cAEhCO,MAAAA;AAAAA,EAAA,GAELhnB,QAAA0F,SAAA1F,QAAAymB,aAAAzmB,QAAA8I,OAAAA,MAAA9I,EAAA,EAAA;AAPH,QAAAsF,gBAAsBwD;AASrB,MAAAY,KAAAC;AAAA3J,IAAA,EAAA,MAAAuK,YAAAvK,EAAA,EAAA,MAAAoiB,WAAApiB,EAAA,EAAA,MAAAyjB,gBAAAzjB,EAAA,EAAA,MAAAymB,eAAAzmB,UAAA8E,YAES4E,MAAAA,MAAA;AAAA,QACH+c;AAAW,aAEThD,aAAagD,aAAarE,SAAS7X,UAAUzF,QAAQ;AAAA,EAAC,GAC5D6E,MAAA,CAACY,UAAU6X,SAASqB,cAAcgD,aAAa3hB,QAAQ,GAAC9E,QAAAuK,UAAAvK,QAAAoiB,SAAApiB,QAAAyjB,cAAAzjB,QAAAymB,aAAAzmB,QAAA8E,UAAA9E,QAAA0J,KAAA1J,QAAA2J,QAAAD,MAAA1J,EAAA,EAAA,GAAA2J,MAAA3J,EAAA,EAAA,IAJ3D+B,UAAU2H,KAIPC,GAAwD;AAOvC,QAAAC,MAAAsc,iBAAiBpiB,WAAW,YAAY;AAAQ,MAAAgG;AAAA9J,YAAA4J,OADvDE,MAAA;AAAA,IAAAmd,YACOrd;AAAAA,IAAgDsd,eAC7C;AAAA,EAAA,GAChBlnB,QAAA4J,KAAA5J,QAAA8J,OAAAA,MAAA9J,EAAA,EAAA;AAAA,MAAAkK;AAAAlK,IAAA,EAAA,MAAAkmB,iBAAAlmB,EAAA,EAAA,MAAA8H,YAAA9H,EAAA,EAAA,MAAAqmB,SAAArmB,UAAAumB,UAEArc,MAAAgc,qCACE,MAAA,EAAYG,OAAave,gBAAkBye,QAC1C,UAAA,oBAAC,iBAAa,EAAA,CAChB,GACDvmB,QAAAkmB,eAAAlmB,QAAA8H,UAAA9H,QAAAqmB,OAAArmB,QAAAumB,QAAAvmB,QAAAkK,OAAAA,MAAAlK,EAAA,EAAA;AAAA,MAAAmK;AAAAnK,IAAA,EAAA,MAAAkmB,iBAAAlmB,EAAA,EAAA,MAAAuK,YAAAvK,EAAA,EAAA,MAAA8H,YAAA9H,EAAA,EAAA,MAAAqmB,SAAArmB,UAAAumB,UACApc,MAAA,CAAC+b,iBACA,oBAAC,iBAAA,EAAuBG,OAAave,MAAAA,UAAkBye,QACrD,UAAA,oBAAC,wBAA4B,OAAA;AAAA,IAAAY,WAAY5c,WAAW,kBAAexJ;AAAAA,EAAAA,EAAY,CAAC,EAAA,CAClF,GACDf,QAAAkmB,eAAAlmB,QAAAuK,UAAAvK,QAAA8H,UAAA9H,QAAAqmB,OAAArmB,QAAAumB,QAAAvmB,QAAAmK,OAAAA,MAAAnK,EAAA,EAAA;AAAA,MAAA4K;AAAA5K,IAAA,EAAA,MAAAkR,SAAAlR,EAAA,EAAA,MAAA8J,OAAA9J,EAAA,EAAA,MAAAkK,OAAAlK,UAAAmK,OAhBHS,2BAAC,KAAA,EACcsG,aAAAA,OACN,OAAApH,KAKNI,UAAAA;AAAAA,IAAAA;AAAAA,IAKAC;AAAAA,EAAAA,GAKH,GAAMnK,QAAAkR,OAAAlR,QAAA8J,KAAA9J,QAAAkK,KAAAlK,QAAAmK,KAAAnK,QAAA4K,OAAAA,MAAA5K,EAAA,EAAA;AAAA,MAAAmL;AAAAnL,IAAA,EAAA,MAAA8H,YAAA9H,EAAA,EAAA,MAAAqmB,SAAArmB,EAAA,EAAA,MAAAsmB,QAAAtmB,UAAAumB,UACNpb,0BAAC,KAAA,EAAU,SACT,UAAA,oBAAC,MAAA,EAAYkb,OAAave,MAAAA,UAAuB,cAAA,YAAmBye,QACjED,UAAAA,KAAAA,CACH,EAAA,CACF,GAAMtmB,QAAA8H,UAAA9H,QAAAqmB,OAAArmB,QAAAsmB,MAAAtmB,QAAAumB,QAAAvmB,QAAAmL,OAAAA,MAAAnL,EAAA,EAAA;AAAA,MAAAsL;AAAAtL,IAAA,EAAA,MAAAiI,WAAAjI,UAAA4K,OAAA5K,EAAA,EAAA,MAAAmL,OAvBRG,2BAAC,QAAcrD,SACb2C,UAAAA;AAAAA,IAAAA;AAAAA,IAkBAO;AAAAA,EAAAA,GAKF,GAAOnL,QAAAiI,SAAAjI,QAAA4K,KAAA5K,QAAAmL,KAAAnL,QAAAsL,OAAAA,MAAAtL,EAAA,EAAA;AAzBT,QAAA6P,WACEvE;AAyBD,MAEG1M,MAAI;AAGa,UAAAuN,OAAArH,WAAW,KAAE/D;AAAY,QAAAwL;AAAAvM,MAAA,EAAA,MAAA6P,YAAA7P,UAAAuK,YAAAvK,EAAA,EAAA,MAAApB,QAAAoB,EAAA,EAAA,MAAAomB,UAAApmB,EAAA,EAAA,MAAAvB,YAAAuB,EAAA,EAAA,MAAAylB,KAAA1B,SASxCxX,OAAA,oBAAC,aAAA,EACS,QAAAkZ,KAAI1B,OACGxZ,iBAAAA,UACX6b,IAAAA,QACI,WAAA,iBACFxnB,MACD+nB,KAAAA,aACA,MAAA,YACKloB,UAEToR,UAAAA,SAAAA,CACH,GAAc7P,QAAA6P,UAAA7P,QAAAuK,UAAAvK,QAAApB,MAAAoB,QAAAomB,QAAApmB,QAAAvB,UAAAuB,EAAA,EAAA,IAAAylB,KAAA1B,OAAA/jB,QAAAuM,QAAAA,OAAAvM,EAAA,EAAA;AAAA,QAAAyM;AAAAzM,MAAA,EAAA,MAAA8D,YAAA9D,UAAAuK,YAGXkC,OAAA3I,YAAY,oBAAC,WAAA,EAAkB,QAAA,CAACyG,UAAWzG,UAAS,GAAY9D,QAAA8D,UAAA9D,QAAAuK,UAAAvK,QAAAyM,QAAAA,OAAAzM,EAAA,EAAA;AAAA,QAAA4M;AAAA5M,MAAA,EAAA,MAAAqY,gBAAArY,UAAAyM,QADnEG,OAAA,oBAAA,YAAA,UAAA,EAA6ByL,OAAAA,cAC1B5L,UAAAA,KAAAA,CACH,GAAuBzM,QAAAqY,cAAArY,QAAAyM,MAAAzM,QAAA4M,QAAAA,OAAA5M,EAAA,EAAA;AAAA,QAAA8M;AAAA,WAAA9M,EAAA,EAAA,MAAAiF,eAAAjF,EAAA,EAAA,MAAA4E,MAAA5E,EAAA,EAAA,MAAAoiB,WAAApiB,UAAAwH,aAAAxH,EAAA,EAAA,MAAAmM,QAAAnM,EAAA,EAAA,MAAAuM,QAAAvM,EAAA,EAAA,MAAA4M,QAzBzBE,4BAAC,gBAAA,EACgB,iBAAAX,MACDvH,gBAAAA,IACCwd,0BACP,WAAA,YAAU,GACd5a,WACKvC,SAAAA,aACJyhB,KAAAA,gBACA,MAAA,QAELna,UAAAA;AAAAA,MAAAA;AAAAA,MAaAK;AAAAA,IAAAA,EAAAA,CAGF,GAAiB5M,QAAAiF,aAAAjF,QAAA4E,IAAA5E,QAAAoiB,SAAApiB,QAAAwH,WAAAxH,QAAAmM,MAAAnM,QAAAuM,MAAAvM,QAAA4M,MAAA5M,QAAA8M,QAAAA,OAAA9M,EAAA,EAAA,GA1BjB8M;AAAAA,EA0BiB;AAMF,QAAAX,MAAArH,WAAW,KAAE/D;AAAY,MAAAwL;AAAAvM,YAAA6P,YAAA7P,EAAA,EAAA,MAAAylB,KAAA1B,SAYxCxX,0BAAC,aAAA,EAAoB,QAAAkZ,KAAI1B,OAAW,IAAA,OAAc,WAAA,iBAC/ClU,UAAAA,SAAAA,CACH,GAAc7P,QAAA6P,UAAA7P,EAAA,EAAA,IAAAylB,KAAA1B,OAAA/jB,QAAAuM,OAAAA,MAAAvM,EAAA,EAAA;AAAA,MAAAyM;AAAAzM,IAAA,EAAA,MAAA8D,YAAA9D,UAAAuK,YAGXkC,MAAA3I,YAAY,oBAAC,WAAA,EAAoByG,UAAWzG,SAAAA,CAAS,GAAY9D,QAAA8D,UAAA9D,QAAAuK,UAAAvK,QAAAyM,OAAAA,MAAAzM,EAAA,EAAA;AAAA,MAAA4M;AAAA5M,IAAA,EAAA,MAAAqY,gBAAArY,UAAAyM,OADpEG,MAAA,oBAAA,YAAA,UAAA,EAA6ByL,OAAAA,cAC1B5L,UAAAA,IAAAA,CACH,GAAuBzM,QAAAqY,cAAArY,QAAAyM,KAAAzM,SAAA4M,OAAAA,MAAA5M,EAAA,GAAA;AAAA,MAAA8M;AAAA,SAAA9M,EAAA,GAAA,MAAAuK,YAAAvK,WAAAiF,eAAAjF,EAAA,GAAA,MAAAsF,iBAAAtF,WAAA4E,MAAA5E,EAAA,GAAA,MAAAoiB,WAAApiB,WAAAwH,aAAAxH,EAAA,GAAA,MAAAmM,OAAAnM,EAAA,GAAA,MAAAuM,OAAAvM,EAAA,GAAA,MAAA4M,OAAA5M,WAAAvB,YAnBzBqO,MAAA,qBAAC,gBAAA,EACgB,iBAAAX,KACP,WAAA,YACMvH,gBAAAA,IACCwd,iBAAAA,SAAO,GAClB5a,WACW+C,iBAAAA,UACNtF,SAAAA,aACEK,WAAAA,eACNohB,KAAAA,gBACA,MAAA,YACKjoB,UAEV8N,UAAAA;AAAAA,IAAAA;AAAAA,IAIAK;AAAAA,EAAAA,GAGF,GAAiB5M,SAAAuK,UAAAvK,SAAAiF,aAAAjF,SAAAsF,eAAAtF,SAAA4E,IAAA5E,SAAAoiB,SAAApiB,SAAAwH,WAAAxH,SAAAmM,KAAAnM,SAAAuM,KAAAvM,SAAA4M,KAAA5M,SAAAvB,UAAAuB,SAAA8M,OAAAA,MAAA9M,EAAA,GAAA,GApBjB8M;AAoBiB;AAGrBmZ,SAAS9hB,cAAc;"}
|