@sanity/ui 3.1.8 → 3.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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 startTransition,\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 * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setInputElement = useCallback((node: HTMLInputElement | null) => {\n startTransition(() => _setInputElement(node))\n }, [])\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 {startTransition, 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 /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\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","jsx","Code","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","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","inputElement","_setInputElement","node","startTransition","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","t16","find","o","currentOption","t17","t18","filteredOptions","filteredOptionsLen","activeItemId","expanded","concat","focusInside","e","handleRootBlur","t19","event_0","listBoxElement","focusedElement","HTMLElement","listFocused_0","handleRootFocus","t20","v","handleOptionSelect","t21","event_1","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","t22","event_2","nextQuery","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","Button","ChevronDownIcon","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","cloneElement","Stack","t43","content","bb3","Popover","results","t44","TextInput","t45","jsxs","RenderPopover","hidden","onMouseEnter","onMouseLeave","Autocomplete","v_0","v_1","Math","max","StyledBreadcrumbs","ol","ExpandButton","Breadcrumbs","maxLength","separator","space","spaceRaw","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","Children","toArray","isValidElement","rawItems","items","useItems","item","itemIndex","Fragment","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","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","Portal","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","MotionLoadingBar","MotionLoadingBarProgress","useMounted","useSyncExternalStore","subscribe","ToastContext","ToastLayer","paddingX","paddingY","gap","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","prevState","toast","dismiss","currentState","toast_0","toast_1","Date","now","LayerProvider","AnimatePresence","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","setRootElement","treeitemRef","_id","useId","itemPath_0","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","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 startTransition,\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 * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setInputElement = useCallback((node: HTMLInputElement | null) => {\n startTransition(() => _setInputElement(node))\n }, [])\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 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 {startTransition, 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 /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\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","jsx","Code","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","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","inputElement","_setInputElement","node","startTransition","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","t16","find","o","currentOption","t17","t18","filteredOptions","filteredOptionsLen","activeItemId","expanded","concat","focusInside","e","handleRootBlur","t19","event_0","listBoxElement","focusedElement","HTMLElement","listFocused_0","handleRootFocus","t20","v","handleOptionSelect","t21","event_1","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","t22","event_2","nextQuery","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","Button","ChevronDownIcon","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","cloneElement","Stack","t43","content","bb3","Popover","results","t44","TextInput","t45","jsxs","RenderPopover","hidden","onMouseEnter","onMouseLeave","Autocomplete","v_0","v_1","Math","max","StyledBreadcrumbs","ol","ExpandButton","Breadcrumbs","maxLength","separator","space","spaceRaw","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","Children","toArray","isValidElement","rawItems","items","useItems","item","itemIndex","Fragment","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","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","Portal","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","MotionLoadingBar","MotionLoadingBarProgress","useMounted","useSyncExternalStore","subscribe","ToastContext","ToastLayer","paddingX","paddingY","gap","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","prevState","toast","dismiss","currentState","toast_0","toast_1","Date","now","LayerProvider","AnimatePresence","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","setRootElement","treeitemRef","_id","useId","itemPath_0","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform"],"mappings":"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"}