@sanity/ui 2.14.5 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks-cjs/_visual-editing.js +60 -42
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +60 -42
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_legacy/_visual-editing.esm.js +60 -42
- package/dist/_legacy/_visual-editing.esm.js.map +1 -1
- package/dist/index.d.mts +32 -6
- package/dist/index.d.ts +32 -6
- package/dist/index.esm.js +194 -180
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +192 -178
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +194 -180
- package/dist/index.mjs.map +1 -1
- package/package.json +17 -17
- package/src/core/components/toast/styles.ts +64 -52
- package/src/core/components/toast/toast.tsx +123 -34
- package/src/core/components/toast/toastLayer.tsx +50 -0
- package/src/core/components/toast/toastProvider.tsx +56 -142
- package/src/core/components/toast/types.ts +6 -0
- package/src/core/constants.ts +42 -29
- package/src/core/primitives/popover/popoverCard.tsx +20 -8
- package/src/core/primitives/tooltip/tooltipCard.tsx +7 -6
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../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/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":["import {useEffect, useRef, useState} from 'react'\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 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'\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","/**\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 isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {styled, keyframes} from 'styled-components'\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'\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 ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\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 ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </StyledAutocomplete>\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'\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'\nimport {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={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 }, [collapse, expand, maxLength, open, rawItems, space])\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","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = 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'\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'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <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 <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.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 useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\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'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst 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 setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef} from 'react'\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 {styled, keyframes, css} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Flex} from '../../primitives'\nimport {ThemeProps} from '../../styles'\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nconst loadingAnimation = keyframes`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport function rootStyles(\n props: {$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps,\n): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n const loadingBarColor = color.button.default[props.tone].enabled.bg\n\n if (!props.$duration)\n return css`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n\n return css`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n padding-bottom: ${LOADING_BAR_HEIGHT}px;\n &::before {\n content: '';\n position: absolute;\n bottom: 0px;\n height: ${LOADING_BAR_HEIGHT}px;\n background: ${loadingBarColor};\n animation-name: ${loadingAnimation};\n animation-duration: ${props.$duration}ms;\n animation-fill-mode: both;\n animation-timing-function: linear;\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: width;\n }\n\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport {ThemeProps} from '../../styles'\nimport type {ButtonTone} from '../../types'\nimport {rootStyles, TextBox} 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}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst StyledToast = styled(Card)<{$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps>(\n rootStyles,\n)\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 & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.JSX.Element {\n const {closable, description, duration, onClose, radius = 3, title, status, ...restProps} = 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 return (\n <StyledToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n $duration={duration}\n >\n <Flex align=\"flex-start\">\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 <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </StyledToast>\n )\n}\n\nToast.displayName = 'Toast'\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","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst StyledToastProvider = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n /**\n * These variants makes use of special timing, by using a negative opacity as a starting position,\n * as well as double opacity as the end position.\n * The purpose of this is to make the tooltip/popover container appear before the content, and when exiting\n * we want the content to disappear faster than the container.\n */\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: -1,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: 2,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: 1,\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: -1,\n scale: 0.5,\n },\n transition: {duration: prefersReducedMotion ? 0 : 0.2},\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <StyledToastProvider data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </StyledToastProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {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 memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n 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>(\n forwardedRef,\n () => ref.current,\n )\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 }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.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 {memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\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 = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.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 rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\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={rootRef}\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={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["_getElements","element","elementsArg","ret","el","Array","isArray","push","filter","Boolean","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","length","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","children","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","document","activeElement","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","child","isHTMLElement","focusLastDescendant","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","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","restProps","dispatch","useReducer","defaultRenderOption","useCallback","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","map","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","ChevronDownIcon","inputValue","input","handleListBoxKeyDown","content","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Autocomplete","StyledBreadcrumbs","ol","ExpandButton","Button","Breadcrumbs","maxLength","separator","space","spaceRaw","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","item","itemIndex","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","Card","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","event_0","target_0","t6","t7","CloseIcon","t8","t9","t10","t11","t12","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","t13","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","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","t14","event_2","relatedTarget","handleBlur","t15","handleItemClick","t16","els","els_0","_el","registerElement","t17","t18","t19","t20","t21","t22","t23","t24","overflow","popoverProps","t25","t26","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","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","default","tone","enabled","bg","$duration","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","StyledToast","Toast","closable","description","duration","status","title","cardTone","buttonTone","role","verticalAlign","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","toastId","generateToastId","String","StyledToastProvider","ToastContainer","ToastProvider","paddingX","paddingY","_setState","toastsRef","mounted","prefersReducedMotion","opacity","y","scale","willChange","initial","exit","transition","variants","params","setState","state_0","startTransition","dismiss","timeoutId","prevState","idx","findIndex","t","toasts","splice","prevState_0","t_0","timeoutId_0","Object","values","dismiss_0","id_0","params_0","damping","stiffness","useToast","Error","isRecord","_findPrevItemElement","itemElements","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","memo","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","Text","TreeItem","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","transform"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../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":["import {useEffect, useRef, useState} from 'react'\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 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'\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","/**\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 isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {styled, keyframes} from 'styled-components'\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'\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 ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\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 ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </StyledAutocomplete>\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'\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'\nimport {useArrayProp, useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={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 }, [collapse, expand, maxLength, open, rawItems, space])\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","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = 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'\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'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <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 <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.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 useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\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'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst 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 setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef} from 'react'\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 {styled} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\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'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Flex, Stack, Text} from '../../primitives'\n\nimport {\n LoadingBar,\n LoadingBarProgress,\n BUTTON_TONE,\n STATUS_CARD_TONE,\n TextBox,\n StyledToast,\n LoadingBarMask,\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 ? {type: 'spring', visualDuration, bounce: 0.25} : {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'\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'\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'\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 memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n 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>(\n forwardedRef,\n () => ref.current,\n )\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 }),\n)\nTree.displayName = 'Memo(ForwardRef(Tree))'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\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'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.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 {memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\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 = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.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 rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{\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={rootRef}\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={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["_getElements","element","elementsArg","ret","el","Array","isArray","push","filter","Boolean","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","length","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","children","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","document","activeElement","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","child","isHTMLElement","focusLastDescendant","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","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","restProps","dispatch","useReducer","defaultRenderOption","useCallback","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","map","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","ChevronDownIcon","inputValue","input","handleListBoxKeyDown","content","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Autocomplete","StyledBreadcrumbs","ol","ExpandButton","Button","Breadcrumbs","maxLength","separator","space","spaceRaw","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","item","itemIndex","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","Card","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","event_0","target_0","t6","t7","CloseIcon","t8","t9","t10","t11","t12","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","t13","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","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","t14","event_2","relatedTarget","handleBlur","t15","handleItemClick","t16","els","els_0","_el","registerElement","t17","t18","t19","t20","t21","t22","t23","t24","overflow","popoverProps","t25","t26","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","isFinite","hasDuration","initial","exit","verticalAlign","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionToast","motion","create","MotionFlex","MotionText","Text","MotionLoadingBar","MotionLoadingBarProgress","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","ToastLayer","paddingX","paddingY","gap","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","toast","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","memo","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","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","transform"],"mappings":"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"}
|