@sanity/ui 2.13.3 → 2.13.4
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 +5 -6
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +5 -6
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_legacy/_visual-editing.esm.js +5 -6
- package/dist/_legacy/_visual-editing.esm.js.map +1 -1
- package/dist/index.esm.js +33 -37
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +33 -37
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -37
- package/dist/index.mjs.map +1 -1
- package/package.json +20 -20
- package/src/core/components/toast/toastProvider.tsx +6 -7
- package/src/core/constants.ts +9 -7
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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 }\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 initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n // @ts-expect-error fix later\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [1, 0, 0],\n scale: 0.5,\n transition: {duration: prefersReducedMotion ? 0 : 0.2},\n },\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","EMPTY_ARRAY","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","length","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","$","_c","innerRef","t0","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","jsx","Code","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","t1","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","t2","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","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","undefined","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","Button","ChevronDownIcon","inputValue","input","TextInput","handleListBoxKeyDown","content","Stack","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Popover","jsxs","Autocomplete","StyledBreadcrumbs","ol","ExpandButton","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","Fragment","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","t3","t4","stopPropagation","useGlobalKeyDown","t5","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","Portal","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","handleBlur","relatedTarget","handleItemClick","registerElement","els","_el","popoverProps","overflow","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","_temp","_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","t14","timeoutId_0","Object","values","t15","AnimatePresence","t16","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","t17","_itemElements","from","querySelectorAll","t18","t19","t20","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","ToggleArrowRightIcon","transform"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.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 }\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 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","EMPTY_ARRAY","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","length","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","$","_c","innerRef","t0","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","jsx","Code","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","t1","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","t2","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","Card","Text","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","undefined","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","Button","ChevronDownIcon","inputValue","input","TextInput","handleListBoxKeyDown","content","Stack","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Popover","jsxs","Autocomplete","StyledBreadcrumbs","ol","ExpandButton","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","Fragment","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","t3","t4","stopPropagation","useGlobalKeyDown","t5","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","Portal","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","handleBlur","relatedTarget","handleItemClick","registerElement","els","_el","popoverProps","overflow","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","_temp","_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","AnimatePresence","t14","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","t15","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","t16","t17","_itemElements","from","querySelectorAll","t18","t19","t20","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","ToggleArrowRightIcon","transform"],"mappings":"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"}
|