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