{"version":3,"file":"index.mjs","sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n  const frameId = requestAnimationFrame(fn)\n\n  return () => {\n    cancelAnimationFrame(frameId)\n  }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n  let innerDispose: (() => void) | null = null\n\n  const outerDispose = _raf(() => {\n    innerDispose = _raf(fn)\n  })\n\n  return () => {\n    if (innerDispose) innerDispose()\n\n    outerDispose()\n  }\n}\n","import {\n  isHTMLAnchorElement,\n  isHTMLButtonElement,\n  isHTMLElement,\n  isHTMLInputElement,\n  isHTMLSelectElement,\n  isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n//   IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n  return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n  if (\n    element.tabIndex > 0 ||\n    (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n  ) {\n    return true\n  }\n\n  if (isHTMLAnchorElement(element)) {\n    return Boolean(element.href) && element.rel !== 'ignore'\n  }\n\n  if (isHTMLInputElement(element)) {\n    return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n  }\n\n  if (\n    isHTMLButtonElement(element) ||\n    isHTMLSelectElement(element) ||\n    isHTMLTextAreaElement(element)\n  ) {\n    return !element.disabled\n  }\n\n  return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n  if (!isFocusable(element)) {\n    return false\n  }\n\n  // globalFocusState.IgnoreUtilFocusChanges = true\n\n  try {\n    element.focus()\n  } catch {\n    // ignore\n  }\n\n  // globalFocusState.IgnoreUtilFocusChanges = false\n\n  return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n  for (let i = 0; i < element.childNodes.length; i++) {\n    const child = element.childNodes[i]\n\n    if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n      return true\n    }\n  }\n\n  return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n  for (let i = element.childNodes.length - 1; i >= 0; i--) {\n    const child = element.childNodes[i]\n\n    if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n      return true\n    }\n  }\n\n  return false\n}\n","import {useMemo} from 'react'\n\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n  val: T | T[] | undefined,\n  defaultVal?: T[],\n): T[] {\n  return useMemo(() => _getArrayProp(val, defaultVal), [val, defaultVal])\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n  element: HTMLElement | null,\n  elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n  const ret = [element]\n\n  for (const el of elementsArg) {\n    if (Array.isArray(el)) {\n      ret.push(...el)\n    } else {\n      ret.push(el)\n    }\n  }\n\n  return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n  listener: ClickOutsideListener,\n  elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n  boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n  const [element, setElement] = useState<HTMLElement | null>(null)\n  const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n  const elementsRef = useRef(elements)\n\n  useEffect(() => {\n    const prevElements = elementsRef.current\n    const nextElements = _getElements(element, elementsArg)\n\n    if (prevElements.length !== nextElements.length) {\n      // eslint-disable-next-line react-hooks/set-state-in-effect\n      setElements(nextElements)\n      elementsRef.current = nextElements\n\n      return\n    }\n\n    for (const el of prevElements) {\n      if (!nextElements.includes(el)) {\n        setElements(nextElements)\n        elementsRef.current = nextElements\n\n        return\n      }\n    }\n\n    for (const el of nextElements) {\n      if (!prevElements.includes(el)) {\n        setElements(nextElements)\n        elementsRef.current = nextElements\n\n        return\n      }\n    }\n  }, [element, elementsArg])\n\n  useEffect(() => {\n    if (!listener) return undefined\n\n    const handleWindowMouseDown = (evt: MouseEvent) => {\n      const target = evt.target\n\n      if (!(target instanceof Node)) {\n        return\n      }\n\n      if (boundaryElement && !boundaryElement.contains(target)) {\n        return\n      }\n\n      for (const el of elements) {\n        if (target === el || el.contains(target)) {\n          return\n        }\n      }\n\n      listener(evt)\n    }\n\n    window.addEventListener('mousedown', handleWindowMouseDown)\n\n    return () => {\n      window.removeEventListener('mousedown', handleWindowMouseDown)\n    }\n  }, [boundaryElement, listener, elements])\n\n  return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n  const elementSize = useElementSize(element)\n\n  return elementSize?._contentRect || null\n}\n","import {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n  const innerRef = useRef<T | null>(null)\n\n  useImperativeHandle(ref, () => innerRef.current!)\n\n  return innerRef\n}\n","import {Component, PropsWithChildren} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n  onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n  error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n  state: ErrorBoundaryState = {error: null}\n\n  static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n    // Update state so the next render will show the fallback UI.\n    return {error}\n  }\n\n  componentDidCatch(error: Error, info: React.ErrorInfo): void {\n    this.props.onCatch({error, info})\n  }\n\n  render(): React.ReactNode {\n    const {error} = this.state\n\n    if (error) {\n      const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n      return <Code>{message}</Code>\n    }\n\n    return this.props.children\n  }\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n  line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n  & > ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n  }\n`\n\nconst rotate = keyframes`\n  from {\n    transform: rotate(0deg);\n  }\n\n  to {\n    transform: rotate(360deg);\n  }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n  animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n  children: React.ReactNode\n  id: string\n  onSelect: (v: string) => void\n  selected: boolean\n  value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n  const {children, id, onSelect, selected, value} = props\n\n  const handleClick = useCallback(() => {\n    // Calling the `onSelect` in a timeout is a fix to\n    // allow the `click` event to propagate in some cases\n    setTimeout(() => {\n      onSelect(value)\n    }, 0)\n  }, [onSelect, value])\n\n  const handleKeyDown = useCallback(\n    (event: React.KeyboardEvent<HTMLLIElement>) => {\n      if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n        handleClick()\n      }\n    },\n    [handleClick],\n  )\n\n  return (\n    <li\n      aria-selected={selected}\n      data-ui=\"AutocompleteOption\"\n      id={id}\n      role=\"option\"\n      onClick={handleClick}\n      onKeyDown={handleKeyDown}\n    >\n      {children}\n    </li>\n  )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n  state: AutocompleteState,\n  msg: AutocompleteMsg,\n): AutocompleteState {\n  if (msg.type === 'input/change') {\n    return {...state, activeValue: null, focused: true, query: msg.query}\n  }\n\n  if (msg.type === 'input/focus') {\n    return {...state, focused: true}\n  }\n\n  if (msg.type === 'root/blur') {\n    return {...state, focused: false, query: null}\n  }\n\n  if (msg.type === 'root/clear') {\n    return {...state, activeValue: null, query: null, value: null}\n  }\n\n  if (msg.type === 'root/escape') {\n    return {...state, focused: false, query: null}\n  }\n\n  if (msg.type === 'root/open') {\n    return {...state, query: state.query || msg.query}\n  }\n\n  if (msg.type === 'root/setActiveValue') {\n    return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n  }\n\n  if (msg.type === 'root/setListFocused') {\n    return {...state, listFocused: msg.listFocused}\n  }\n\n  if (msg.type === 'value/change') {\n    return {...state, activeValue: msg.value, query: null, value: msg.value}\n  }\n\n  return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n  'Control',\n  'Shift',\n  'Alt',\n  'Enter',\n  'Home',\n  'End',\n  'PageUp',\n  'PageDown',\n  'Meta',\n  'Tab',\n  'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n  ChangeEvent,\n  cloneElement,\n  ElementType,\n  FocusEvent,\n  forwardRef,\n  HTMLProps,\n  KeyboardEvent,\n  MouseEvent,\n  ReactNode,\n  Ref,\n  startTransition,\n  useCallback,\n  useEffect,\n  useImperativeHandle,\n  useMemo,\n  useReducer,\n  useRef,\n  useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {\n  Box,\n  BoxProps,\n  Button,\n  Card,\n  Popover,\n  PopoverProps,\n  Stack,\n  Text,\n  TextInput,\n} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n  AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n  AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n  AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n  border?: boolean\n  customValidity?: string\n  filterOption?: (query: string, option: Option) => boolean\n  fontSize?: number | number[]\n  icon?: ElementType | ReactNode\n  id: string\n  /** @beta */\n  listBox?: BoxProps\n  loading?: boolean\n  onChange?: (value: string) => void\n  onQueryChange?: (query: string | null) => void\n  onSelect?: (value: string) => void\n  /** @beta */\n  openButton?: boolean | AutocompleteOpenButtonProps\n  /** @beta */\n  openOnFocus?: boolean\n  /** The options to render. */\n  options?: Option[]\n  padding?: number | number[]\n  popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n    Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n  prefix?: ReactNode\n  radius?: Radius | Radius[]\n  /** @beta */\n  relatedElements?: HTMLElement[]\n  /** The callback function for rendering each option. */\n  renderOption?: (option: Option) => React.JSX.Element\n  /** @beta */\n  renderPopover?: (\n    props: {\n      content: React.JSX.Element | null\n      hidden: boolean\n      inputElement: HTMLInputElement | null\n      onMouseEnter: () => void\n      onMouseLeave: () => void\n    },\n    ref: Ref<HTMLDivElement>,\n  ) => ReactNode\n  renderValue?: (value: string, option?: Option) => string\n  suffix?: ReactNode\n  /** The current value. */\n  value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n  option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n  option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n  Option extends BaseAutocompleteOption,\n>(\n  props: AutocompleteProps<Option> &\n    Omit<\n      HTMLProps<HTMLInputElement>,\n      | 'aria-activedescendant'\n      | 'aria-autocomplete'\n      | 'aria-expanded'\n      | 'aria-owns'\n      | 'as'\n      | 'autoCapitalize'\n      | 'autoComplete'\n      | 'autoCorrect'\n      | 'id'\n      | 'inputMode'\n      | 'onChange'\n      | 'onSelect'\n      | 'popover'\n      | 'prefix'\n      | 'ref'\n      | 'role'\n      | 'spellCheck'\n      | 'type'\n      | 'value'\n    >,\n  forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n  const {\n    border = true,\n    customValidity,\n    disabled,\n    filterOption: filterOptionProp,\n    fontSize = 2,\n    icon,\n    id,\n    listBox = EMPTY_RECORD,\n    loading,\n    onBlur,\n    onChange,\n    onFocus,\n    onQueryChange,\n    onSelect,\n    openButton,\n    openOnFocus,\n    options: optionsProp,\n    padding: paddingProp = 3,\n    popover = EMPTY_RECORD,\n    prefix,\n    radius = 2,\n    readOnly,\n    relatedElements,\n    renderOption: renderOptionProp,\n    renderPopover,\n    renderValue = DEFAULT_RENDER_VALUE,\n    suffix,\n    value: valueProp,\n    ...restProps\n  } = props\n\n  const [state, dispatch] = useReducer(autocompleteReducer, {\n    activeValue: valueProp || null,\n    focused: false,\n    listFocused: false,\n    query: null,\n    value: valueProp || null,\n  })\n\n  const {activeValue, focused, listFocused, query, value} = state\n\n  const defaultRenderOption = useCallback(\n    ({value}: BaseAutocompleteOption) => (\n      <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n        <Text size={fontSize} textOverflow=\"ellipsis\">\n          {value}\n        </Text>\n      </Card>\n    ),\n    [fontSize, paddingProp],\n  )\n\n  const renderOption =\n    typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n  const filterOption =\n    typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n  // Element refs\n  const rootElementRef = useRef<HTMLDivElement | null>(null)\n  const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n  const inputElementRef = useRef<HTMLInputElement | null>(null)\n  const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n  // Element refs that need to be accessed during render\n  const [inputElement, _setInputElement] = useState<HTMLInputElement | null>(null)\n  /**\n   * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n   * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n   * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n   * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n   */\n  const setInputElement = useCallback((node: HTMLInputElement | null) => {\n    startTransition(() => _setInputElement(node))\n  }, [])\n\n  // Value refs\n  const listFocusedRef = useRef(false)\n  const valueRef = useRef(value)\n  const valuePropRef = useRef(valueProp)\n  const popoverMouseWithinRef = useRef(false)\n\n  // Forward inputElement state to inputElementRef\n  useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n    inputElementRef,\n    () => inputElement,\n    [inputElement],\n  )\n  // Forward inputElement to parent\n  useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n    forwardedRef,\n    () => inputElement,\n    [inputElement],\n  )\n\n  const listBoxId = `${id}-listbox`\n  const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n  const padding = _getArrayProp(paddingProp)\n  const currentOption = useMemo(\n    () => (value !== null ? options.find((o) => o.value === value) : undefined),\n    [options, value],\n  )\n  const filteredOptions = useMemo(\n    () => options.filter((option) => (query ? filterOption(query, option) : true)),\n    [filterOption, options, query],\n  )\n  const filteredOptionsLen = filteredOptions.length\n  const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n  const expanded = (query !== null && loading) || (focused && query !== null)\n\n  const handleRootBlur = useCallback(\n    (event: FocusEvent<HTMLInputElement>) => {\n      setTimeout(() => {\n        // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n        // closes the results in certain situations):\n        // - Do not handle blur if the mouse is within the popover\n        if (popoverMouseWithinRef.current) {\n          return\n        }\n\n        const elements: HTMLElement[] = (relatedElements || []).concat(\n          rootElementRef.current ? [rootElementRef.current] : [],\n          resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n        )\n\n        let focusInside = false\n\n        if (document.activeElement) {\n          for (const e of elements) {\n            if (e === document.activeElement || e.contains(document.activeElement)) {\n              focusInside = true\n              break\n            }\n          }\n        }\n\n        if (focusInside === false) {\n          dispatch({type: 'root/blur'})\n          popoverMouseWithinRef.current = false\n          if (onQueryChange) onQueryChange(null)\n          if (onBlur) onBlur(event)\n        }\n      }, 0)\n    },\n    [onBlur, onQueryChange, relatedElements],\n  )\n\n  const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n    const listBoxElement = listBoxElementRef.current\n    const focusedElement = event.target instanceof HTMLElement ? event.target : null\n    const listFocused = listBoxElement?.contains(focusedElement) || false\n\n    if (listFocused !== listFocusedRef.current) {\n      listFocusedRef.current = listFocused\n\n      dispatch({type: 'root/setListFocused', listFocused})\n    }\n  }, [])\n\n  const handleOptionSelect = useCallback(\n    (v: string) => {\n      dispatch({type: 'value/change', value: v})\n\n      popoverMouseWithinRef.current = false\n\n      if (onSelect) onSelect(v)\n\n      valueRef.current = v\n\n      if (onChange) onChange(v)\n      if (onQueryChange) onQueryChange(null)\n\n      inputElementRef.current?.focus()\n    },\n    [onChange, onSelect, onQueryChange],\n  )\n\n  const handleRootKeyDown = useCallback(\n    (event: KeyboardEvent<HTMLElement>) => {\n      if (event.key === 'ArrowDown') {\n        event.preventDefault()\n\n        if (!filteredOptionsLen) return\n\n        const activeOption = filteredOptions.find((o) => o.value === activeValue)\n        const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n        const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n        if (nextActiveOption) {\n          dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n        }\n\n        return\n      }\n\n      if (event.key === 'ArrowUp') {\n        event.preventDefault()\n\n        if (!filteredOptionsLen) return\n\n        const activeOption = filteredOptions.find((o) => o.value === activeValue)\n        const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n        const nextActiveOption =\n          filteredOptions[\n            activeIndex === -1\n              ? filteredOptionsLen - 1\n              : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n          ]\n\n        if (nextActiveOption) {\n          dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n        }\n\n        return\n      }\n\n      if (event.key === 'Escape') {\n        dispatch({type: 'root/escape'})\n        popoverMouseWithinRef.current = false\n        if (onQueryChange) onQueryChange(null)\n        inputElementRef.current?.focus()\n\n        return\n      }\n\n      const target = event.target as Node\n      const listEl = listBoxElementRef.current\n\n      if (\n        (listEl === target || listEl?.contains(target)) &&\n        !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n      ) {\n        inputElementRef.current?.focus()\n\n        return\n      }\n    },\n    [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n  )\n\n  const handleInputChange = useCallback(\n    (event: ChangeEvent<HTMLInputElement>) => {\n      const nextQuery = event.currentTarget.value\n\n      dispatch({type: 'input/change', query: nextQuery})\n\n      if (onQueryChange) onQueryChange(nextQuery)\n    },\n    [onQueryChange],\n  )\n\n  const dispatchOpen = useCallback(() => {\n    dispatch({\n      type: 'root/open',\n      query: value ? renderValue(value, currentOption) : '',\n    })\n  }, [currentOption, renderValue, value])\n\n  const handleInputFocus = useCallback(\n    (event: FocusEvent<HTMLInputElement>) => {\n      if (!focused) {\n        dispatch({type: 'input/focus'})\n\n        if (onFocus) onFocus(event)\n        if (openOnFocus) dispatchOpen()\n      }\n    },\n    [focused, onFocus, openOnFocus, dispatchOpen],\n  )\n\n  const handlePopoverMouseEnter = useCallback(() => {\n    popoverMouseWithinRef.current = true\n  }, [])\n\n  const handlePopoverMouseLeave = useCallback(() => {\n    popoverMouseWithinRef.current = false\n  }, [])\n\n  const handleClearButtonClick = useCallback(() => {\n    dispatch({type: 'root/clear'})\n    valueRef.current = ''\n    if (onChange) onChange('')\n    if (onQueryChange) onQueryChange(null)\n    inputElementRef.current?.focus()\n  }, [onChange, onQueryChange])\n\n  const handleClearButtonFocus = useCallback(() => {\n    dispatch({type: 'input/focus'})\n  }, [])\n\n  // Change the value when `value` prop changes\n  useEffect(() => {\n    // If `valueProp` changed\n    if (valueProp !== valuePropRef.current) {\n      valuePropRef.current = valueProp\n\n      if (valueProp !== undefined) {\n        dispatch({type: 'value/change', value: valueProp})\n        valueRef.current = valueProp\n      }\n\n      return\n    }\n\n    // If `valueProp` is not equal to `value`\n    if (valueProp !== valueRef.current) {\n      valueRef.current = valueProp || null\n\n      dispatch({type: 'value/change', value: valueProp || null})\n    }\n  }, [valueProp])\n\n  // Reset active item when closing\n  useEffect(() => {\n    if (!focused && valueRef.current) {\n      dispatch({type: 'root/setActiveValue', value: valueRef.current})\n    }\n  }, [focused])\n\n  // Focus the selected item\n  useEffect(() => {\n    const listElement = listBoxElementRef.current\n\n    if (!listElement) return\n\n    const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n    if (activeOption) {\n      const activeIndex = filteredOptions.indexOf(activeOption)\n      const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n      if (activeItemElement) {\n        if (_hasFocus(activeItemElement)) {\n          // already focused\n          return\n        }\n\n        focusFirstDescendant(activeItemElement)\n      }\n    }\n  }, [activeValue, filteredOptions])\n\n  const clearButton = useMemo(() => {\n    if (!loading && !disabled && value) {\n      return {\n        'aria-label': 'Clear',\n        'onFocus': handleClearButtonFocus,\n      }\n    }\n\n    return undefined\n  }, [disabled, handleClearButtonFocus, loading, value])\n\n  const openButtonBoxPadding = padding.map((v) => {\n    if (v === 0) return 0\n    if (v === 1) return 1\n    if (v === 2) return 1\n\n    return v - 2\n  })\n  const openButtonPadding = padding.map((v) => Math.max(v - 1, 0))\n  const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n    () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n    [openButton],\n  )\n\n  const handleOpenClick = useCallback(\n    (event: MouseEvent<HTMLButtonElement>) => {\n      dispatchOpen()\n\n      if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n      _raf(() => inputElementRef.current?.focus())\n    },\n    [openButtonProps, dispatchOpen],\n  )\n\n  const openButtonNode = useMemo(\n    () =>\n      !disabled && !readOnly && openButton ? (\n        <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n          <Button\n            aria-label=\"Open\"\n            disabled={expanded}\n            fontSize={fontSize}\n            icon={ChevronDownIcon}\n            mode=\"bleed\"\n            padding={openButtonPadding}\n            {...openButtonProps}\n            onClick={handleOpenClick}\n          />\n        </Box>\n      ) : undefined,\n    [\n      disabled,\n      expanded,\n      fontSize,\n      handleOpenClick,\n      openButton,\n      openButtonBoxPadding,\n      openButtonPadding,\n      openButtonProps,\n      readOnly,\n    ],\n  )\n\n  const inputValue = useMemo(() => {\n    if (query === null) {\n      if (value !== null) {\n        return renderValue(value, currentOption)\n      }\n\n      return ''\n    }\n\n    return query\n  }, [currentOption, query, renderValue, value])\n\n  const handleListBoxKeyDown = useCallback(\n    (event: KeyboardEvent<HTMLDivElement>) => {\n      // If the focus is currently in the list, move focus to the input element\n      if (event.key === 'Tab') {\n        if (listFocused) inputElementRef.current?.focus()\n      }\n    },\n    [listFocused],\n  )\n\n  const content = useMemo(() => {\n    if (filteredOptions.length === 0) return null\n\n    return (\n      <ListBox\n        data-ui=\"AutoComplete__results\"\n        onKeyDown={handleListBoxKeyDown}\n        padding={1}\n        {...listBox}\n        tabIndex={-1}\n      >\n        <Stack\n          as=\"ul\"\n          aria-multiselectable={false}\n          data-ui=\"AutoComplete__resultsList\"\n          id={listBoxId}\n          ref={listBoxElementRef}\n          role=\"listbox\"\n          space={1}\n        >\n          {filteredOptions.map((option) => {\n            const active =\n              activeValue !== null ? option.value === activeValue : currentOption === option\n\n            return (\n              <AutocompleteOption\n                id={`${id}-option-${option.value}`}\n                key={option.value}\n                onSelect={handleOptionSelect}\n                selected={active}\n                value={option.value}\n              >\n                {cloneElement(renderOption(option), {\n                  disabled: loading,\n                  selected: active,\n                  tabIndex: listFocused && active ? 0 : -1,\n                })}\n              </AutocompleteOption>\n            )\n          })}\n        </Stack>\n      </ListBox>\n    )\n  }, [\n    activeValue,\n    currentOption,\n    filteredOptions,\n    handleOptionSelect,\n    handleListBoxKeyDown,\n    id,\n    listBox,\n    listBoxId,\n    listFocused,\n    loading,\n    renderOption,\n  ])\n\n  const results = useMemo(() => {\n    if (renderPopover) {\n      return (\n        <RenderPopover\n          content={content}\n          hidden={!expanded}\n          inputElement={inputElement}\n          onMouseEnter={handlePopoverMouseEnter}\n          onMouseLeave={handlePopoverMouseLeave}\n          resultsPopoverElementRef={resultsPopoverElementRef}\n          renderPopover={renderPopover}\n        />\n      )\n    }\n\n    if (filteredOptionsLen === 0) {\n      return null\n    }\n\n    return (\n      <Popover\n        arrow={false}\n        constrainSize\n        content={content}\n        fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n        matchReferenceWidth\n        onMouseEnter={handlePopoverMouseEnter}\n        onMouseLeave={handlePopoverMouseLeave}\n        open={expanded}\n        overflow=\"auto\"\n        placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n        portal\n        radius={radius}\n        ref={resultsPopoverElementRef}\n        referenceElement={inputElement}\n        {...popover}\n      />\n    )\n  }, [\n    content,\n    expanded,\n    filteredOptionsLen,\n    handlePopoverMouseEnter,\n    handlePopoverMouseLeave,\n    inputElement,\n    popover,\n    radius,\n    renderPopover,\n  ])\n\n  return (\n    <StyledAutocomplete\n      data-ui=\"Autocomplete\"\n      onBlur={handleRootBlur}\n      onFocus={handleRootFocus}\n      onKeyDown={handleRootKeyDown}\n      ref={rootElementRef}\n    >\n      <TextInput\n        {...restProps}\n        aria-activedescendant={activeItemId}\n        aria-autocomplete=\"list\"\n        aria-expanded={expanded}\n        aria-owns={listBoxId}\n        autoCapitalize=\"off\"\n        autoComplete=\"off\"\n        autoCorrect=\"off\"\n        border={border}\n        clearButton={clearButton}\n        customValidity={customValidity}\n        disabled={disabled}\n        fontSize={fontSize}\n        icon={icon}\n        iconRight={loading && AnimatedSpinnerIcon}\n        id={id}\n        inputMode=\"search\"\n        onChange={handleInputChange}\n        onClear={handleClearButtonClick}\n        onFocus={handleInputFocus}\n        padding={padding}\n        prefix={prefix}\n        radius={radius}\n        readOnly={readOnly}\n        ref={setInputElement}\n        role=\"combobox\"\n        spellCheck={false}\n        suffix={suffix || openButtonNode}\n        value={inputValue}\n      />\n      {results}\n    </StyledAutocomplete>\n  )\n})\n\nfunction RenderPopover({\n  renderPopover,\n  content,\n  hidden,\n  inputElement,\n  onMouseEnter,\n  onMouseLeave,\n  resultsPopoverElementRef,\n}: {\n  renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n  resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n  return renderPopover(\n    {\n      content,\n      hidden,\n      inputElement,\n      onMouseEnter,\n      onMouseLeave,\n    },\n    resultsPopoverElementRef,\n  )\n}\n\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n  props: AutocompleteProps<Option> &\n    Omit<\n      HTMLProps<HTMLInputElement>,\n      | 'aria-activedescendant'\n      | 'aria-autocomplete'\n      | 'aria-expanded'\n      | 'aria-owns'\n      | 'as'\n      | 'autoCapitalize'\n      | 'autoComplete'\n      | 'autoCorrect'\n      | 'id'\n      | 'inputMode'\n      | 'onChange'\n      | 'onSelect'\n      | 'popover'\n      | 'prefix'\n      | 'ref'\n      | 'role'\n      | 'spellCheck'\n      | 'type'\n      | 'value'\n    > & {\n      ref?: Ref<HTMLInputElement>\n    },\n) => React.JSX.Element\n","import {styled} from 'styled-components'\n\nimport {Button} from '../../primitives'\n\nexport const StyledBreadcrumbs = styled.ol`\n  margin: 0;\n  padding: 0;\n  display: flex;\n  list-style: none;\n  align-items: center;\n  white-space: nowrap;\n  line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n  appearance: none;\n  margin: -4px;\n`\n","import {\n  Children,\n  forwardRef,\n  Fragment,\n  isValidElement,\n  useCallback,\n  useMemo,\n  useRef,\n  useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {ExpandButton, StyledBreadcrumbs} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n  maxLength?: number\n  separator?: React.ReactNode\n  gap?: number | number[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\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, gap, maxLength, separator, space: deprecated_space = 2, ...restProps} = props\n  const space = _getArrayProp(gap === undefined ? deprecated_space : gap)\n  const [open, setOpen] = useState(false)\n  const expandElementRef = useRef<HTMLButtonElement | null>(null)\n  const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n  const collapse = useCallback(() => setOpen(false), [])\n  const expand = useCallback(() => setOpen(true), [])\n\n  useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n  const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n  const items = useItems({\n    collapse,\n    expand,\n    expandElementRef,\n    maxLength,\n    open,\n    popoverElementRef,\n    rawItems,\n    space,\n  })\n\n  return (\n    <StyledBreadcrumbs data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n      {items.map((item, itemIndex) => (\n        <Fragment key={itemIndex}>\n          {itemIndex > 0 && (\n            <Box aria-hidden as=\"li\" paddingX={space}>\n              {separator || <Text muted>/</Text>}\n            </Box>\n          )}\n          <Box as=\"li\">{item}</Box>\n        </Fragment>\n      ))}\n    </StyledBreadcrumbs>\n  )\n})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\n\nfunction useItems({\n  collapse,\n  expand,\n  expandElementRef,\n  maxLength,\n  open,\n  popoverElementRef,\n  rawItems,\n  space,\n}: {\n  collapse: () => void\n  expand: () => void\n  expandElementRef: React.RefObject<HTMLButtonElement | null>\n  maxLength: number | undefined\n  open: boolean\n  popoverElementRef: React.RefObject<HTMLDivElement | null>\n  rawItems: React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[]\n  space: number[]\n}) {\n  const len = rawItems.length\n\n  if (maxLength && len > maxLength) {\n    const beforeLength = Math.ceil(maxLength / 2)\n    const afterLength = Math.floor(maxLength / 2)\n\n    return [\n      ...rawItems.slice(0, beforeLength - 1),\n      <Popover\n        constrainSize\n        content={\n          <Stack as=\"ol\" overflow=\"auto\" padding={space} gap={space}>\n            {rawItems.slice(beforeLength - 1, len - afterLength)}\n          </Stack>\n        }\n        key=\"button\"\n        open={open}\n        placement=\"top\"\n        portal\n        ref={popoverElementRef}\n      >\n        <ExpandButton\n          fontSize={1}\n          mode=\"bleed\"\n          onClick={open ? collapse : expand}\n          padding={1}\n          ref={expandElementRef}\n          selected={open}\n          text=\"…\"\n        />\n      </Popover>,\n      ...rawItems.slice(len - afterLength),\n    ]\n  }\n\n  return rawItems\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n  $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n  const {color} = getTheme_v2(theme)\n\n  return {\n    '&:not([hidden])': {\n      display: 'flex',\n    },\n\n    'top': 0,\n    'left': 0,\n    'right': 0,\n    'bottom': 0,\n    'alignItems': 'center',\n    'justifyContent': 'center',\n    'outline': 'none',\n    'background': color.backdrop,\n  }\n}\n\nexport function responsiveDialogPositionStyle(\n  props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n  $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n  if (!props.$animate) return css``\n\n  return css`\n    @keyframes zoomIn {\n      from {\n        opacity: 0;\n        transform: scale(0.95);\n      }\n      to {\n        opacity: 1;\n        transform: scale(1);\n      }\n    }\n    @keyframes fadeIn {\n      from {\n        opacity: 0;\n      }\n      to {\n        opacity: 1;\n      }\n    }\n\n    animation: fadeIn 200ms ease-out;\n    // Animates the dialog card.\n    & > [data-ui='DialogCard'] {\n      animation: zoomIn 200ms ease-out;\n    }\n  `\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n  version: 0.0\n  position?: DialogPosition | DialogPosition[]\n  zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n  '@sanity/ui/context/dialog',\n  {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n  return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n  containsOrEqualsElement,\n  focusFirstDescendant,\n  focusLastDescendant,\n  isHTMLElement,\n} from '../../helpers'\nimport {useClickOutsideEvent, useGlobalKeyDown, usePrefersReducedMotion} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n  animationDialogStyle,\n  AnimationDialogStyleProps,\n  dialogStyle,\n  responsiveDialogPositionStyle,\n  ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n  /**\n   * @beta\n   */\n  __unstable_autoFocus?: boolean\n  /**\n   * @beta\n   */\n  __unstable_hideCloseButton?: boolean\n  cardRadius?: Radius | Radius[]\n  cardShadow?: number | number[]\n  contentRef?: React.ForwardedRef<HTMLDivElement>\n  footer?: React.ReactNode\n  header?: React.ReactNode\n  id: string\n  /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n  onActivate?: LayerProps['onActivate']\n  onClickOutside?: () => void\n  onClose?: () => void\n  portal?: string\n  position?: DialogPosition | DialogPosition[]\n  scheme?: ThemeColorSchemeKey\n  zOffset?: number | number[]\n  /**\n   * Whether the dialog should animate in on mount.\n   *\n   * @beta\n   * @defaultValue false\n   */\n  animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n  /**\n   * @beta\n   */\n  __unstable_autoFocus: boolean\n  /**\n   * @beta\n   */\n  __unstable_hideCloseButton: boolean\n  children: React.ReactNode\n  contentRef?: React.ForwardedRef<HTMLDivElement>\n  footer: React.ReactNode\n  header: React.ReactNode\n  id: string\n  onClickOutside?: () => void\n  onClose?: () => void\n  portal?: string\n  radius: Radius | Radius[]\n  scheme?: ThemeColorSchemeKey\n  shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n  boundaryElement: HTMLElement | null,\n  portalElement: HTMLElement | null,\n  target: Node,\n): boolean {\n  if (!boundaryElement || !portalElement) return true\n\n  return (\n    containsOrEqualsElement(boundaryElement, target) ||\n    containsOrEqualsElement(portalElement, target)\n  )\n}\n\nconst StyledDialog = styled(Layer)<\n  ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n  &:not([hidden]) {\n    display: flex;\n  }\n  width: 100%;\n  height: 100%;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n  &:not([hidden]) {\n    display: flex;\n  }\n  width: 100%;\n  min-height: 0;\n  max-height: 100%;\n  overflow: hidden;\n  overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n  flex: 1;\n  min-height: 0;\n  width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n  position: relative;\n  z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n  position: relative;\n  z-index: 1;\n  overflow: auto;\n  outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n  position: relative;\n  z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n  props: DialogCardProps,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    __unstable_autoFocus: autoFocus,\n    __unstable_hideCloseButton: hideCloseButton,\n    children,\n    contentRef: forwardedContentRef,\n    footer,\n    header,\n    id,\n    onClickOutside,\n    onClose,\n    portal: portalProp,\n    radius: radiusProp,\n    scheme,\n    shadow: shadowProp,\n    width: widthProp,\n  } = props\n  const portal = usePortal()\n  const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n  const boundaryElement = useBoundaryElement().element\n  const radius = _getArrayProp(radiusProp)\n  const shadow = _getArrayProp(shadowProp)\n  const width = _getArrayProp(widthProp)\n  const ref = useRef<HTMLDivElement | null>(null)\n  const contentRef = useRef<HTMLDivElement | null>(null)\n  const layer = useLayer()\n  const {isTopLayer} = layer\n  const labelId = `${id}_label`\n  const showCloseButton = Boolean(onClose) && hideCloseButton === false\n  const showHeader = Boolean(header) || showCloseButton\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n    forwardedContentRef,\n    () => contentRef.current,\n  )\n\n  useEffect(() => {\n    if (!autoFocus) return\n\n    // On mount: focus the first focusable element\n    if (ref.current) {\n      focusFirstDescendant(ref.current)\n    }\n  }, [autoFocus, ref])\n\n  useGlobalKeyDown(\n    useCallback(\n      (event: KeyboardEvent) => {\n        if (!isTopLayer || !onClose) return\n\n        const target = document.activeElement\n\n        if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n          // Ignore key presses when the focused element is outside of scope\n          return\n        }\n\n        if (event.key === 'Escape') {\n          event.preventDefault()\n          event.stopPropagation()\n          onClose()\n        }\n      },\n      [boundaryElement, isTopLayer, onClose, portalElement],\n    ),\n  )\n\n  useClickOutsideEvent(\n    isTopLayer &&\n      onClickOutside &&\n      ((event) => {\n        const target = event.target as Node | null\n\n        if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n          // Ignore clicks outside of the scope\n          return\n        }\n\n        onClickOutside()\n      }),\n    () => [ref.current],\n  )\n\n  return (\n    <DialogContainer data-ui=\"DialogCard\" width={width}>\n      <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n        <DialogLayout direction=\"column\">\n          {showHeader && (\n            <DialogHeader>\n              <Flex align=\"flex-start\" padding={3}>\n                <Box flex={1} padding={2}>\n                  {header && (\n                    <Text id={labelId} size={1} weight=\"semibold\">\n                      {header}\n                    </Text>\n                  )}\n                </Box>\n                {showCloseButton && (\n                  <Box flex=\"none\">\n                    <Button\n                      aria-label=\"Close dialog\"\n                      disabled={!onClose}\n                      icon={CloseIcon}\n                      mode=\"bleed\"\n                      onClick={onClose}\n                      padding={2}\n                    />\n                  </Box>\n                )}\n              </Flex>\n            </DialogHeader>\n          )}\n\n          <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n            {children}\n          </DialogContent>\n\n          {footer && <DialogFooter>{footer}</DialogFooter>}\n        </DialogLayout>\n      </DialogCardRoot>\n    </DialogContainer>\n  )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n  props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const dialog = useDialog()\n  const {layer} = useTheme_v2()\n  const {\n    __unstable_autoFocus: autoFocus = true,\n    __unstable_hideCloseButton: hideCloseButton = false,\n    cardRadius: cardRadiusProp = 4,\n    cardShadow = 3,\n    children,\n    contentRef,\n    footer,\n    header,\n    id,\n    onActivate,\n    onClickOutside,\n    onClose,\n    onFocus,\n    padding: paddingProp = 3,\n    portal: portalProp,\n    position: _positionProp,\n    scheme,\n    width: widthProp = 0,\n    zOffset: _zOffsetProp,\n    animate: _animate = false,\n    ...restProps\n  } = props\n  const positionProp = _positionProp ?? (dialog.position || 'fixed')\n  const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n  const prefersReducedMotion = usePrefersReducedMotion()\n  const animate = prefersReducedMotion ? false : _animate\n  const portal = usePortal()\n  const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n  const boundaryElement = useBoundaryElement().element\n  const cardRadius = _getArrayProp(cardRadiusProp)\n  const padding = _getArrayProp(paddingProp)\n  const position = _getArrayProp(positionProp)\n  const width = _getArrayProp(widthProp)\n  const zOffset = _getArrayProp(zOffsetProp)\n  const preDivRef = useRef<HTMLDivElement | null>(null)\n  const postDivRef = useRef<HTMLDivElement | null>(null)\n  const cardRef = useRef<HTMLDivElement | null>(null)\n  const focusedElementRef = useRef<HTMLElement | null>(null)\n\n  const handleFocus = useCallback(\n    (event: React.FocusEvent<HTMLDivElement>) => {\n      onFocus?.(event)\n\n      const target = event.target\n      const cardElement = cardRef.current\n\n      if (cardElement && target === preDivRef.current) {\n        focusLastDescendant(cardElement)\n\n        return\n      }\n\n      if (cardElement && target === postDivRef.current) {\n        focusFirstDescendant(cardElement)\n\n        return\n      }\n\n      if (isHTMLElement(event.target)) {\n        focusedElementRef.current = event.target\n      }\n    },\n    [onFocus],\n  )\n\n  const labelId = `${id}_label`\n\n  const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n  // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n  // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n  // This is to allow the user to tab or close the dialog by pressing escape.\n  const handleRootClick = useCallback(() => {\n    if (rootClickTimeoutRef.current) {\n      clearTimeout(rootClickTimeoutRef.current)\n    }\n\n    rootClickTimeoutRef.current = setTimeout(() => {\n      const activeElement = document.activeElement\n\n      if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n        const target = focusedElementRef.current\n\n        if (!target || !document.body.contains(target)) {\n          // No previously focused element, or it's not in the document anymore\n          const cardElement = cardRef.current\n          if (cardElement) focusFirstDescendant(cardElement)\n\n          return\n        }\n\n        target.focus()\n      }\n    }, 0)\n  }, [boundaryElement, portalElement])\n\n  return (\n    <Portal __unstable_name={portalProp}>\n      <StyledDialog\n        {...restProps}\n        $animate={animate}\n        $padding={padding}\n        $position={position}\n        aria-labelledby={labelId}\n        aria-modal\n        data-ui=\"Dialog\"\n        id={id}\n        onActivate={onActivate}\n        onClick={handleRootClick}\n        onFocus={handleFocus}\n        ref={ref}\n        role=\"dialog\"\n        zOffset={zOffset}\n      >\n        {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n        <div ref={preDivRef} tabIndex={0} />\n        <DialogCard\n          __unstable_autoFocus={autoFocus}\n          __unstable_hideCloseButton={hideCloseButton}\n          contentRef={contentRef}\n          footer={footer}\n          header={header}\n          id={id}\n          onClickOutside={onClickOutside}\n          onClose={onClose}\n          portal={portalProp}\n          radius={cardRadius}\n          ref={cardRef}\n          scheme={scheme}\n          shadow={cardShadow}\n          width={width}\n        >\n          {children}\n        </DialogCard>\n        {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n        <div ref={postDivRef} tabIndex={0} />\n      </StyledDialog>\n    </Portal>\n  )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n  children?: React.ReactNode\n  position?: DialogPosition | DialogPosition[]\n  zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n  const {children, position, zOffset} = props\n\n  const contextValue: DialogContextValue = useMemo(\n    () => ({\n      version: 0.0,\n      position,\n      zOffset,\n    }),\n    [position, zOffset],\n  )\n\n  return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n\nDialogProvider.displayName = 'DialogProvider'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n  cloneElement,\n  forwardRef,\n  useCallback,\n  useEffect,\n  useImperativeHandle,\n  useMemo,\n  useRef,\n  useState,\n} from 'react'\n\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n  /**\n   * @beta Do not use in production.\n   */\n  __unstable_disableRestoreFocusOnClose?: boolean\n  /**\n   * @deprecated Use `popover={{boundaryElement: element}}` instead.\n   */\n  boundaryElement?: HTMLElement\n  button: React.JSX.Element\n  id: string\n  menu?: React.JSX.Element\n  onClose?: () => void\n  onOpen?: () => void\n  /**\n   * @deprecated Use `popover={{placement: 'top'}}` instead.\n   */\n  placement?: Placement\n  popover?: Omit<PopoverProps, 'content' | 'open'>\n  /**\n   * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n   */\n  popoverScheme?: ThemeColorSchemeKey\n  /**\n   * @deprecated Use `popover={{radius: 2}}` instead.\n   */\n  popoverRadius?: Radius | Radius[]\n  /**\n   * @beta Do not use in production.\n   * @deprecated Use `popover={{portal: true}}` instead.\n   */\n  portal?: boolean\n  /**\n   * @deprecated Use `popover={{preventOverflow: true}}` instead.\n   */\n  preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n  props: MenuButtonProps,\n  forwardedRef: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n  const {\n    __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n    boundaryElement: deprecated_boundaryElement,\n    button: buttonProp,\n    id,\n    menu: menuProp,\n    onClose,\n    onOpen,\n    placement: deprecated_placement,\n    popoverScheme: deprecated_popoverScheme,\n    portal: deprecated_portal = true,\n    popover,\n    popoverRadius: deprecated_popoverRadius,\n    preventOverflow: deprecated_preventOverflow,\n  } = props\n  const [open, setOpen] = useState(false)\n  const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n  const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n  const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n  const openRef = useRef<boolean>(open)\n\n  // Notify consumers when the menu opens\n  useEffect(() => {\n    if (onOpen && open && !openRef.current) {\n      onOpen()\n    }\n  }, [onOpen, open])\n\n  // Notify consumers when the menu closes\n  useEffect(() => {\n    if (onClose && !open && openRef.current) {\n      onClose()\n    }\n  }, [onClose, open])\n\n  useEffect(() => {\n    openRef.current = open\n  }, [open])\n\n  const handleButtonClick = useCallback(() => {\n    setOpen((v) => !v)\n    setShouldFocus(null)\n  }, [])\n\n  // Prevent mouse event propagation when the menu is open.\n  // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n  // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n  const handleMouseDown = useCallback(\n    (event: PointerEvent) => {\n      if (open) event.preventDefault()\n    },\n    [open],\n  )\n\n  const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n    // On `ArrowDown`, `Enter` and `Space`\n    // - Opens menu and moves focus to first menuitem\n    if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n      event.preventDefault()\n      setOpen(true)\n      setShouldFocus('first')\n\n      return\n    }\n\n    // On `ArrowUp`\n    // - \tOpens menu and moves focus to last menuitem\n    if (event.key === 'ArrowUp') {\n      event.preventDefault()\n      setOpen(true)\n      setShouldFocus('last')\n\n      return\n    }\n  }, [])\n\n  const handleMenuClickOutside = useCallback(\n    (event: MouseEvent) => {\n      const target = event.target\n\n      if (!(target instanceof Node)) {\n        return\n      }\n\n      if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n        return\n      }\n\n      for (const el of menuElements) {\n        if (target === el || el.contains(target)) {\n          return\n        }\n      }\n\n      setOpen(false)\n    },\n    [buttonElement, menuElements],\n  )\n\n  const handleMenuEscape = useCallback(() => {\n    setOpen(false)\n    if (disableRestoreFocusOnClose) return\n    if (buttonElement) buttonElement.focus()\n  }, [buttonElement, disableRestoreFocusOnClose])\n\n  const handleBlur = useCallback(\n    (event: FocusEvent) => {\n      const target = event.relatedTarget\n\n      if (!(target instanceof Node)) {\n        return\n      }\n\n      for (const el of menuElements) {\n        if (el === target || el.contains(target)) {\n          return\n        }\n      }\n\n      setOpen(false)\n    },\n    [menuElements],\n  )\n\n  const handleItemClick = useCallback(() => {\n    setOpen(false)\n    if (disableRestoreFocusOnClose) return\n    if (buttonElement) buttonElement.focus()\n  }, [buttonElement, disableRestoreFocusOnClose])\n\n  const registerElement = useCallback((el: HTMLElement) => {\n    setChildMenuElements((els) => els.concat([el]))\n\n    return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n  }, [])\n\n  const menuProps: MenuProps = {\n    'aria-labelledby': id,\n    'onBlurCapture': handleBlur,\n    'onClickOutside': handleMenuClickOutside,\n    'onEscape': handleMenuEscape,\n    'onItemClick': handleItemClick,\n    'originElement': buttonElement,\n    registerElement,\n    shouldFocus,\n  }\n\n  const menu = menuProp && cloneElement(menuProp, menuProps)\n\n  const button = useMemo(\n    () =>\n      buttonProp &&\n      cloneElement(buttonProp, {\n        'data-ui': 'MenuButton',\n        id,\n        'onClick': handleButtonClick,\n        'onKeyDown': handleButtonKeyDown,\n        'onMouseDown': handleMouseDown,\n        'aria-haspopup': true,\n        'aria-expanded': open,\n        'ref': setButtonElement,\n        'selected': buttonProp.props.selected ?? open,\n      }),\n    [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n  )\n\n  // Forward button ref to parent\n  useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n    forwardedRef,\n    () => buttonElement,\n    [buttonElement],\n  )\n\n  const popoverProps: MenuButtonProps['popover'] = useMemo(\n    () => ({\n      boundaryElement: deprecated_boundaryElement,\n      overflow: 'auto',\n      placement: deprecated_placement,\n      portal: deprecated_portal,\n      preventOverflow: deprecated_preventOverflow,\n      radius: deprecated_popoverRadius,\n      scheme: deprecated_popoverScheme,\n      ...(popover || {}),\n    }),\n    [\n      deprecated_boundaryElement,\n      deprecated_placement,\n      deprecated_popoverRadius,\n      deprecated_popoverScheme,\n      deprecated_portal,\n      deprecated_preventOverflow,\n      popover,\n    ],\n  )\n\n  return (\n    <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n      {button || <></>}\n    </Popover>\n  )\n})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n  0% {\n    background-position: 100%;\n  }\n  100% {\n    background-position: -100%;\n  }\n`\n\nconst animation = css`\n  background-image: linear-gradient(\n    to right,\n    var(--card-skeleton-color-from),\n    var(--card-skeleton-color-to),\n    var(--card-skeleton-color-from),\n    var(--card-skeleton-color-from),\n    var(--card-skeleton-color-from)\n  );\n  background-position: 100%;\n  background-size: 200% 100%;\n  background-attachment: fixed;\n  animation-name: ${keyframe};\n  animation-timing-function: ease-in-out;\n  animation-iteration-count: infinite;\n  animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n  opacity: ${({$visible}) => ($visible ? 1 : 0)};\n  transition: opacity 200ms ease-in;\n\n  @media screen and (prefers-reduced-motion: no-preference) {\n    ${({$animated}) =>\n      $animated\n        ? animation\n        : css`\n            background-color: var(--card-skeleton-color-from);\n          `}\n  }\n\n  @media screen and (prefers-reduced-motion: reduce) {\n    background-color: var(--card-skeleton-color-from);\n  }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst StyledSkeleton = styled(Box)<\n  {$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, skeletonStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n  animated?: boolean\n  delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n  props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {animated = false, delay, radius, ...restProps} = props\n  const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n  useEffect(() => {\n    if (!delay) {\n      return undefined\n    }\n\n    const timeout = setTimeout(() => {\n      setVisible(true)\n    }, delay)\n\n    return () => {\n      clearTimeout(timeout)\n    }\n  }, [delay])\n\n  return (\n    <StyledSkeleton\n      {...restProps}\n      $animated={animated}\n      $radius={_getArrayProp(radius)}\n      $visible={delay ? visible : true}\n      ref={ref}\n    />\n  )\n})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\n","import {getTheme_v2, ThemeFontKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp, _responsive, ThemeProps} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n  props: {\n    $size: number[]\n    $style: ThemeFontKey\n  } & ThemeProps,\n) => {\n  const {$size, $style} = props\n  const {font, media} = getTheme_v2(props.theme)\n  const fontStyle = font[$style]\n\n  const styles = _responsive(media, $size, (sizeIndex) => {\n    const fontSize = fontStyle.sizes[sizeIndex]\n    const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n    return {height: capHeight}\n  })\n\n  return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n  size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n  size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n  size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n  size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n  props: TextSkeletonProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {size = 2, ...restProps} = props\n  const $size = _getArrayProp(size)\n\n  return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n  props: LabelSkeletonProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {size = 2, ...restProps} = props\n  const $size = _getArrayProp(size)\n\n  return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n  props: HeadingSkeletonProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {size = 2, ...restProps} = props\n  const $size = _getArrayProp(size)\n\n  return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n  props: CodeSkeletonProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {size = 2, ...restProps} = props\n  const $size = _getArrayProp(size)\n\n  return <StyledSkeleton {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef} from 'react'\n\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n  /**\n   * The `id` of the correlating `Tab` component.\n   */\n  'aria-labelledby': string\n  'id': string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n  props: TabPanelProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {flex, ...restProps} = props\n\n  return (\n    <Box\n      data-ui=\"TabPanel\"\n      {...restProps}\n      flex={flex}\n      ref={ref}\n      role=\"tabpanel\"\n      tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n    >\n      {props.children}\n    </Box>\n  )\n})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {getTheme_v2, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\n\nimport {Card, Flex} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport const STATUS_CARD_TONE = {\n  error: 'critical',\n  warning: 'caution',\n  success: 'positive',\n  info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nexport const BUTTON_TONE = {\n  error: 'critical',\n  warning: 'caution',\n  success: 'positive',\n  info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nexport const TextBox = styled(Flex)`\n  overflow-x: auto;\n`\n\nexport const StyledToast = styled(Card)`\n  pointer-events: all;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  overflow: clip;\n\n  &[data-has-duration] {\n    padding-bottom: calc(${LOADING_BAR_HEIGHT}px / 2);\n  }\n`\n\nexport const LoadingBar = styled.div`\n  display: flex;\n  position: absolute;\n  bottom: 0px;\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  pointer-events: none;\n  z-index: -1;\n  overflow: hidden;\n  overflow: clip;\n  background: transparent;\n  align-items: flex-end;\n  will-change: opacity;\n`\n\nexport const LoadingBarMask = styled(Card)`\n  position: absolute;\n  top: 0;\n  left: -${LOADING_BAR_HEIGHT}px;\n  right: -${LOADING_BAR_HEIGHT}px;\n  bottom: ${LOADING_BAR_HEIGHT}px;\n  z-index: 1;\n`\n\ntype LoadingBarProgressProps = Omit<React.ComponentProps<typeof Card>, 'tone'> & {\n  tone: ThemeColorStateToneKey\n}\nexport const LoadingBarProgress = styled<React.ComponentType<LoadingBarProgressProps>>(Card)`\n  display: block;\n  height: 100%;\n  width: 100%;\n  transform-origin: 0% 50%;\n  background-color: ${(props) => {\n    const {color} = getTheme_v2(props.theme)\n\n    return color.button.default[props.tone].enabled.bg\n  }};\n`\n","import {CloseIcon} from '@sanity/icons'\nimport {motion, type Variant, type Variants} from 'motion/react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Flex, Stack, Text} from '../../primitives'\nimport {\n  BUTTON_TONE,\n  LoadingBar,\n  LoadingBarMask,\n  LoadingBarProgress,\n  STATUS_CARD_TONE,\n  StyledToast,\n  TextBox,\n} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n  closable?: boolean\n  description?: React.ReactNode\n  onClose: () => void\n  radius?: number | number[]\n  title?: React.ReactNode\n  status?: 'error' | 'warning' | 'success' | 'info'\n  duration?: number\n  updatedAt?: number\n}\n\nconst ROLES = {\n  error: 'alert',\n  warning: 'alert',\n  success: 'alert',\n  info: 'alert',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n  props: ToastProps &\n    Omit<\n      React.HTMLProps<HTMLDivElement>,\n      | 'as'\n      | 'height'\n      | 'ref'\n      | 'title'\n      | 'onAnimationStart'\n      | 'onDragStart'\n      | 'onDragEnd'\n      | 'onDrag'\n    >,\n): React.JSX.Element {\n  const {\n    closable,\n    description,\n    duration,\n    onClose,\n    radius = 3,\n    title,\n    status,\n    updatedAt,\n    ...restProps\n  } = props\n  const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n  const buttonTone = status ? BUTTON_TONE[status] : 'default'\n  const role = status ? ROLES[status] : 'status'\n\n  const prefersReducedMotion = usePrefersReducedMotion()\n\n  const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n  const transition = visualDuration\n    ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n    : {duration: 0}\n\n  const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n  const initial: ContainerVariants[] = ['hidden', 'initial']\n  const animate: ContainerVariants[] = ['visible', 'slideIn']\n  const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n  return (\n    <MotionToast\n      data-ui=\"Toast\"\n      role={role}\n      {...restProps}\n      data-has-duration={hasDuration ? '' : undefined}\n      custom={visualDuration}\n      radius={radius}\n      shadow={2}\n      tone={cardTone}\n      forwardedAs=\"li\"\n      layout=\"position\"\n      variants={container}\n      initial={initial}\n      animate={animate}\n      exit={exit}\n      transition={transition}\n    >\n      <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n        <TextBox flex={1} padding={3}>\n          <Stack space={3}>\n            {title && (\n              <Text size={1} weight=\"medium\">\n                {title}\n              </Text>\n            )}\n            {description && (\n              <MotionText muted size={1} variants={content} transition={transition}>\n                {description}\n              </MotionText>\n            )}\n          </Stack>\n        </TextBox>\n\n        {closable && (\n          <Box padding={1}>\n            <Button\n              as=\"button\"\n              icon={CloseIcon}\n              mode=\"bleed\"\n              padding={2}\n              tone={buttonTone}\n              onClick={onClose}\n              style={{verticalAlign: 'top'}}\n            />\n          </Box>\n        )}\n      </MotionFlex>\n      {hasDuration && (\n        <MotionLoadingBar variants={content} transition={transition}>\n          <LoadingBarMask tone={cardTone} radius={radius} />\n          <MotionLoadingBarProgress\n            key={`progress-${updatedAt}`}\n            tone={cardTone}\n            initial={{scaleX: 0}}\n            animate={{scaleX: 1}}\n            transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n            onAnimationComplete={onClose}\n          />\n        </MotionLoadingBar>\n      )}\n    </MotionToast>\n  )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n  initial: {y: 32, scale: 0.5, zIndex: 1},\n  hidden: {opacity: 0},\n  visible: (visualDuration: number) => {\n    if (!visualDuration) return {opacity: 1}\n\n    return {\n      opacity: 1,\n      transition: {\n        when: 'beforeChildren',\n        staggerChildren: visualDuration / 3,\n        duration: visualDuration / 3,\n      },\n    }\n  },\n  slideIn: {\n    y: 0,\n    scale: 1,\n  },\n  slideOut: {\n    zIndex: 0,\n    scale: 0.75,\n  },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n  initial: {\n    willChange: 'transform',\n  },\n  hidden: {\n    opacity: 0,\n  },\n  visible: {\n    opacity: 1,\n  },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionToast = motion.create(StyledToast)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionLoadingBar = motion.create(LoadingBar)\nconst MotionLoadingBarProgress = motion.create(LoadingBarProgress)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n  return useSyncExternalStore(\n    subscribe,\n    () => true,\n    () => false,\n  )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n  '@sanity/ui/context/toast',\n  null,\n)\n","import {styled} from 'styled-components'\n\nimport {Grid} from '../../primitives/grid'\nimport {useLayer} from '../../utils'\n\n/**\n * @public\n */\nexport interface ToastLayerProps {\n  children: React.ReactNode\n  padding?: number | number[]\n  paddingX?: number | number[]\n  paddingY?: number | number[]\n  gap?: number | number[]\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n  const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n  const {zIndex} = useLayer()\n\n  return (\n    <StyledLayer\n      forwardedAs=\"ul\"\n      data-ui=\"ToastProvider\"\n      padding={padding}\n      paddingX={paddingX}\n      paddingY={paddingY}\n      gap={gap}\n      columns={1}\n      style={{zIndex}}\n    >\n      {children}\n    </StyledLayer>\n  )\n}\n\nToastLayer.displayName = 'ToastLayer'\n\nconst StyledLayer = styled(Grid)`\n  box-sizing: border-box;\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  list-style: none;\n  pointer-events: none;\n  max-width: 420px;\n  width: 100%;\n`\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n  return String(toastId++)\n}\n","import {AnimatePresence} from 'motion/react'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n  dismiss: () => void\n  id: string\n  updatedAt: number\n  params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n  children?: React.ReactNode\n  zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n  const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n  const [state, setState] = useState<ToastState>([])\n  const mounted = useMounted()\n\n  const value: ToastContextValue = useMemo(() => {\n    const push = (params: ToastParams) => {\n      const id = params.id || generateToastId()\n      const duration = params.duration || 5000\n\n      startTransition(() => {\n        setState((prevState): ToastState => {\n          /**\n           * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n           * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n           * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n           * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n           */\n          if (duration === 0.01) {\n            return prevState.filter((toast) => toast.id !== id)\n          }\n\n          /**\n           * Creates a function to dismiss this specific toast.\n           * This function will be passed to the Toast component\n           * and called either on close button click or after duration.\n           */\n          const dismiss = () =>\n            startTransition(() =>\n              setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n            )\n\n          /**\n           * Create updated state by:\n           * 1. Removing any existing toast with the same ID (prevents duplicates)\n           * 2. Adding the new toast with its dismiss handler\n           * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n           */\n          return [\n            ...prevState.filter((toast) => toast.id !== id),\n            {\n              dismiss,\n              id,\n              updatedAt: Date.now(),\n              params: {...params, duration},\n            },\n          ]\n        })\n      })\n\n      return id\n    }\n\n    return {version: 0.0, push}\n  }, [])\n\n  return (\n    <ToastContext.Provider value={value}>\n      {children}\n      {mounted && (\n        <LayerProvider zOffset={zOffset}>\n          <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n            <AnimatePresence initial={false} mode=\"popLayout\">\n              {state.map(({dismiss, id, params, updatedAt}) => (\n                <Toast\n                  key={id}\n                  closable={params.closable}\n                  description={params.description}\n                  onClose={dismiss}\n                  status={params.status}\n                  title={params.title}\n                  duration={params.duration}\n                  updatedAt={updatedAt}\n                />\n              ))}\n            </AnimatePresence>\n          </ToastLayer>\n        </LayerProvider>\n      )}\n    </ToastContext.Provider>\n  )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n  const value = useContext(ToastContext)\n\n  if (!value) {\n    throw new Error('useToast(): missing context value')\n  }\n\n  // NOTE: This check is for future-compatiblity\n  // - If the value is not an object, it’s not compatible with the current version\n  // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n  if (!isRecord(value) || value.version !== 0.0) {\n    throw new Error('useToast(): the context value is not compatible')\n  }\n\n  return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n  state: TreeState,\n  itemElements: HTMLElement[],\n  focusedElement: HTMLElement,\n): HTMLElement | null {\n  const idx = itemElements.indexOf(focusedElement)\n  const els = itemElements.slice(0, idx)\n  const len = els.length\n\n  for (let i = len - 1; i >= 0; i -= 1) {\n    const itemKey = els[i].getAttribute('data-tree-key')\n\n    if (!itemKey) {\n      continue\n    }\n\n    const segments = itemKey.split('/')\n\n    segments.pop()\n\n    const p: string[] = []\n\n    let expanded = true\n\n    for (let j = 0; j < segments.length; j += 1) {\n      p.push(segments[j])\n\n      const k = p.join('/')\n\n      if (!state[k]?.expanded) {\n        expanded = false\n        break\n      }\n    }\n\n    if (expanded) {\n      return els[i]\n    }\n  }\n\n  return null\n}\n\nexport function _findNextItemElement(\n  state: TreeState,\n  itemElements: HTMLElement[],\n  focusedElement: HTMLElement,\n): HTMLElement | null {\n  const idx = itemElements.indexOf(focusedElement)\n  const els = itemElements.slice(idx)\n  const len = itemElements.length\n\n  for (let i = 1; i < len; i += 1) {\n    if (!els[i]) {\n      continue\n    }\n\n    const itemKey = els[i].getAttribute('data-tree-key')\n\n    if (!itemKey) {\n      continue\n    }\n\n    const segments = itemKey.split('/')\n\n    segments.pop()\n\n    const p: string[] = []\n\n    let expanded = true\n\n    for (let j = 0; j < segments.length; j += 1) {\n      p.push(segments[j])\n\n      const k = p.join('/')\n\n      if (!state[k]?.expanded) {\n        expanded = false\n        break\n      }\n    }\n\n    if (expanded) {\n      return els[i]\n    }\n  }\n\n  return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n  if (el.getAttribute('role') === 'treeitem') {\n    el.focus()\n  }\n\n  if (el.getAttribute('role') === 'none') {\n    const firstChild = el.firstChild\n\n    if (firstChild && firstChild instanceof HTMLElement) {\n      firstChild.focus()\n    }\n  }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n  '@sanity/ui/context/tree',\n  null,\n)\n","import {\n  forwardRef,\n  useCallback,\n  useEffect,\n  useImperativeHandle,\n  useMemo,\n  useRef,\n  useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n  gap?: number | number[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = forwardRef(function Tree(\n  props: TreeProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n  const {children, gap, space: deprecated_space = 1, onFocus, ...restProps} = props\n  const spacing = gap === undefined ? deprecated_space : gap\n  const ref = useRef<HTMLDivElement | null>(null)\n  const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n  const focusedElementRef = useRef(focusedElement)\n  const path: string[] = useMemo(() => [], [])\n  const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n  const [state, setState] = useState<TreeState>({})\n  const stateRef = useRef(state)\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n  useEffect(() => {\n    focusedElementRef.current = focusedElement\n  }, [focusedElement])\n\n  useEffect(() => {\n    stateRef.current = state\n  }, [state])\n\n  const registerItem = useCallback(\n    (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n      setState((s) => ({...s, [path]: {element, expanded}}))\n\n      if (selected) {\n        setFocusedElement(element)\n      }\n\n      return () => {\n        setState((s) => {\n          const newState = {...s}\n\n          delete newState[path]\n\n          return newState\n        })\n      }\n    },\n    [],\n  )\n\n  const setExpanded = useCallback((path: string, expanded: boolean) => {\n    setState((s) => {\n      const itemState = s[path]\n\n      if (!itemState) return s\n\n      return {...s, [path]: {...itemState, expanded}}\n    })\n  }, [])\n\n  const contextValue: TreeContextValue = useMemo(\n    () => ({\n      version: 0.0,\n      focusedElement: focusedElement || itemElements[0] || null,\n      level: 0,\n      path,\n      registerItem,\n      setExpanded,\n      setFocusedElement,\n      gap: spacing,\n      space: spacing,\n      state,\n    }),\n    [focusedElement, itemElements, path, registerItem, setExpanded, spacing, 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        gap={spacing}\n      >\n        {children}\n      </Stack>\n    </TreeContext.Provider>\n  )\n})\nTree.displayName = 'ForwardRef(Tree)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n  return css`\n    &[role='none'] > [role='treeitem'] {\n      outline: none;\n      cursor: default;\n      border-radius: 3px;\n\n      background-color: var(--card-bg-color);\n      color: var(--treeitem-fg-color);\n\n      &:focus {\n        position: relative;\n      }\n    }\n\n    &[role='treeitem'] {\n      outline: none;\n\n      & > div {\n        cursor: default;\n        border-radius: 3px;\n\n        background-color: var(--card-bg-color);\n        color: var(--treeitem-fg-color);\n      }\n\n      &:focus > div {\n        position: relative;\n      }\n    }\n  `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n  const $tone = 'default'\n  const {color} = getTheme_v2(props.theme)\n  const tone = color.selectable[$tone]\n\n  return css`\n    &[role='none'] {\n      & > [role='treeitem'] {\n        ${_cardColorStyle(color, tone.enabled)}\n      }\n\n      &[data-selected] > [role='treeitem'] {\n        ${_cardColorStyle(color, tone.pressed)}\n      }\n\n      @media (hover: hover) {\n        &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n          ${_cardColorStyle(color, tone.hovered)}\n        }\n\n        & > [role='treeitem']:focus {\n          ${_cardColorStyle(color, tone.selected)}\n        }\n      }\n    }\n\n    &[role='treeitem'] {\n      & > [data-ui='TreeItem__box'] {\n        ${_cardColorStyle(color, tone.enabled)}\n      }\n\n      &[data-selected] > [data-ui='TreeItem__box'] {\n        ${_cardColorStyle(color, tone.pressed)}\n      }\n\n      @media (hover: hover) {\n        &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n          ${_cardColorStyle(color, tone.hovered)}\n        }\n\n        &:focus > [data-ui='TreeItem__box'] {\n          ${_cardColorStyle(color, tone.selected)}\n        }\n      }\n    }\n  `\n}\n\nexport interface TreeItemBoxStyleProps {\n  $level: number\n}\n\nexport function treeItemBoxStyle(\n  props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n  const {$level} = props\n  const {space} = getTheme_v2(props.theme)\n\n  return css`\n    padding-left: ${rem(space[2] * $level)};\n\n    &[data-as='a'] {\n      text-decoration: none;\n    }\n  `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n  const tree = useContext(TreeContext)\n\n  if (!tree) {\n    throw new Error('Tree: missing context value')\n  }\n\n  return tree\n}\n","import {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n  expanded?: boolean\n}\n\nexport function TreeGroup(\n  props: TreeGroupProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n  const {children, expanded = false, ...restProps} = props\n  const tree = useTree()\n\n  return (\n    <Stack\n      as=\"ul\"\n      data-ui=\"TreeGroup\"\n      {...restProps}\n      hidden={!expanded}\n      marginTop={tree.gap}\n      role=\"group\"\n      gap={tree.gap}\n    >\n      {children}\n    </Stack>\n  )\n}\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n  treeItemBoxStyle,\n  TreeItemBoxStyleProps,\n  treeItemRootColorStyle,\n  treeItemRootStyle,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n  expanded?: boolean\n  fontSize?: number | number[]\n  icon?: React.ElementType\n  /**\n   * Allows passing a custom element type to the link component\n   */\n  linkAs?: BoxProps['as']\n  padding?: number | number[]\n  gap?: number | number[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  text?: React.ReactNode\n  weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = styled.li(treeItemRootStyle, treeItemRootColorStyle)\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n  & > svg {\n    transition: transform 100ms;\n  }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem(\n  props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n  const {\n    children,\n    expanded: expandedProp = false,\n    fontSize = 1,\n    href,\n    icon: IconComponent,\n    id: idProp,\n    linkAs,\n    muted,\n    onClick,\n    padding = 2,\n    selected = false,\n    gap,\n    space: deprecated_space = 2,\n    text,\n    weight,\n    ...restProps\n  } = props\n  const spacing = gap === undefined ? deprecated_space : gap\n  const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)\n  /**\n   * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n   * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n   * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n   * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n   */\n  const setRootElement = useCallback((node: HTMLLIElement | null) => {\n    startTransition(() => _setRootElement(node))\n  }, [])\n\n  const treeitemRef = useRef<HTMLDivElement | null>(null)\n  const tree = useTree()\n  const {path, registerItem, setExpanded, setFocusedElement} = tree\n  const _id = useId()\n  const id = idProp || _id\n  const [itemPath, itemKey] = useMemo(() => {\n    const itemPath = path.concat([id || ''])\n    return [itemPath, itemPath.join('/')]\n  }, [id, path])\n  const itemState = tree.state[itemKey]\n  const focused = tree.focusedElement === rootElement\n  const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n  const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n  const contextValue = useMemo(\n    () => ({...tree, level: tree.level + 1, path: itemPath}),\n    [itemPath, tree],\n  )\n\n  const handleClick = useCallback(\n    (event: React.MouseEvent<HTMLLIElement>) => {\n      if (onClick) onClick(event)\n\n      const target = event.target\n\n      if (\n        target instanceof HTMLElement &&\n        (target.getAttribute('data-ui') === 'TreeItem' ||\n          target.closest('[data-ui=\"TreeItem__box\"]'))\n      ) {\n        event.stopPropagation()\n        setExpanded(itemKey, !expanded)\n        setFocusedElement(rootElement)\n      }\n    },\n    [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n  )\n\n  const handleKeyDown = useCallback(\n    (event: React.KeyboardEvent<HTMLElement>) => {\n      if (focused && event.key === 'Enter') {\n        const el = treeitemRef.current || rootElement\n\n        el?.click()\n      }\n    },\n    [focused, rootElement],\n  )\n\n  useEffect(() => {\n    if (!rootElement) return\n\n    return registerItem(rootElement, itemKey, expanded, selected)\n  }, [expanded, itemKey, registerItem, rootElement, selected])\n\n  const content = (\n    <Flex padding={padding}>\n      <Box\n        marginRight={spacing}\n        style={{\n          visibility: IconComponent || children ? 'visible' : 'hidden',\n          pointerEvents: 'none',\n        }}\n      >\n        {IconComponent && (\n          <Text muted={muted} size={fontSize} weight={weight}>\n            <IconComponent />\n          </Text>\n        )}\n        {!IconComponent && (\n          <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n            <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n          </ToggleArrowText>\n        )}\n      </Box>\n      <Box flex={1}>\n        <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n          {text}\n        </Text>\n      </Box>\n    </Flex>\n  )\n\n  if (href) {\n    return (\n      <StyledTreeItem\n        data-selected={selected ? '' : undefined}\n        data-tree-id={id}\n        data-tree-key={itemKey}\n        data-ui=\"TreeItem\"\n        {...restProps}\n        onClick={handleClick}\n        ref={setRootElement}\n        role=\"none\"\n      >\n        <TreeItemBox\n          $level={tree.level}\n          aria-expanded={expanded}\n          as={linkAs}\n          data-ui=\"TreeItem__box\"\n          href={href}\n          ref={treeitemRef}\n          role=\"treeitem\"\n          tabIndex={tabIndex}\n        >\n          {content}\n        </TreeItemBox>\n\n        <TreeContext.Provider value={contextValue}>\n          {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n        </TreeContext.Provider>\n      </StyledTreeItem>\n    )\n  }\n\n  return (\n    <StyledTreeItem\n      data-selected={selected ? '' : undefined}\n      data-ui=\"TreeItem\"\n      data-tree-id={id}\n      data-tree-key={itemKey}\n      {...restProps}\n      aria-expanded={expanded}\n      onClick={handleClick}\n      onKeyDown={handleKeyDown}\n      ref={setRootElement}\n      role=\"treeitem\"\n      tabIndex={tabIndex}\n    >\n      <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n        {content}\n      </TreeItemBox>\n\n      <TreeContext.Provider value={contextValue}>\n        {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n      </TreeContext.Provider>\n    </StyledTreeItem>\n  )\n}\nTreeItem.displayName = 'TreeItem'\n"],"names":["_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","useArrayProp","val","defaultVal","$","_c","t0","_getArrayProp","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","boundaryElement","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","children","StyledAutocomplete","styled","div","withConfig","displayName","componentId","ListBox","Box","rotate","keyframes","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","id","onSelect","selected","value","setTimeout","handleClick","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","InnerAutocomplete","forwardRef","forwardedRef","customValidity","filterOptionProp","icon","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","optionsProp","prefix","readOnly","relatedElements","renderOptionProp","renderPopover","restProps","suffix","t6","valueProp","border","filterOption","fontSize","listBox","options","padding","popover","radius","renderOption","renderValue","EMPTY_RECORD","paddingProp","t7","t8","t9","dispatch","useReducer","t10","t11","value_0","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","inputElement","_setInputElement","node","startTransition","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","t16","find","o","currentOption","t17","t18","filteredOptions","filteredOptionsLen","activeItemId","expanded","concat","focusInside","e","handleRootBlur","t19","event_0","listBoxElement","focusedElement","HTMLElement","listFocused_0","handleRootFocus","t20","v","handleOptionSelect","t21","event_1","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","listEl","handleRootKeyDown","t22","event_2","nextQuery","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","ChevronDownIcon","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","cloneElement","t43","content","bb3","results","t44","t45","RenderPopover","hidden","onMouseEnter","onMouseLeave","Autocomplete","v_0","v_1","Math","max","StyledBreadcrumbs","ol","ExpandButton","Button","Breadcrumbs","gap","maxLength","separator","space","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","Children","toArray","isValidElement","rawItems","items","useItems","item","itemIndex","len","beforeLength","ceil","afterLength","floor","slice","dialogStyle","theme","color","getTheme_v2","display","backdrop","responsiveDialogPositionStyle","media","_responsive","$position","position","animationDialogStyle","$animate","css","DialogContext","createGlobalScopedContext","version","useDialog","useContext","isTargetWithinScope","portalElement","containsOrEqualsElement","StyledDialog","Layer","responsivePaddingStyle","DialogContainer","Container","DialogCardRoot","Card","DialogLayout","Flex","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","portal","portalProp","radiusProp","scheme","shadow","shadowProp","width","widthProp","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","target_0","CloseIcon","Dialog","dialog","useTheme_v2","_positionProp","_zOffsetProp","onActivate","cardRadius","cardShadow","zOffset","animate","cardRadiusProp","_animate","positionProp","zOffsetProp","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","overflow","popoverProps","keyframe","animation","skeletonStyle","$visible","$animated","StyledSkeleton","responsiveRadiusStyle","Skeleton","delay","animated","visible","setVisible","timeout","$size","$style","font","fontStyle","sizeIndex","sizes","height","lineHeight","ascenderHeight","descenderHeight","TextSkeleton","size","LabelSkeleton","HeadingSkeleton","CodeSkeleton","TabPanel","flex","LOADING_BAR_HEIGHT","STATUS_CARD_TONE","warning","success","BUTTON_TONE","TextBox","StyledToast","LoadingBar","LoadingBarMask","LoadingBarProgress","default","tone","enabled","bg","ROLES","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","verticalAlign","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionToast","motion","create","MotionFlex","MotionText","Text","MotionLoadingBar","MotionLoadingBarProgress","useMounted","useSyncExternalStore","subscribe","ToastContext","ToastLayer","paddingX","paddingY","StyledLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","params","prevState","toast","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","Tree","spacing","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","$tone","selectable","_cardColorStyle","pressed","hovered","treeItemBoxStyle","$level","rem","useTree","tree","TreeGroup","StyledTreeItem","li","TreeItemBox","attrs","forwardedAs","ToggleArrowText","TreeItem","IconComponent","idProp","linkAs","muted","text","weight","expandedProp","rootElement","_setRootElement","setRootElement","treeitemRef","_id","useId","itemPath_0","closest","click","visibility","pointerEvents","transform"],"mappings":"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"}