{"version":3,"file":"_visual-editing.mjs","sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.ts","../../src/core/styles/helpers.ts","../../src/core/styles/font/responsiveFont.ts","../../src/core/styles/font/codeFontStyle.ts","../../src/core/styles/font/headingFontStyle.ts","../../src/core/styles/font/labelFontStyle.ts","../../src/core/styles/font/textAlignStyle.ts","../../src/core/styles/font/textFontStyle.ts","../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/theme/themeContext.ts","../../src/core/theme/themeProvider.tsx","../../src/core/theme/useRootTheme.ts","../../src/core/theme/themeColorProvider.tsx","../../src/core/theme/useTheme.ts","../../src/core/styles/border/borderStyle.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/grid/gridStyle.ts","../../src/core/styles/input/responsiveInputPaddingStyle.ts","../../src/core/styles/input/textInputStyle.ts","../../src/core/styles/margin/marginStyle.ts","../../src/core/styles/padding/paddingStyle.ts","../../src/core/styles/radius/radiusStyle.ts","../../src/core/styles/shadow/shadowStyle.ts","../../src/core/utils/spanWithTextOverflow.tsx","../../src/core/primitives/label/styles.ts","../../src/core/primitives/label/label.tsx","../../src/core/primitives/avatar/styles.ts","../../src/core/primitives/avatar/avatar.tsx","../../src/core/primitives/avatar/avatarCounter.tsx","../../src/core/primitives/avatar/avatarStack.tsx","../../src/core/primitives/box/box.tsx","../../src/core/primitives/text/styles.ts","../../src/core/primitives/text/text.tsx","../../src/core/primitives/badge/styles.ts","../../src/core/primitives/badge/badge.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/styles/card/_cardColorStyle.ts","../../src/core/primitives/button/styles.ts","../../src/core/primitives/button/button.tsx","../../src/core/primitives/card/styles.ts","../../src/core/primitives/card/card.tsx","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/primitives/checkbox/styles.ts","../../src/core/primitives/checkbox/checkbox.tsx","../../src/core/primitives/code/styles.ts","../../src/core/primitives/code/code.tsx","../../src/core/primitives/container/styles.ts","../../src/core/primitives/container/container.tsx","../../src/core/primitives/grid/grid.tsx","../../src/core/primitives/heading/styles.ts","../../src/core/primitives/heading/heading.tsx","../../src/core/primitives/inline/styles.ts","../../src/core/primitives/inline/inline.tsx","../../src/core/primitives/kbd/kbd.tsx","../../src/core/middleware/origin.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../../src/core/lib/isRecord.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../../src/core/utils/elementQuery/helpers.ts","../../src/core/utils/elementQuery/elementQuery.tsx","../../src/core/utils/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../src/core/utils/portal/portalProvider.tsx","../../src/core/utils/srOnly/srOnly.tsx","../../src/core/utils/virtualList/virtualList.tsx","../../src/core/utils/getElementRef.ts","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/helpers.ts","../../src/core/primitives/popover/popoverCard.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/radio/styles.ts","../../src/core/primitives/radio/radio.tsx","../../src/core/primitives/select/styles.ts","../../src/core/primitives/select/select.tsx","../../src/core/primitives/stack/styles.ts","../../src/core/primitives/stack/stack.tsx","../../src/core/primitives/switch/styles.ts","../../src/core/primitives/switch/switch.tsx","../../src/core/primitives/textArea/textArea.tsx","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useDelayedState.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipCard.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.ts","../../src/core/primitives/_selectable/style.ts","../../src/core/primitives/_selectable/selectable.tsx","../../src/core/components/menu/useMenu.ts","../../src/core/components/menu/menuGroup.tsx","../../src/core/components/menu/menuItem.tsx","../../src/core/components/tab/tab.tsx","../../src/core/components/tab/tabList.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n  type BaseTheme as _BaseTheme,\n  buildTheme,\n  type HSL as _HSL,\n  type PartialThemeColorBuilderOpts,\n  type RGB as _RGB,\n  type RootTheme as _RootTheme,\n  type Theme as _Theme,\n  type ThemeAvatar,\n  type ThemeBoxShadow,\n  type ThemeColor,\n  type ThemeColorBase,\n  type ThemeColorBuilderOpts,\n  type ThemeColorButton,\n  type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n  type ThemeColorButtonState,\n  type ThemeColorButtonStates,\n  type ThemeColorButtonTones,\n  type ThemeColorCard,\n  type ThemeColorCardState,\n  type ThemeColorGenericState,\n  type ThemeColorInput,\n  type ThemeColorInputState,\n  type ThemeColorInputStates,\n  type ThemeColorMuted,\n  type ThemeColorMutedTone,\n  type ThemeColorName,\n  type ThemeColorScheme,\n  type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n  type ThemeColorSchemes,\n  type ThemeColorSelectable,\n  type ThemeColorSelectableState,\n  type ThemeColorSelectableStates,\n  type ThemeColorSolid,\n  type ThemeColorSolidTone,\n  type ThemeColorSpot,\n  type ThemeColorSpotKey,\n  type ThemeColorSyntax as _ThemeColorSyntax,\n  type ThemeColorToneKey,\n  type ThemeFont as _ThemeFont,\n  type ThemeFontKey as _ThemeFontKey,\n  type ThemeFonts as _ThemeFonts,\n  type ThemeFontSize as _ThemeFontSize,\n  type ThemeFontWeight as _ThemeFontWeight,\n  type ThemeFontWeightKey as _ThemeFontWeightKey,\n  type ThemeInput,\n  type ThemeLayer as _ThemeLayer,\n  type ThemeShadow as _ThemeShadow,\n  type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n  type PartialThemeColorBuilderOpts,\n  type ThemeAvatar,\n  type ThemeColor,\n  type ThemeColorBase,\n  type ThemeColorBuilderOpts,\n  type ThemeColorButton,\n  type ThemeColorButtonState,\n  type ThemeColorButtonStates,\n  type ThemeColorButtonTones,\n  type ThemeColorCard,\n  type ThemeColorCardState,\n  type ThemeColorGenericState,\n  type ThemeColorInput,\n  type ThemeColorInputState,\n  type ThemeColorInputStates,\n  type ThemeColorMuted,\n  type ThemeColorMutedTone,\n  type ThemeColorName,\n  type ThemeColorScheme,\n  type ThemeColorSchemes,\n  type ThemeColorSelectable,\n  type ThemeColorSelectableState,\n  type ThemeColorSelectableStates,\n  type ThemeColorSolid,\n  type ThemeColorSolidTone,\n  type ThemeColorSpot,\n  type ThemeColorSpotKey,\n  type ThemeColorToneKey,\n  type ThemeInput,\n}\n\nimport {\n  createColorTheme as _createColorTheme,\n  hexToRgb as _hexToRgb,\n  hslToRgb as _hslToRgb,\n  multiply as _multiply,\n  parseColor as _parseColor,\n  rgba as _rgba,\n  rgbToHex as _rgbToHex,\n  rgbToHsl as _rgbToHsl,\n  screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import type {Transition, Variant} from 'motion/react'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n  card: {\n    initial: Variant\n    hidden: Variant\n    visible: Variant\n    scaleIn: Variant\n    scaleOut: Variant\n  }\n  children: {\n    hidden: Variant\n    visible: Variant\n  }\n  transition: Transition\n} = {\n  card: {\n    initial: {\n      scale: 0.97,\n      willChange: 'transform',\n    },\n    hidden: {\n      opacity: 0,\n    },\n    visible: {\n      opacity: 1,\n      transition: {\n        when: 'beforeChildren',\n        duration: POPOVER_MOTION_DURATION / 2,\n      },\n    },\n    scaleIn: {\n      scale: 1,\n    },\n    scaleOut: {\n      scale: 0.97,\n    },\n  },\n  children: {\n    hidden: {\n      opacity: 0,\n    },\n    visible: {\n      opacity: 1,\n    },\n  },\n  transition: {\n    type: 'spring',\n    visualDuration: POPOVER_MOTION_DURATION,\n    bounce: 0.25,\n  },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n  top: 'bottom',\n  right: 'left',\n  bottom: 'top',\n  left: 'right',\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n  return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n  return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n  return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n  return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n  return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n  return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n  return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n  return element.contains(node) || element === node\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n  if (!(el instanceof Element)) return false\n\n  const style = window.getComputedStyle(el)\n\n  return (\n    style.overflowX.includes('auto') ||\n    style.overflowX.includes('scroll') ||\n    style.overflowY.includes('auto') ||\n    style.overflowY.includes('scroll')\n  )\n}\n","import {CSSObject, getTheme_v2, Theme} from '@sanity/ui/theme'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n  return keys.reduce<CSSObject>((style, key) => {\n    style[key] = value\n\n    return style\n  }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n  if (pixelValue === 0) return 0\n\n  return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n  media: number[],\n  values: T[],\n  callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n  const statements = values?.map(callback) || []\n\n  return statements.map((statement, mediaIndex) => {\n    if (mediaIndex === 0) return statement\n\n    return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n  })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n  if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n  return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n  theme: Theme,\n  props: string[],\n  spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n  if (!Array.isArray(spaceIndexes)) {\n    throw new Error('the property must be array of numbers')\n  }\n\n  if (spaceIndexes.length === 0) {\n    return null\n  }\n\n  const {media, space} = getTheme_v2(theme)\n\n  return _responsive(media, spaceIndexes, (spaceIndex) =>\n    _fillCSSObject(props, rem(space[spaceIndex])),\n  )\n}\n","import {CSSObject, getTheme_v2, ThemeFontKey, ThemeFontSize} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n  fontKey: ThemeFontKey,\n  props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n  const {$size, $weight} = props\n  const {font, media} = getTheme_v2(props.theme)\n  const {family, sizes, weights} = font[fontKey]\n  const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n  // eslint-disable-next-line no-warning-comments\n  // @todo: make this configurable\n  const defaultSize = sizes[2]\n\n  const base: CSSObject = {\n    'position': 'relative',\n    'fontFamily': family,\n    'fontWeight': `${fontWeight}`,\n    'padding': '1px 0',\n    'margin': 0,\n\n    '&:before': {\n      content: '\"\"',\n      display: 'block',\n      height: 0,\n    },\n\n    '&:after': {\n      content: '\"\"',\n      display: 'block',\n      height: 0,\n    },\n\n    '& > code, & > span': {\n      display: 'block',\n    },\n\n    '&:not([hidden])': {\n      display: 'block',\n    },\n  }\n\n  // eslint-disable-next-line no-warning-comments\n  // @TODO fix the real condition that is causing $size to be undefined sometimes\n  if (!$size) {\n    // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n    if (!responsiveFont.warned) {\n      // eslint-disable-next-line no-console\n      console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n      // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n      responsiveFont.warned = true\n    }\n\n    return [base]\n  }\n\n  const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n  return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n  const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n  const negHeight = ascenderHeight + descenderHeight\n  const capHeight = lineHeight - negHeight\n  const iconOffset = (capHeight - iconSize) / 2\n  const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n  const customIconOffset = (capHeight - customIconSize) / 2\n\n  return {\n    'fontSize': rem(fontSize),\n    'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n    'letterSpacing': rem(letterSpacing),\n    'transform': `translateY(${rem(descenderHeight)})`,\n\n    '&:before': {\n      marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n    },\n\n    '&:after': {\n      marginBottom: '-1px',\n    },\n\n    '& svg:not([data-sanity-icon])': {\n      fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n      margin: rem(customIconOffset),\n    },\n\n    '& [data-sanity-icon]': {\n      fontSize: `calc(${iconSize} / 16 * 1rem)`,\n      margin: rem(iconOffset),\n    },\n  }\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n  return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n  return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n  return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n  props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$align, (textAlign) => {\n    return {textAlign}\n  })\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n  return responsiveFont('text', props)\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n  if (typeof globalThis !== 'undefined') return globalThis\n  if (typeof window !== 'undefined') return window\n  if (typeof self !== 'undefined') return self\n  if (typeof global !== 'undefined') return global\n\n  throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n  /**\n   * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n   */\n  key: `@sanity/ui/context/${string}`,\n  defaultValue: T,\n): Context<ContextType> {\n  const symbol = Symbol.for(key)\n\n  /**\n   * Prevent errors about re-renders on React SSR on Next.js App Router\n   */\n  if (typeof document === 'undefined') {\n    const context = createContext<ContextType>(defaultValue)\n    context.displayName = key\n    return context\n  }\n\n  globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n  return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n  '@sanity/ui/context/theme',\n  null,\n)\n","import {\n  getScopedTheme,\n  type RootTheme,\n  type Theme,\n  type ThemeColorCardToneKey,\n  type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n  children?: React.ReactNode\n  scheme?: ThemeColorSchemeKey\n  theme?: RootTheme\n  tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.JSX.Element {\n  const parentTheme = useContext(ThemeContext)\n  const {children} = props\n  const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n  const rootTheme = props.theme ?? (parentTheme?.theme || null)\n  const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n  const themeContext: ThemeContextValue | null = useMemo(() => {\n    if (!rootTheme) return null\n\n    return {\n      version: 0.0,\n      theme: rootTheme,\n      scheme,\n      tone,\n    }\n  }, [rootTheme, scheme, tone])\n\n  const theme: Theme | null = useMemo(() => {\n    if (!rootTheme) return null\n\n    return getScopedTheme(rootTheme, scheme, tone)\n  }, [scheme, rootTheme, tone])\n\n  if (!theme) {\n    return <pre>ThemeProvider: no \"theme\" property provided</pre>\n  }\n\n  return (\n    <ThemeContext.Provider value={themeContext}>\n      <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n    </ThemeContext.Provider>\n  )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n  const value = useContext(ThemeContext)\n\n  if (!value) {\n    throw new Error('useRootTheme(): missing context value')\n  }\n\n  return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n  children?: React.ReactNode\n  scheme?: ThemeColorSchemeKey\n  tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.JSX.Element {\n  const {children, scheme, tone} = props\n  const root = useRootTheme()\n\n  return (\n    <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n      {children}\n    </ThemeProvider>\n  )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {getTheme_v2, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n  return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n  return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n  (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n  return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n  const {card, media} = getTheme_v2(props.theme)\n  const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n  return _responsive(media, props.$border, (value) =>\n    value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n  )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n  const {card, media} = getTheme_v2(props.theme)\n  const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n  return _responsive(media, props.$borderTop, (value) =>\n    value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n  )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n  const {card, media} = getTheme_v2(props.theme)\n  const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n  return _responsive(media, props.$borderRight, (value) =>\n    value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n  )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n  const {card, media} = getTheme_v2(props.theme)\n  const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n  return _responsive(media, props.$borderBottom, (value) =>\n    value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n  )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n  const {card, media} = getTheme_v2(props.theme)\n  const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n  return _responsive(media, props.$borderLeft, (value) =>\n    value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n  )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n  '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n    listStyle: 'none',\n  },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n  content: 'content-box',\n  border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n  stretch: 'stretch',\n  fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n  return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n  (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n  return [\n    responsiveBoxSizingStyle,\n    responsiveBoxHeightStyle,\n    responsiveBoxOverflowStyle,\n    responsiveBoxDisplayStyle,\n  ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$display, (display) => ({\n    '&:not([hidden])': {display},\n  }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$sizing, (sizing) => ({\n    boxSizing: BOX_SIZING[sizing],\n  }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$height, (height) => ({\n    height: BOX_HEIGHT[height],\n  }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$overflow, (overflow) => ({\n    overflow,\n  }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n  minWidth: 0,\n  minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n  CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n  return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n  props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n  const {media} = getTheme_v2(props.theme)\n\n  if (!props.$flex) return EMPTY_ARRAY\n\n  return _responsive(media, props.$flex, (flex) => ({flex: `${flex}`}))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n  '&&:not([hidden])': {\n    display: 'flex',\n  },\n}\n\nexport function responsiveFlexStyle(): Array<\n  CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n  return [\n    BASE_STYLE,\n    responsiveFlexAlignStyle,\n    responsiveFlexGapStyle,\n    responsiveFlexWrapStyle,\n    responsiveFlexJustifyStyle,\n    responsiveFlexDirectionStyle,\n  ]\n}\n\nexport function responsiveFlexAlignStyle(\n  props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$align, (align) => {\n    return {alignItems: align}\n  })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n  const {media, space} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$gap, (gap) => ({\n    gap: gap ? rem(space[gap]) : undefined,\n  }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$wrap, (wrap) => {\n    return {flexWrap: wrap}\n  })\n}\n\nexport function responsiveFlexJustifyStyle(\n  props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$justify, (justify) => {\n    return {justifyContent: justify}\n  })\n}\n\nexport function responsiveFlexDirectionStyle(\n  props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$direction, (direction) => {\n    return {flexDirection: direction}\n  })\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n  return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n  base?: {bg: string}\n  border?: {color: string; width: number}\n  focusRing: ThemeFocusRing\n}): string {\n  const {base, border, focusRing} = opts\n  const focusRingOutsetWidth = focusRing.offset + focusRing.width\n  const focusRingInsetWidth = 0 - focusRing.offset\n  const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n  return [\n    focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n    border && focusRingBorderStyle(border),\n    focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n    focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n  ]\n    .filter(Boolean)\n    .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n  (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n  return [\n    responsiveGridItemRowStyle,\n    responsiveGridItemRowStartStyle,\n    responsiveGridItemRowEndStyle,\n    responsiveGridItemColumnStyle,\n    responsiveGridItemColumnStartStyle,\n    responsiveGridItemColumnEndStyle,\n  ]\n}\n\nconst GRID_ITEM_ROW = {\n  auto: 'auto',\n  full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n  auto: 'auto',\n  full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$row, (row) => {\n    if (typeof row === 'number') {\n      return {gridRow: `span ${row} / span ${row}`}\n    }\n\n    return {gridRow: GRID_ITEM_ROW[row]}\n  })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$rowStart, (rowStart) => ({\n    gridRowStart: `${rowStart}`,\n  }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: `${rowEnd}`}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$column, (column) => {\n    if (typeof column === 'number') {\n      return {gridColumn: `span ${column} / span ${column}`}\n    }\n\n    return {gridColumn: GRID_ITEM_COLUMN[column]}\n  })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$columnStart, (columnStart) => ({\n    gridColumnStart: `${columnStart}`,\n  }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$columnEnd, (columnEnd) => ({\n    gridColumnEnd: `${columnEnd}`,\n  }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n  '&&:not([hidden])': {\n    display: 'grid',\n  },\n  '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n    listStyle: 'none',\n  },\n}\n\nconst GRID_AUTO_COLUMS = {\n  auto: 'auto',\n  min: 'min-content',\n  max: 'max-content',\n  fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n  auto: 'auto',\n  min: 'min-content',\n  max: 'max-content',\n  fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n  CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n  return [\n    GRID_CSS,\n    responsiveGridAutoFlowStyle,\n    responsiveGridAutoRowsStyle,\n    responsiveGridAutoColsStyle,\n    responsiveGridColumnsStyle,\n    responsiveGridRowsStyle,\n    responsiveGridGapStyle,\n    responsiveGridGapXStyle,\n    responsiveGridGapYStyle,\n  ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$autoFlow, (autoFlow) => ({\n    gridAutoFlow: autoFlow,\n  }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$autoRows, (autoRows) => ({\n    gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n  }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$autoCols, (autoCols) => ({\n    gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n  }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$columns, (columns) => ({\n    gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n  }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$rows, (rows) => ({\n    gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n  }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media, space} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$gap, (gap) => ({\n    gridGap: gap ? rem(space[gap]) : undefined,\n  }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media, space} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$gapX, (gapX) => ({\n    columnGap: gapX ? rem(space[gapX]) : undefined,\n  }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n  const {media, space} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$gapY, (gapY) => ({\n    rowGap: gapY ? rem(space[gapY]) : undefined,\n  }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n  $fontSize: number[]\n  $iconLeft?: boolean\n  $iconRight?: boolean\n  $padding: number[]\n  $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n  props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n  const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n  const {font, media, space} = getTheme_v2(props.theme)\n  const len = Math.max($padding.length, $space.length, $fontSize.length)\n  const _padding: number[] = []\n  const _space: number[] = []\n  const _fontSize: number[] = []\n\n  for (let i = 0; i < len; i += 1) {\n    _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n    _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n    _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n  }\n\n  return _responsive(media, _padding, (_, i) => {\n    const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n    const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n    const p = space[_padding[i]]\n    const s = space[_space[i]]\n\n    const styles = {\n      paddingTop: rem(p - size.ascenderHeight),\n      paddingRight: rem(p),\n      paddingBottom: rem(p - size.descenderHeight),\n      paddingLeft: rem(p),\n    }\n\n    if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n    if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n    return styles\n  })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n  props: {\n    $fontSize: number[]\n    $padding: number[]\n    $space: number[]\n  } & ThemeProps,\n): CSSObject[] {\n  return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n  props: {\n    $fontSize: number[]\n    $padding: number[]\n    $space: number[]\n  } & ThemeProps,\n): CSSObject[] {\n  return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n  props: {\n    $fontSize: number[]\n    $padding: number[]\n    $space: number[]\n  } & ThemeProps,\n): CSSObject[] {\n  return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {CSSObject, getTheme_v2, ThemeColorSchemeKey, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n  $fontSize: number[]\n  $scheme: ThemeColorSchemeKey\n  $tone: CardTone\n  $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n  $hasPrefix?: boolean\n  $hasSuffix?: boolean\n  $scheme: ThemeColorSchemeKey\n  $tone: CardTone\n  $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n  &:not([hidden]) {\n    display: flex;\n  }\n\n  align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n  return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n  props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n  const {$scheme, $tone, $weight} = props\n  const {color, font} = getTheme_v2(props.theme)\n\n  return css`\n    appearance: none;\n    background: none;\n    border: 0;\n    border-radius: 0;\n    outline: none;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: ${font.text.family};\n    font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n    margin: 0;\n    position: relative;\n    z-index: 1;\n    display: block;\n\n    /* NOTE: This is a hack to disable Chrome’s autofill styles */\n    &:-webkit-autofill,\n    &:-webkit-autofill:hover,\n    &:-webkit-autofill:focus,\n    &:-webkit-autofill:active {\n      -webkit-text-fill-color: var(--input-fg-color) !important;\n      transition: background-color 5000s;\n      transition-delay: 86400s /* 24h */;\n    }\n\n    /* &:is(textarea) */\n    &[data-as='textarea'] {\n      resize: none;\n    }\n\n    color: var(--input-fg-color);\n\n    &::placeholder {\n      color: var(--input-placeholder-color);\n    }\n\n    &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n      --input-fg-color: ${color.input.default.enabled.fg};\n      --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n      /* enabled */\n      &:not(:invalid):not(:disabled):not(:read-only) {\n        --input-fg-color: ${color.input.default.enabled.fg};\n        --input-placeholder-color: ${color.input.default.enabled.placeholder};\n      }\n\n      /* disabled */\n      &:not(:invalid):disabled {\n        --input-fg-color: ${color.input.default.disabled.fg};\n        --input-placeholder-color: ${color.input.default.disabled.placeholder};\n      }\n\n      /* invalid */\n      &:invalid {\n        --input-fg-color: ${color.input.invalid.enabled.fg};\n        --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n      }\n\n      /* readOnly */\n      &:read-only {\n        --input-fg-color: ${color.input.default.readOnly.fg};\n        --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n      }\n    }\n  `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n  const {font, media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$fontSize, (sizeIndex) => {\n    const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n    return {\n      fontSize: rem(size.fontSize),\n      lineHeight: `${size.lineHeight / size.fontSize}`,\n    }\n  })\n}\n\nexport function textInputRepresentationStyle(\n  props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n  const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n  const {color, input} = getTheme_v2(props.theme)\n\n  return css`\n    --input-box-shadow: none;\n\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    display: block;\n    pointer-events: none;\n    z-index: 0;\n\n    background-color: var(--card-bg-color);\n    box-shadow: var(--input-box-shadow);\n\n    border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n    border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n    border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n    border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n    &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n      --card-bg-color: ${color.input.default.enabled.bg};\n      --card-fg-color: ${color.input.default.enabled.fg};\n\n      /* enabled */\n      *:not(:disabled) + &[data-border] {\n        --input-box-shadow: ${focusRingBorderStyle({\n          color: color.input.default.enabled.border,\n          width: input.border.width,\n        })};\n      }\n\n      /* invalid */\n      *:not(:disabled):invalid + & {\n        --card-bg-color: ${color.input.invalid.enabled.bg};\n        --card-fg-color: ${color.input.invalid.enabled.fg};\n\n        &[data-border] {\n          --input-box-shadow: ${focusRingBorderStyle({\n            color: color.input.invalid.enabled.border,\n            width: input.border.width,\n          })};\n        }\n      }\n\n      /* focused */\n      *:not(:disabled):focus + & {\n        &[data-border] {\n          --input-box-shadow: ${$unstableDisableFocusRing\n            ? undefined\n            : focusRingStyle({\n                border: {color: color.input.default.enabled.border, width: input.border.width},\n                focusRing: input.text.focusRing,\n              })};\n        }\n\n        &:not([data-border]) {\n          --input-box-shadow: ${$unstableDisableFocusRing\n            ? undefined\n            : focusRingStyle({focusRing: input.text.focusRing})};\n        }\n      }\n\n      /* disabled */\n      *:not(:invalid):disabled + & {\n        --card-bg-color: ${color.input.default.disabled.bg} !important;\n        --card-fg-color: ${color.input.default.disabled.fg} !important;\n        --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n        &[data-border] {\n          --input-box-shadow: ${focusRingBorderStyle({\n            color: color.input.default.disabled.border,\n            width: input.border.width,\n          })};\n        }\n      }\n\n      *:invalid:disabled + & {\n        --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n        --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n        --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n        &[data-border] {\n          --input-box-shadow: ${focusRingBorderStyle({\n            color: color.input.invalid.disabled.border,\n            width: input.border.width,\n          })};\n        }\n      }\n\n      /* readOnly */\n      *:not(:invalid):read-only + & {\n        --card-bg-color: ${color.input.default.readOnly.bg} !important;\n        --card-fg-color: ${color.input.default.readOnly.fg} !important;\n      }\n\n      *:invalid:read-only + & {\n        --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n        --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n      }\n\n      /* hovered */\n      @media (hover: hover) {\n        *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n          --card-bg-color: ${color.input.default.hovered.bg};\n          --card-fg-color: ${color.input.default.hovered.fg};\n        }\n\n        *:invalid:not(:disabled):not(:read-only):hover + & {\n          --card-bg-color: ${color.input.invalid.hovered.bg};\n          --card-fg-color: ${color.input.invalid.hovered.fg};\n        }\n\n        *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n          --input-box-shadow: ${focusRingBorderStyle({\n            color: color.input.default.hovered.border,\n            width: input.border.width,\n          })};\n        }\n\n        *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n          --input-box-shadow: ${focusRingBorderStyle({\n            color: color.input.invalid.hovered.border,\n            width: input.border.width,\n          })};\n        }\n      }\n    }\n  `\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n  props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n  const {theme} = props\n\n  return [\n    _getResponsiveSpace(theme, ['margin'], props.$margin),\n    _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n    _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n    _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n    _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n    _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n    _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n  ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n  props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n  const {theme} = props\n\n  return [\n    _getResponsiveSpace(theme, ['padding'], props.$padding),\n    _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n    _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n    _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n    _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n    _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n    _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n  ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n  const {media, radius} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$radius, (value) => {\n    let borderRadius: string | 0 = 0\n\n    if (typeof value === 'number') {\n      borderRadius = rem(radius[value])\n    }\n\n    if (value === 'full') {\n      borderRadius = '9999px'\n    }\n\n    return {borderRadius}\n  })\n}\n","import {CSSObject, getTheme_v2, ThemeBoxShadow, ThemeShadow} from '@sanity/ui/theme'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n  return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n  if (!shadow) return EMPTY_RECORD\n\n  const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n  const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n  const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n  const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n  return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n  const {card, media, shadow} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$shadow, (index) =>\n    shadowStyle(shadow[index], card.shadow.outline),\n  )\n}\n","import {styled} from 'styled-components'\n\n/** @internal */\nexport const SpanWithTextOverflow = styled.span`\n  display: block;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  overflow: clip;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n  props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n  const {$accent, $muted} = props\n  const {font} = getTheme_v2(props.theme)\n\n  return css`\n    text-transform: uppercase;\n\n    ${$accent &&\n    css`\n      color: var(--card-accent-fg-color);\n    `}\n\n    ${$muted &&\n    css`\n      color: var(--card-muted-fg-color);\n    `}\n\n    & code {\n      font-family: ${font.code.family};\n      border-radius: 1px;\n    }\n\n    & a {\n      text-decoration: none;\n      border-radius: 1px;\n    }\n\n    & svg {\n      /* Certain popular CSS libraries changes the defaults for SVG display */\n      /* Make sure SVGs are rendered as inline elements */\n      display: inline;\n    }\n\n    & [data-sanity-icon] {\n      vertical-align: baseline;\n    }\n  `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n  accent?: boolean\n  align?: TextAlign | TextAlign[]\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  muted?: boolean\n  size?: number | number[]\n  /**\n   * Controls how overflowing text is treated.\n   * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n   * @beta\n   */\n  textOverflow?: 'ellipsis'\n  weight?: ThemeFontWeightKey\n}\n\nconst StyledLabel = styled.div<{\n  $accent?: boolean\n  $align: TextAlign[]\n  $muted: boolean\n  $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n  props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    accent,\n    align,\n    children: childrenProp,\n    muted = false,\n    size = 2,\n    textOverflow,\n    weight,\n    ...restProps\n  } = props\n\n  let children = childrenProp\n\n  if (textOverflow === 'ellipsis') {\n    children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n  } else {\n    children = <span>{children}</span>\n  }\n\n  return (\n    <StyledLabel\n      data-ui=\"Label\"\n      {...restProps}\n      $accent={accent}\n      $align={_getArrayProp(align)}\n      $muted={muted}\n      $size={_getArrayProp(size)}\n      $weight={weight}\n      ref={ref}\n    >\n      {children}\n    </StyledLabel>\n  )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n  root: avatarRootStyle,\n  arrow: avatarArrowStyle,\n  bgStroke: avatarBgStrokeStyle,\n  stroke: avatarStrokeStyle,\n  initials: avatarInitialsStyle,\n  image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n  return {\n    'position': 'absolute',\n    'boxSizing': 'border-box',\n    'zIndex': '0',\n    'opacity': '0',\n    'transition': 'all 0.2s linear',\n    'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n    'left': 0,\n    'right': 0,\n    'top': 0,\n    'bottom': 0,\n\n    '& > svg': {\n      'width': '11px',\n      'height': '7px',\n      'position': 'absolute',\n      'top': '-5px',\n      'left': '50%',\n      'transform': 'translateX(-6px)',\n\n      '&:not([hidden])': {\n        display: 'block',\n      },\n    },\n\n    \"[data-arrow-position='inside'] > &\": {\n      transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n      opacity: '0',\n    },\n\n    \"[data-arrow-position='top'] > &\": {\n      opacity: '1',\n      transform: 'rotate(0deg)',\n    },\n\n    \"[data-arrow-position='bottom'] > &\": {\n      opacity: '1',\n      transform: 'rotate(-180deg)',\n    },\n  }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n  const {$color} = props\n  const {avatar} = getTheme_v2(props.theme)\n\n  return {\n    '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n    '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n    'backgroundColor': 'var(--avatar-bg-color)',\n    'position': 'relative',\n    'boxSizing': 'border-box',\n    'userSelect': 'none',\n    'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n    '&[data-status=\"inactive\"]': {\n      opacity: '0.5',\n    },\n\n    '&>svg': {\n      '&:not([hidden])': {\n        display: 'block',\n      },\n    },\n\n    /* &:is(button) */\n    '&[data-as=\"button\"]': {\n      'WebkitFontSmoothing': 'inherit',\n      'appearance': 'none',\n      'margin': 0,\n      'padding': 0,\n      'border': 0,\n      'font': 'inherit',\n      'color': 'inherit',\n      'outline': 'none',\n\n      '&:focus': {\n        boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n      },\n\n      '&:focus:not(:focus-visible)': {\n        boxShadow: 'none',\n      },\n    },\n  }\n}\n\nexport function responsiveAvatarSizeStyle(\n  props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n  const {avatar, media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$size, (size) => {\n    const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n    return {\n      'width': rem(avatarSize.size),\n      'height': rem(avatarSize.size),\n      'borderRadius': rem(avatarSize.size / 2),\n\n      '&>svg': {\n        width: rem(avatarSize.size),\n        height: rem(avatarSize.size),\n        borderRadius: rem(avatarSize.size / 2),\n      },\n    }\n  })\n}\n\nexport function avatarImageStyle(): CSSObject {\n  return {\n    position: 'relative',\n  }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n  return {\n    'width': '100%',\n    'height': '100%',\n    'color': 'var(--avatar-fg-color)',\n    'alignItems': 'center',\n    'justifyContent': 'center',\n    'textTransform': 'uppercase',\n    'textAlign': 'center',\n    'borderRadius': '50%',\n\n    '&:not([hidden])': {\n      display: 'flex',\n    },\n  }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n  return {\n    strokeWidth: '4px',\n    stroke: 'var(--card-bg-color)',\n  }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n  return {\n    'strokeWidth': '2px',\n    'stroke': 'var(--avatar-bg-color)',\n\n    '[data-status=\"editing\"] &': {\n      strokeDasharray: '2 4',\n      strokeLinecap: 'round',\n    },\n  }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n  /** @beta */\n  __unstable_hideInnerStroke?: boolean\n  animateArrowFrom?: AvatarPosition\n  arrowPosition?: AvatarPosition\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  color?: ThemeColorAvatarColorKey\n  initials?: string\n  onImageLoadError?: (event: Error) => void\n  size?: AvatarSize | AvatarSize[]\n  src?: string\n  /**\n   * The status of the entity this Avatar represents.\n   * @alpha\n   */\n  status?: AvatarStatus\n  title?: string\n}\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n  responsiveAvatarSizeStyle,\n  avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n  color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n  props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    __unstable_hideInnerStroke,\n    as: asProp,\n    color = 'gray',\n    src,\n    title,\n    initials,\n    onImageLoadError,\n    arrowPosition: arrowPositionProp,\n    animateArrowFrom,\n    status = 'online',\n    size: sizeProp = 1,\n    ...restProps\n  } = props\n  const {avatar} = useTheme_v2()\n  const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n  const size = _getArrayProp(sizeProp)\n\n  // eslint-disable-next-line no-warning-comments\n  // @todo: remove this\n  const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n  const _sizeRem = avatarSize.size\n  const _radius = _sizeRem / 2\n\n  const elementId = useId()\n  const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n    animateArrowFrom || arrowPositionProp || 'inside',\n  )\n\n  const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n  const imageId = `avatar-image-${elementId}`\n\n  useEffect(() => {\n    if (arrowPosition === arrowPositionProp) return undefined\n\n    // Start animation in the next frame\n    const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n    return () => cancelAnimationFrame(raf)\n  }, [arrowPosition, arrowPositionProp])\n\n  useEffect(() => {\n    // eslint-disable-next-line react-hooks/set-state-in-effect\n    if (src) setImageFailed(false)\n  }, [src])\n\n  const handleImageError = useCallback(() => {\n    setImageFailed(true)\n\n    if (onImageLoadError) {\n      onImageLoadError(new Error('Avatar: the image failed to load'))\n    }\n  }, [onImageLoadError])\n\n  return (\n    <StyledAvatar\n      as={as}\n      data-as={typeof as === 'string' ? as : undefined}\n      data-ui=\"Avatar\"\n      {...restProps}\n      $color={color}\n      $size={size}\n      aria-label={title}\n      data-arrow-position={arrowPosition}\n      data-status={status}\n      ref={ref}\n      title={title}\n    >\n      <Arrow>\n        <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n          <path\n            d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n            fill={color}\n          />\n        </svg>\n      </Arrow>\n\n      {!imageFailed && src && (\n        <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n          <defs>\n            <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n              <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n            </pattern>\n          </defs>\n\n          <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n          {!__unstable_hideInnerStroke && (\n            <BgStroke\n              cx={_radius}\n              cy={_radius}\n              rx={_radius}\n              ry={_radius}\n              vectorEffect=\"non-scaling-stroke\"\n            />\n          )}\n\n          <Stroke\n            cx={_radius}\n            cy={_radius}\n            rx={_radius}\n            ry={_radius}\n            vectorEffect=\"non-scaling-stroke\"\n          />\n        </AvatarImage>\n      )}\n\n      {(imageFailed || !src) && initials && (\n        <>\n          <Initials>\n            <InitialsLabel\n              forwardedAs=\"span\"\n              size={size.map((s) => {\n                if (s === 1) return 1\n                if (s === 2) return 3\n                if (s === 3) return 5\n\n                return 0\n              })}\n              weight=\"medium\"\n            >\n              {initials}\n            </InitialsLabel>\n          </Initials>\n        </>\n      )}\n    </StyledAvatar>\n  )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n  const {avatar, media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$size, (size) => {\n    const avatarSize = avatar.sizes[size]\n\n    if (!avatarSize) return EMPTY_RECORD\n\n    return {\n      borderRadius: rem(avatarSize.size / 2),\n      minWidth: rem(avatarSize.size),\n      height: rem(avatarSize.size),\n    }\n  })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n  const {space} = getTheme_v2(props.theme)\n\n  return css`\n    align-items: center;\n    justify-content: center;\n    box-sizing: border-box;\n    user-select: none;\n    color: inherit;\n    color: var(--card-fg-color);\n    background: var(--card-bg-color);\n    box-shadow:\n      0 0 0 1px var(--card-bg-color),\n      inset 0 0 0 1px var(--card-hairline-hard-color);\n    padding: 0 ${rem(space[2])};\n\n    &:not([hidden]) {\n      display: flex;\n    }\n  `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n  _responsiveAvatarCounterSizeStyle,\n  _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n  count: number\n  size?: AvatarSize | AvatarSize[]\n  /** @deprecated No longer supported. */\n  tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n  props: AvatarCounterProps,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {count, size: sizeProp = 1} = props\n  const size = _getArrayProp(sizeProp)\n\n  return (\n    <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n      <Label\n        as=\"span\"\n        size={size.map((s) => {\n          if (s === 1) return 1\n          if (s === 2) return 3\n          if (s === 3) return 5\n\n          return 0\n        })}\n        weight=\"medium\"\n      >\n        {count}\n      </Label>\n    </StyledAvatarCounter>\n  )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n  white-space: nowrap;\n\n  & > div {\n    vertical-align: top;\n\n    &:not([hidden]) {\n      display: inline-block;\n    }\n  }\n`\n\nfunction avatarStackStyle() {\n  return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n  const {avatar, media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$size, (size) => {\n    const avatarSize = avatar.sizes[size]\n\n    if (!avatarSize) return EMPTY_RECORD\n\n    return {\n      '& > div + div': {\n        marginLeft: rem(avatarSize.distance),\n      },\n    }\n  })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n  responsiveAvatarStackSizeStyle,\n  avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n  children: React.ReactNode\n  maxLength?: number\n  size?: AvatarSize | AvatarSize[]\n  /** @deprecated No longer supported. */\n  tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n  props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    children: childrenProp,\n    maxLength: maxLengthProp = 4,\n    size: sizeProp = 1,\n    ...restProps\n  } = props\n  const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n  const maxLength = Math.max(maxLengthProp, 0)\n  const size = _getArrayProp(sizeProp)\n\n  const len = children.length\n  const visibleCount = maxLength - 1\n  const extraCount = len - visibleCount\n  const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n  return (\n    <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n      {len === 0 && (\n        <div>\n          <AvatarCounter count={len} size={size} />\n        </div>\n      )}\n\n      {len !== 0 && extraCount > 1 && (\n        <div>\n          <AvatarCounter count={extraCount} size={size} />\n        </div>\n      )}\n\n      {visibleChildren.map((child, childIndex) => (\n        <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n      ))}\n    </StyledAvatarStack>\n  )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n  boxStyle,\n  flexItemStyle,\n  FlexItemStyleProps,\n  responsiveBoxStyle,\n  ResponsiveBoxStyleProps,\n  responsiveGridItemStyle,\n  ResponsiveGridItemStyleProps,\n  responsiveMarginStyle,\n  ResponsiveMarginStyleProps,\n  responsivePaddingStyle,\n  ResponsivePaddingStyleProps,\n} from '../../styles/internal'\nimport {\n  ResponsiveBoxProps,\n  ResponsiveFlexItemProps,\n  ResponsiveGridItemProps,\n  ResponsiveMarginProps,\n  ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n  extends ResponsiveFlexItemProps,\n    ResponsiveBoxProps,\n    ResponsiveGridItemProps,\n    ResponsiveMarginProps,\n    ResponsivePaddingProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  forwardedAs?: React.ElementType | keyof React.JSX.IntrinsicElements\n}\n\nconst StyledBox = styled.div<\n  FlexItemStyleProps &\n    ResponsiveBoxStyleProps &\n    ResponsiveGridItemStyleProps &\n    ResponsiveMarginStyleProps &\n    ResponsivePaddingStyleProps\n>(\n  boxStyle,\n  flexItemStyle,\n  responsiveBoxStyle,\n  responsiveGridItemStyle,\n  responsiveMarginStyle,\n  responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n  props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    as: asProp = 'div',\n    gridColumn,\n    column: deprecated_column,\n    gridColumnStart,\n    columnStart: deprecated_columnStart,\n    gridColumnEnd,\n    columnEnd: deprecated_columnEnd,\n    display = 'block',\n    flex,\n    height,\n    margin = 0,\n    marginX,\n    marginY,\n    marginTop,\n    marginRight,\n    marginBottom,\n    marginLeft,\n    overflow,\n    padding = 0,\n    paddingX,\n    paddingY,\n    paddingTop,\n    paddingRight,\n    paddingBottom,\n    paddingLeft,\n    gridRow,\n    row: deprecated_row,\n    gridRowStart,\n    rowStart: deprecated_rowStart,\n    gridRowEnd,\n    rowEnd: deprecated_rowEnd,\n    sizing,\n    ...restProps\n  } = props\n  const column = gridColumn === undefined ? deprecated_column : gridColumn\n  const columnStart = gridColumnStart === undefined ? deprecated_columnStart : gridColumnStart\n  const columnEnd = gridColumnEnd === undefined ? deprecated_columnEnd : gridColumnEnd\n  const row = gridRow === undefined ? deprecated_row : gridRow\n  const rowStart = gridRowStart === undefined ? deprecated_rowStart : gridRowStart\n  const rowEnd = gridRowEnd === undefined ? deprecated_rowEnd : gridRowEnd\n\n  return (\n    <StyledBox\n      data-as={typeof asProp === 'string' ? asProp : undefined}\n      data-ui=\"Box\"\n      {...restProps}\n      $column={_getArrayProp(column)}\n      $columnStart={_getArrayProp(columnStart)}\n      $columnEnd={_getArrayProp(columnEnd)}\n      $display={_getArrayProp(display)}\n      $flex={_getArrayProp(flex)}\n      $height={_getArrayProp(height)}\n      $margin={_getArrayProp(margin)}\n      $marginX={_getArrayProp(marginX)}\n      $marginY={_getArrayProp(marginY)}\n      $marginTop={_getArrayProp(marginTop)}\n      $marginRight={_getArrayProp(marginRight)}\n      $marginBottom={_getArrayProp(marginBottom)}\n      $marginLeft={_getArrayProp(marginLeft)}\n      $overflow={_getArrayProp(overflow)}\n      $padding={_getArrayProp(padding)}\n      $paddingX={_getArrayProp(paddingX)}\n      $paddingY={_getArrayProp(paddingY)}\n      $paddingTop={_getArrayProp(paddingTop)}\n      $paddingRight={_getArrayProp(paddingRight)}\n      $paddingBottom={_getArrayProp(paddingBottom)}\n      $paddingLeft={_getArrayProp(paddingLeft)}\n      $row={_getArrayProp(row)}\n      $rowStart={_getArrayProp(rowStart)}\n      $rowEnd={_getArrayProp(rowEnd)}\n      $sizing={_getArrayProp(sizing)}\n      as={asProp}\n      ref={ref}\n    >\n      {props.children}\n    </StyledBox>\n  )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n  props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n  const {$accent, $muted} = props\n  const {font} = getTheme_v2(props.theme)\n\n  return css`\n    color: var(--card-fg-color);\n\n    ${$accent &&\n    css`\n      color: var(--card-accent-fg-color);\n    `}\n\n    ${$muted &&\n    css`\n      color: var(--card-muted-fg-color);\n    `}\n\n    & code {\n      font-family: ${font.code.family};\n      border-radius: 1px;\n      background-color: var(--card-code-bg-color);\n      color: var(--card-code-fg-color);\n    }\n\n    & a {\n      text-decoration: none;\n      border-radius: 1px;\n      color: var(--card-link-color);\n      outline: none;\n\n      @media (hover: hover) {\n        &:hover {\n          text-decoration: underline;\n        }\n      }\n\n      &:focus {\n        box-shadow:\n          0 0 0 1px var(--card-bg-color),\n          0 0 0 3px var(--card-focus-ring-color);\n      }\n\n      &:focus:not(:focus-visible) {\n        box-shadow: none;\n      }\n    }\n\n    & strong {\n      font-weight: ${font.text.weights.bold};\n    }\n\n    & svg {\n      /* Certain popular CSS libraries changes the defaults for SVG display */\n      /* Make sure SVGs are rendered as inline elements */\n      display: inline;\n    }\n\n    & [data-sanity-icon] {\n      vertical-align: baseline;\n      color: var(--card-icon-color);\n\n      & path {\n        vector-effect: non-scaling-stroke !important;\n      }\n    }\n  `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n  ResponsiveFontStyleProps,\n  responsiveTextAlignStyle,\n  responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n  accent?: boolean\n  align?: TextAlign | TextAlign[]\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  /** When `true` the text color will be muted. */\n  muted?: boolean\n  size?: number | number[]\n  /**\n   * Controls how overflowing text is treated.\n   * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n   * @beta\n   */\n  textOverflow?: 'ellipsis'\n  weight?: ThemeFontWeightKey\n}\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n  responsiveTextFont,\n  responsiveTextAlignStyle,\n  textBaseStyle,\n)\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n  props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    accent = false,\n    align,\n    children: childrenProp,\n    muted = false,\n    size = 2,\n    textOverflow,\n    weight,\n    ...restProps\n  } = props\n\n  let children = childrenProp\n\n  if (textOverflow === 'ellipsis') {\n    children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n  }\n\n  return (\n    <StyledText\n      data-ui=\"Text\"\n      {...restProps}\n      $accent={accent}\n      $align={_getArrayProp(align)}\n      $muted={muted}\n      ref={ref}\n      $size={_getArrayProp(size)}\n      $weight={weight}\n    >\n      <span>{children}</span>\n    </StyledText>\n  )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n  const {$tone} = props\n\n  return {\n    '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n    '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n    'backgroundColor': 'var(--card-bg-color)',\n    'cursor': 'default',\n\n    '&:not([hidden])': {\n      display: 'inline-block',\n      verticalAlign: 'top',\n    },\n  }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  fontSize?: number | number[]\n  /** @deprecated No longer used. */\n  mode?: BadgeMode\n  tone?: BadgeTone\n}\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n  responsiveRadiusStyle,\n  badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n  props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n  ref,\n) {\n  const {\n    children,\n    fontSize = 1,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    mode: _deprecated_mode,\n    padding = 1,\n    radius = 'full',\n    tone = 'default',\n    ...restProps\n  } = props\n\n  return (\n    <StyledBadge\n      data-ui=\"Badge\"\n      {...restProps}\n      $tone={tone}\n      $radius={_getArrayProp(radius)}\n      padding={_getArrayProp(padding)}\n      ref={ref}\n    >\n      <Text size={fontSize}>{children}</Text>\n    </StyledBadge>\n  )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n  flexItemStyle,\n  FlexItemStyleProps,\n  responsiveFlexStyle,\n  ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n  extends Omit<BoxProps, 'display'>,\n    ResponsiveFlexProps,\n    ResponsiveFlexItemProps {\n  gap?: number | number[]\n}\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n  flexItemStyle,\n  responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n  props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n  return (\n    <StyledFlex\n      data-ui=\"Flex\"\n      {...restProps}\n      $align={_getArrayProp(align)}\n      $direction={_getArrayProp(direction)}\n      $gap={_getArrayProp(gap)}\n      $justify={_getArrayProp(justify)}\n      $wrap={_getArrayProp(wrap)}\n      forwardedAs={as}\n      ref={ref}\n    />\n  )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n  muted?: boolean\n  size?: number | number[]\n}\n\nconst rotate = keyframes`\n  from {\n    transform: rotate(0deg);\n  }\n\n  to {\n    transform: rotate(360deg);\n  }\n`\n\nconst StyledSpinner = styled(Text)`\n  & > span > svg {\n    animation: ${rotate} 500ms linear infinite;\n  }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n  props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  return (\n    <StyledSpinner data-ui=\"Spinner\" {...props} ref={ref}>\n      <SpinnerIcon />\n    </StyledSpinner>\n  )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {CSSObject, ThemeColorCard_v2, ThemeColorState_v2} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n  base: ThemeColorCard_v2,\n  color: ThemeColorState_v2,\n  checkered = false,\n): CSSObject {\n  return {\n    // from base\n\n    '--card-backdrop-color': base.backdrop,\n\n    '--card-focus-ring-color': base.focusRing,\n\n    '--card-shadow-outline-color': base.shadow.outline,\n    '--card-shadow-umbra-color': base.shadow.umbra,\n    '--card-shadow-penumbra-color': base.shadow.penumbra,\n    '--card-shadow-ambient-color': base.shadow.ambient,\n\n    // from state\n\n    '--card-accent-fg-color': color.accent.fg,\n\n    '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n    '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n    '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n    '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n    '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n    '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n    '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n    '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n    '--card-avatar-red-bg-color': color.avatar.red.bg,\n    '--card-avatar-red-fg-color': color.avatar.red.fg,\n    '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n    '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n    '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n    '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n    '--card-avatar-green-bg-color': color.avatar.green.bg,\n    '--card-avatar-green-fg-color': color.avatar.green.fg,\n    '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n    '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n    '--card-bg-color': color.bg,\n    '--card-bg-image': checkered\n      ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n      : undefined,\n\n    '--card-border-color': color.border,\n\n    '--card-badge-default-bg-color': color.badge.default.bg,\n    '--card-badge-default-dot-color': color.badge.default.dot,\n    '--card-badge-default-fg-color': color.badge.default.fg,\n    '--card-badge-default-icon-color': color.badge.default.icon,\n    '--card-badge-neutral-bg-color': color.badge.neutral?.bg,\n    '--card-badge-neutral-dot-color': color.badge.neutral?.dot,\n    '--card-badge-neutral-fg-color': color.badge.neutral?.fg,\n    '--card-badge-neutral-icon-color': color.badge.neutral?.icon,\n    '--card-badge-primary-bg-color': color.badge.primary.bg,\n    '--card-badge-primary-dot-color': color.badge.primary.dot,\n    '--card-badge-primary-fg-color': color.badge.primary.fg,\n    '--card-badge-primary-icon-color': color.badge.primary.icon,\n    '--card-badge-suggest-bg-color': color.badge.suggest?.bg,\n    '--card-badge-suggest-dot-color': color.badge.suggest?.dot,\n    '--card-badge-suggest-fg-color': color.badge.suggest?.fg,\n    '--card-badge-suggest-icon-color': color.badge.suggest?.icon,\n    '--card-badge-positive-bg-color': color.badge.positive.bg,\n    '--card-badge-positive-dot-color': color.badge.positive.dot,\n    '--card-badge-positive-fg-color': color.badge.positive.fg,\n    '--card-badge-positive-icon-color': color.badge.positive.icon,\n    '--card-badge-caution-bg-color': color.badge.caution.bg,\n    '--card-badge-caution-dot-color': color.badge.caution.dot,\n    '--card-badge-caution-fg-color': color.badge.caution.fg,\n    '--card-badge-caution-icon-color': color.badge.caution.icon,\n    '--card-badge-critical-bg-color': color.badge.critical.bg,\n    '--card-badge-critical-dot-color': color.badge.critical.dot,\n    '--card-badge-critical-fg-color': color.badge.critical.fg,\n    '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n    '--card-code-bg-color': color.code.bg,\n    '--card-code-fg-color': color.code.fg,\n\n    '--card-fg-color': color.fg,\n\n    '--card-icon-color': color.icon,\n\n    '--card-kbd-bg-color': color.kbd.bg,\n    '--card-kbd-border-color': color.kbd.border,\n    '--card-kbd-fg-color': color.kbd.fg,\n\n    '--card-link-fg-color': color.link.fg,\n\n    '--card-muted-bg-color': color.muted.bg,\n    '--card-muted-fg-color': color.muted.fg,\n\n    '--card-skeleton-color-from': color.skeleton.from,\n    '--card-skeleton-color-to': color.skeleton.to,\n\n    // deprecated variables (kept for legacy)\n\n    '--card-bg2-color': color.muted.bg,\n    '--card-link-color': color.link.fg,\n    '--card-hairline-soft-color': color.border,\n    '--card-hairline-hard-color': color.border,\n  }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n  props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n  const {$width} = props\n  const {style} = getTheme_v2(props.theme)\n\n  return css`\n    ${style?.button};\n\n    -webkit-font-smoothing: inherit;\n    appearance: none;\n    display: inline-flex;\n    align-items: center;\n    font: inherit;\n    border: 0;\n    outline: none;\n    user-select: none;\n    text-decoration: none;\n    border: 0;\n    box-sizing: border-box;\n    padding: 0;\n    margin: 0;\n    white-space: nowrap;\n    text-align: left;\n    position: relative;\n    vertical-align: top;\n\n    ${$width === 'fill' &&\n    css`\n      width: -moz-available;\n      width: -webkit-fill-available;\n      width: stretch;\n    `}\n\n    & > span {\n      display: block;\n      flex: 1;\n      min-width: 0;\n      border-radius: inherit;\n    }\n\n    &::-moz-focus-inner {\n      border: 0;\n      padding: 0;\n    }\n  `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n  return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n  props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n  const {$mode} = props\n  const {button, color: baseColor, style} = getTheme_v2(props.theme)\n  const shadow = props.$mode === 'ghost'\n  const mode = baseColor.button[$mode] || baseColor.button.default\n  const color = mode[props.$tone] || mode.default\n  const border = {\n    width: button.border.width,\n    color: 'var(--card-border-color)',\n  }\n  // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n  const defaultBoxShadow = undefined\n\n  return [\n    _cardColorStyle(baseColor, color.enabled),\n    {\n      'backgroundColor': 'var(--card-bg-color)',\n      'color': 'var(--card-fg-color)',\n      'boxShadow': focusRingBorderStyle(border),\n      '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n      \"&:not([data-disabled='true'])\": {\n        'boxShadow': combineBoxShadow(\n          focusRingBorderStyle(border),\n          shadow ? defaultBoxShadow : undefined,\n        ),\n        '&:focus': {\n          boxShadow: focusRingStyle({\n            base: baseColor,\n            border: {width: 2, color: baseColor.bg},\n            focusRing: button.focusRing,\n          }),\n        },\n        '&:focus:not(:focus-visible)': {\n          boxShadow: combineBoxShadow(\n            focusRingBorderStyle(border),\n            shadow ? defaultBoxShadow : undefined,\n          ),\n        },\n        '@media (hover: hover)': {\n          '&:hover': _cardColorStyle(baseColor, color.hovered),\n          '&:active': _cardColorStyle(baseColor, color.pressed),\n          '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n        },\n        '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n      },\n    },\n    style?.button?.root,\n  ].filter(Boolean) as CSSObject[]\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp, ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  fontSize?: number | number[]\n  mode?: ButtonMode\n  icon?: React.ElementType | React.ReactNode\n  iconRight?: React.ElementType | React.ReactNode\n  justify?: FlexJustify | FlexJustify[]\n  /**\n   * @beta Do not use in production, as this might change.\n   */\n  loading?: boolean\n  selected?: boolean\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  gap?: number | number[]\n  muted?: boolean\n  text?: React.ReactNode\n  textAlign?: ButtonTextAlign\n  textWeight?: ThemeFontWeightKey\n  tone?: ButtonTone\n  type?: 'button' | 'reset' | 'submit'\n  width?: ButtonWidth\n}\n\nconst StyledButton = styled.button<\n  {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n    ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background-color: var(--card-bg-color);\n  border-radius: inherit;\n  z-index: 1;\n  box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n  props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n  ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n  const {\n    children,\n    disabled,\n    fontSize = 1,\n    icon: IconComponent,\n    iconRight: IconRightComponent,\n    justify: justifyProp = 'center',\n    loading,\n    mode = 'default',\n    padding: paddingProp = 3,\n    paddingX: paddingXProp,\n    paddingY: paddingYProp,\n    paddingTop: paddingTopProp,\n    paddingBottom: paddingBottomProp,\n    paddingLeft: paddingLeftProp,\n    paddingRight: paddingRightProp,\n    radius: radiusProp = 2,\n    selected,\n    gap,\n    space: deprecated_space = 3,\n    text,\n    textAlign,\n    textWeight,\n    tone = 'default',\n    type = 'button',\n    muted = false,\n    width,\n    ...restProps\n  } = props\n  const {button} = useTheme_v2()\n\n  const justify = _getArrayProp(justifyProp)\n  const padding = _getArrayProp(paddingProp)\n  const paddingX = _getArrayProp(paddingXProp)\n  const paddingY = _getArrayProp(paddingYProp)\n  const paddingTop = _getArrayProp(paddingTopProp)\n  const paddingBottom = _getArrayProp(paddingBottomProp)\n  const paddingLeft = _getArrayProp(paddingLeftProp)\n  const paddingRight = _getArrayProp(paddingRightProp)\n  const radius = _getArrayProp(radiusProp)\n  const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\n\n  const boxProps = useMemo(\n    () => ({\n      // flex: 1,\n      padding,\n      paddingX,\n      paddingY,\n      paddingTop,\n      paddingBottom,\n      paddingLeft,\n      paddingRight,\n    }),\n    [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n  )\n\n  return (\n    <StyledButton\n      data-ui=\"Button\"\n      {...restProps}\n      $mode={mode}\n      $radius={radius}\n      $tone={tone}\n      data-disabled={Boolean(loading || disabled)}\n      data-selected={selected ? '' : undefined}\n      disabled={Boolean(loading || disabled)}\n      ref={ref}\n      type={type}\n      $width={width}\n    >\n      {Boolean(loading) && (\n        <LoadingBox>\n          <Spinner />\n        </LoadingBox>\n      )}\n\n      {(IconComponent || text || IconRightComponent) && (\n        <Box as=\"span\" {...boxProps}>\n          <Flex as=\"span\" justify={justify} gap={spacing}>\n            {IconComponent && (\n              <Text size={fontSize}>\n                {isValidElement(IconComponent) && IconComponent}\n                {isValidElementType(IconComponent) && <IconComponent />}\n              </Text>\n            )}\n\n            {text && (\n              <Box>\n                <Text\n                  muted={muted}\n                  align={textAlign}\n                  size={fontSize}\n                  textOverflow=\"ellipsis\"\n                  weight={textWeight ?? button.textWeight}\n                >\n                  {text}\n                </Text>\n              </Box>\n            )}\n\n            {IconRightComponent && (\n              <Text size={fontSize}>\n                {isValidElement(IconRightComponent) && IconRightComponent}\n                {isValidElementType(IconRightComponent) && <IconRightComponent />}\n              </Text>\n            )}\n          </Flex>\n        </Box>\n      )}\n\n      {children && (\n        <Box as=\"span\" {...boxProps}>\n          {children}\n        </Box>\n      )}\n    </StyledButton>\n  )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n  props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n  return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n  const {$checkered} = props\n  const {space} = getTheme_v2(props.theme)\n\n  return css`\n    ${$checkered &&\n    css`\n      background-size: ${space[3]}px ${space[3]}px;\n      background-position: 50% 50%;\n      background-image: var(--card-bg-image);\n    `}\n\n    &[data-as='button'] {\n      -webkit-font-smoothing: inherit;\n      appearance: none;\n      outline: none;\n      font: inherit;\n      text-align: inherit;\n      border: 0;\n      width: -moz-available;\n      width: -webkit-fill-available;\n      width: stretch;\n    }\n\n    /* &:is(a) */\n    &[data-as='a'] {\n      outline: none;\n      text-decoration: none;\n    }\n\n    /* &:is(pre) */\n    &[data-as='pre'] {\n      font: inherit;\n    }\n  `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n  const {$checkered, $focusRing, $muted} = props\n  const {card, color, style} = getTheme_v2(props.theme)\n  const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n  return css`\n    color-scheme: ${color._dark ? 'dark' : 'light'};\n\n    ${_cardColorStyle(color, color, $checkered)}\n\n    background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n    color: var(--card-fg-color);\n\n    /* &:is(button) */\n    &[data-as='button'] {\n      --card-focus-ring-box-shadow: none;\n\n      cursor: default;\n      box-shadow: var(--card-focus-ring-box-shadow);\n\n      &:disabled {\n        ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n      }\n\n      &:not(:disabled) {\n        &[data-pressed] {\n          ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n        }\n\n        &[data-selected] {\n          ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n        }\n\n        @media (hover: hover) {\n          &:not([data-pressed]):not([data-selected]) {\n            &[data-hovered],\n            &:hover {\n              ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n            }\n\n            &:active {\n              ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n            }\n          }\n        }\n\n        &:focus-visible {\n          --card-focus-ring-box-shadow: ${$focusRing\n            ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n            : undefined};\n        }\n      }\n    }\n\n    /* &:is(a) */\n    &[data-as='a'] {\n      cursor: pointer;\n      box-shadow: var(--card-focus-ring-box-shadow);\n\n      &[data-disabled] {\n        ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n      }\n\n      &:not([data-disabled]) {\n        &[data-pressed] {\n          ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n        }\n\n        &[data-selected] {\n          ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n        }\n\n        @media (hover: hover) {\n          &:not([data-pressed]):not([data-selected]) {\n            &[data-hovered],\n            &:hover {\n              ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n            }\n\n            &:active {\n              ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n            }\n          }\n        }\n\n        &:focus-visible {\n          --card-focus-ring-box-shadow: ${$focusRing\n            ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n            : undefined};\n        }\n      }\n    }\n\n    ${style?.card?.root}\n  `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n  responsiveBorderStyle,\n  ResponsiveBorderStyleProps,\n  responsiveRadiusStyle,\n  ResponsiveRadiusStyleProps,\n  responsiveShadowStyle,\n  ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n  extends BoxProps,\n    ResponsiveBorderProps,\n    ResponsiveRadiusProps,\n    ResponsiveShadowProps {\n  /**\n   * Do not use in production.\n   * @beta\n   */\n  __unstable_checkered?: boolean\n  /**\n   * Do not use in production.\n   * @beta\n   */\n  __unstable_focusRing?: boolean\n  muted?: boolean\n  pressed?: boolean\n  scheme?: ThemeColorSchemeKey\n  tone?: CardTone\n}\n\nconst StyledCard = styled(Box)<\n  CardStyleProps &\n    ResponsiveRadiusStyleProps &\n    ResponsiveBorderStyleProps &\n    ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n  props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    __unstable_checkered: checkered = false,\n    __unstable_focusRing: focusRing = false,\n    as: asProp,\n    border,\n    borderTop,\n    borderRight,\n    borderBottom,\n    borderLeft,\n    muted,\n    pressed,\n    radius = 0,\n    scheme,\n    selected,\n    shadow,\n    tone: toneProp = 'default',\n    ...restProps\n  } = props\n\n  const as = isValidElementType(asProp) ? asProp : 'div'\n  const rootTheme = useRootTheme()\n  const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n  // eslint-disable-next-line no-warning-comments\n  // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n  return (\n    <ThemeColorProvider scheme={scheme} tone={tone}>\n      <StyledCard\n        data-as={typeof as === 'string' ? as : undefined}\n        data-scheme={rootTheme.scheme}\n        data-ui=\"Card\"\n        data-tone={tone}\n        {...restProps}\n        $border={_getArrayProp(border)}\n        $borderTop={_getArrayProp(borderTop)}\n        $borderRight={_getArrayProp(borderRight)}\n        $borderBottom={_getArrayProp(borderBottom)}\n        $borderLeft={_getArrayProp(borderLeft)}\n        $checkered={checkered}\n        $focusRing={focusRing}\n        $muted={muted}\n        $radius={_getArrayProp(radius)}\n        $shadow={_getArrayProp(shadow)}\n        $tone={tone}\n        data-checkered={checkered ? '' : undefined}\n        data-pressed={pressed ? '' : undefined}\n        data-selected={selected ? '' : undefined}\n        forwardedAs={as}\n        ref={ref}\n        selected={selected}\n      />\n    </ThemeColorProvider>\n  )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n  listener: ClickOutsideEventListener | false | undefined,\n  elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n  boundaryElement?: () => HTMLElement | null,\n): void {\n  /**\n   * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n   * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n   */\n  const onEvent = useEffectEvent((evt: MouseEvent) => {\n    if (!listener) {\n      return\n    }\n\n    const target = evt.target\n\n    if (!(target instanceof Node)) {\n      return\n    }\n\n    const resolvedBoundaryElement = boundaryElement?.()\n\n    if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n      return\n    }\n\n    const elements = elementsArg().flat()\n\n    for (const el of elements) {\n      if (!el) continue\n\n      if (target === el || el.contains(target)) {\n        return\n      }\n    }\n\n    listener(evt)\n  })\n\n  const hasListener = Boolean(listener)\n\n  useEffect(() => {\n    if (!hasListener) return undefined\n\n    const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n    document.addEventListener('mousedown', handleEvent)\n\n    return () => {\n      document.removeEventListener('mousedown', handleEvent)\n    }\n  }, [hasListener])\n\n  useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n  ref: {current: null | {setCustomValidity: (validity: string) => void}},\n  customValidity: string | undefined,\n): void {\n  useEffect(() => {\n    ref.current?.setCustomValidity(customValidity || '')\n  }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n  typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n    ? window.ResizeObserver\n    : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n  width: number\n  height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n  content: ElementRectValue\n  border: ElementRectValue\n\n  /** @deprecated INTERNAL ONLY */\n  _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n  subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n  subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n  return {\n    subscribe(element, subscriber) {\n      const resizeObserver = new _ResizeObserver(([entry]) => {\n        subscriber({\n          _contentRect: entry.contentRect,\n          border: {\n            width: entry.borderBoxSize[0].inlineSize,\n            height: entry.borderBoxSize[0].blockSize,\n          },\n          content: {\n            width: entry.contentRect.width,\n            height: entry.contentRect.height,\n          },\n        })\n      })\n\n      resizeObserver.observe(element)\n\n      return () => {\n        resizeObserver.unobserve(element)\n        resizeObserver.disconnect()\n      }\n    },\n  }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n  const disposeCache = new WeakMap<HTMLElement, () => void>()\n  const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n  return {\n    subscribe(element, subscriber) {\n      const subscribers = subscribersCache.get(element) || []\n\n      let dispose = disposeCache.get(element)\n\n      if (!subscribersCache.has(element)) {\n        subscribersCache.set(element, subscribers)\n\n        const listener = _createElementRectValueListener()\n\n        // listen\n        dispose = listener.subscribe(element, (elementRect) => {\n          for (const sub of subscribers) {\n            sub(elementRect)\n          }\n        })\n      }\n\n      subscribers.push(subscriber)\n\n      return () => {\n        // dispose\n\n        const idx = subscribers.indexOf(subscriber)\n\n        if (idx > -1) {\n          subscribers.splice(idx, 1)\n        }\n\n        if (subscribers.length === 0) {\n          // unlisten\n          if (dispose) dispose()\n        }\n      }\n    },\n  }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n  const [size, setSize] = useState<ElementSize | null>(null)\n\n  useEffect(() => {\n    if (!element) return undefined\n\n    return _elementSizeObserver.subscribe(element, setSize)\n  }, [element])\n\n  return size\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * Adds global keydown event listener to the window.\n *\n * @param onKeyDown - The function to call when a keydown event is triggered.\n * @param options - The options to pass to the addEventListener function (example, capture: true)\n * @beta\n */\nexport function useGlobalKeyDown(\n  onKeyDown: (event: KeyboardEvent) => void,\n  options?: AddEventListenerOptions,\n): void {\n  const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n  useEffect(() => {\n    const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n    window.addEventListener('keydown', handler, options)\n\n    return () => window.removeEventListener('keydown', handler, options)\n  }, [options])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n  mediaQueryString: `(${string})`,\n  getServerSnapshot?: () => boolean,\n): boolean {\n  useDebugValue(mediaQueryString)\n\n  return useSyncExternalStore(\n    useCallback(\n      (onStoreChange) => {\n        const media = window.matchMedia(mediaQueryString)\n        media.addEventListener('change', onStoreChange)\n        return () => media.removeEventListener('change', onStoreChange)\n      },\n      [mediaQueryString],\n    ),\n    () => window.matchMedia(mediaQueryString).matches,\n    getServerSnapshot,\n  )\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n  subscribe: (onStoreChange: () => void) => () => void\n  getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n  if (index === 0) {\n    return `screen and (max-width: ${media[index] - 1}px)`\n  }\n\n  if (index === media.length) {\n    return `screen and (min-width: ${media[index - 1]}px)`\n  }\n\n  return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n  const mediaLen = media.length\n  let sizes: {mq: MediaQueryList; index: number}[]\n\n  // The _createMediaStore function is called in both server and client environments.\n  // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n  // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n  const getSizes = () => {\n    if (!sizes) {\n      sizes = []\n\n      for (let index = mediaLen; index > -1; index -= 1) {\n        const mediaQuery = _getMediaQuery(media, index)\n\n        sizes.push({index, mq: window.matchMedia(mediaQuery)})\n      }\n    }\n\n    return sizes\n  }\n\n  const getSnapshot = () => {\n    for (const {index, mq} of getSizes()) {\n      if (mq.matches) return index\n    }\n\n    return 0\n  }\n\n  const subscribe = (onStoreChange: () => void) => {\n    const disposeFns: (() => void)[] = []\n\n    for (const {mq} of getSizes()) {\n      const handleChange = () => {\n        if (mq.matches) onStoreChange()\n      }\n\n      mq.addEventListener('change', handleChange)\n\n      disposeFns.push(() => mq.removeEventListener('change', handleChange))\n    }\n\n    return () => {\n      for (const disposeFn of disposeFns) {\n        disposeFn()\n      }\n    }\n  }\n\n  return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n  return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n  const {media} = useTheme_v2()\n  const store = useMemo(() => _createMediaStore(media), [media])\n\n  return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n  return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n  return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n  return css`\n    position: relative;\n    display: inline-block;\n  `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n  const {color, input, radius} = getTheme_v2(props.theme)\n  const {focusRing} = input.checkbox\n\n  return css`\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    outline: none;\n    opacity: 0;\n    z-index: 1;\n    padding: 0;\n    margin: 0;\n\n    & + span {\n      position: relative;\n      display: block;\n      height: ${rem(input.checkbox.size)};\n      width: ${rem(input.checkbox.size)};\n      box-sizing: border-box;\n      box-shadow: ${focusRingBorderStyle({\n        color: color.input.default.enabled.border,\n        width: input.border.width,\n      })};\n      border-radius: ${rem(radius[2])};\n      line-height: 1;\n      background-color: ${color.input.default.enabled.bg};\n\n      & > svg {\n        display: block;\n        position: absolute;\n        opacity: 0;\n        height: 100%;\n        width: 100%;\n\n        & > path {\n          vector-effect: non-scaling-stroke;\n          stroke-width: 1.5px !important;\n        }\n      }\n    }\n\n    &:checked + span {\n      background: ${color.input.default.enabled.fg};\n      box-shadow: ${focusRingBorderStyle({\n        color: color.input.default.enabled.fg,\n        width: input.border.width,\n      })};\n      color: ${color.input.default.enabled.bg};\n    }\n\n    /* focus */\n    &:not(:disabled):focus:focus-visible + span {\n      box-shadow: ${focusRingStyle({focusRing})};\n    }\n\n    /* focus when checked - uses a different offset */\n    &:not(:disabled):focus:focus-visible&:checked + span {\n      box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n    }\n\n    &[data-error] + span {\n      background-color: ${color.input.invalid.enabled.border};\n      box-shadow: ${focusRingBorderStyle({\n        width: input.border.width,\n        color: color.input.invalid.enabled.muted.bg,\n      })};\n      color: ${color.input.default.disabled.fg};\n    }\n    &[data-error]&:checked + span {\n      background-color: ${color.input.invalid.enabled.muted.bg};\n      color: ${color.input.default.enabled.bg};\n    }\n    &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n      box-shadow: ${focusRingStyle({\n        border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n        focusRing: {width: 1, offset: 1},\n      })};\n    }\n\n    &:disabled + span {\n      background-color: ${color.input.default.disabled.bg};\n      box-shadow: ${focusRingBorderStyle({\n        width: input.border.width,\n        color: color.input.default.disabled.border,\n      })};\n      color: ${color.input.default.disabled.fg};\n    }\n    &:disabled&:checked + span {\n      background-color: ${color.input.default.disabled.muted.bg};\n    }\n\n    &[data-read-only] + span {\n      background-color: ${color.input.default.readOnly.bg};\n      box-shadow: ${focusRingBorderStyle({\n        width: input.border.width,\n        color: color.input.default.readOnly.border,\n      })};\n      color: ${color.input.default.readOnly.fg};\n    }\n\n    &[data-read-only]&:checked + span {\n      background-color: ${color.input.default.readOnly.muted.bg};\n    }\n\n    &:checked + span > svg:first-child {\n      opacity: 1;\n    }\n    &:indeterminate + span > svg:last-child {\n      opacity: 1;\n    }\n  `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n  indeterminate?: boolean\n  customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n  props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n  forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n  const {\n    checked,\n    className,\n    disabled,\n    indeterminate,\n    customValidity,\n    readOnly,\n    style,\n    ...restProps\n  } = props\n  const ref = useRef<HTMLInputElement | null>(null)\n\n  useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n    forwardedRef,\n    () => ref.current,\n  )\n\n  useEffect(() => {\n    if (ref.current) {\n      // Set the indeterminate state\n      ref.current.indeterminate = indeterminate || false\n    }\n  }, [indeterminate])\n\n  useCustomValidity(ref, customValidity)\n\n  return (\n    <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n      <Input\n        data-read-only={!disabled && readOnly ? '' : undefined}\n        data-error={customValidity ? '' : undefined}\n        {...restProps}\n        checked={checked}\n        disabled={disabled || readOnly}\n        type=\"checkbox\"\n        readOnly={readOnly}\n        ref={ref}\n      />\n      <span>\n        <CheckmarkIcon />\n        <RemoveIcon />\n      </span>\n    </StyledCheckbox>\n  )\n})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n  const {\n    color: {syntax: color},\n  } = getTheme_v2(theme)\n\n  return {\n    '&.atrule': {color: color.atrule},\n    '&.attr-name': {color: color.attrName},\n    '&.attr-value': {color: color.attrValue},\n    '&.attribute': {color: color.attribute},\n    '&.boolean': {color: color.boolean},\n    '&.builtin': {color: color.builtin},\n    '&.cdata': {color: color.cdata},\n    '&.char': {color: color.char},\n    '&.class': {color: color.class},\n    '&.class-name': {color: color.className},\n    '&.comment': {color: color.comment},\n    '&.constant': {color: color.constant},\n    '&.deleted': {color: color.deleted},\n    '&.doctype': {color: color.doctype},\n    '&.entity': {color: color.entity},\n    '&.function': {color: color.function},\n    '&.hexcode': {color: color.hexcode},\n    '&.id': {color: color.id},\n    '&.important': {color: color.important},\n    '&.inserted': {color: color.inserted},\n    '&.keyword': {color: color.keyword},\n    '&.number': {color: color.number},\n    '&.operator': {color: color.operator},\n    '&.prolog': {color: color.prolog},\n    '&.property': {color: color.property},\n    '&.pseudo-class': {color: color.pseudoClass},\n    '&.pseudo-element': {color: color.pseudoElement},\n    '&.punctuation': {color: color.punctuation},\n    '&.regex': {color: color.regex},\n    '&.selector': {color: color.selector},\n    '&.string': {color: color.string},\n    '&.symbol': {color: color.symbol},\n    '&.tag': {color: color.tag},\n    '&.unit': {color: color.unit},\n    '&.url': {color: color.url},\n    '&.variable': {color: color.variable},\n  }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n  return css`\n    color: var(--card-code-fg-color);\n\n    & code {\n      font-family: inherit;\n\n      &.refractor .token {\n        ${codeSyntaxHighlightingStyle}\n      }\n    }\n\n    & a {\n      color: inherit;\n      text-decoration: underline;\n      border-radius: 1px;\n    }\n\n    & svg {\n      /* Certain popular CSS libraries changes the defaults for SVG display */\n      /* Make sure SVGs are rendered as inline elements */\n      display: inline;\n    }\n\n    & [data-sanity-icon] {\n      vertical-align: baseline;\n    }\n  `\n}\n","import {forwardRef, lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  /** Define the language to use for syntax highlighting. */\n  language?: string\n  size?: number | number[]\n  weight?: string\n}\n\nconst StyledCode = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n  props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n  ref: React.ForwardedRef<HTMLElement>,\n) {\n  const {children, language, size = 2, weight, ...restProps} = props\n\n  return (\n    <StyledCode\n      data-ui=\"Code\"\n      {...restProps}\n      $size={_getArrayProp(size)}\n      $weight={weight}\n      ref={ref}\n    >\n      <Suspense fallback={<code>{children}</code>}>\n        <LazyRefractor language={language} value={children} />\n      </Suspense>\n    </StyledCode>\n  )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n  width: '100%',\n  margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n  return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n  props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n  const {container, media} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$width, (val) => ({\n    maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n  }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n  containerBaseStyle,\n  responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n  props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {as, width = 2, ...restProps} = props\n\n  return (\n    <StyledContainer\n      data-ui=\"Container\"\n      {...restProps}\n      $width={_getArrayProp(width)}\n      forwardedAs={as}\n      ref={ref}\n    />\n  )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n  props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    as,\n    autoRows,\n    autoCols,\n    autoFlow,\n    columns,\n    gridTemplateColumns,\n    gap,\n    gapX,\n    gapY,\n    rows,\n    gridTemplateRows,\n    children,\n    ...restProps\n  } = props\n\n  return (\n    <StyledGrid\n      data-as={typeof as === 'string' ? as : undefined}\n      data-ui=\"Grid\"\n      {...restProps}\n      $autoRows={_getArrayProp(autoRows)}\n      $autoCols={_getArrayProp(autoCols)}\n      $autoFlow={_getArrayProp(autoFlow)}\n      $columns={_getArrayProp(gridTemplateColumns === undefined ? columns : gridTemplateColumns)}\n      $gap={_getArrayProp(gap)}\n      $gapX={_getArrayProp(gapX)}\n      $gapY={_getArrayProp(gapY)}\n      $rows={_getArrayProp(gridTemplateRows === undefined ? rows : gridTemplateRows)}\n      forwardedAs={as}\n      ref={ref}\n    >\n      {children}\n    </StyledGrid>\n  )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n  const {$accent, $muted} = props\n  const {font} = getTheme_v2(props.theme)\n\n  return css`\n    ${$accent &&\n    css`\n      color: var(--card-accent-fg-color);\n    `}\n\n    ${$muted &&\n    css`\n      color: var(--card-muted-fg-color);\n    `}\n\n    & code {\n      font-family: ${font.code.family};\n      border-radius: 1px;\n    }\n\n    & a {\n      text-decoration: none;\n      border-radius: 1px;\n      color: var(--card-link-color);\n      outline: none;\n\n      @media (hover: hover) {\n        &:hover {\n          text-decoration: underline;\n        }\n      }\n\n      &:focus {\n        box-shadow:\n          0 0 0 1px var(--card-bg-color),\n          0 0 0 3px var(--card-focus-ring-color);\n      }\n\n      &:focus:not(:focus-visible) {\n        box-shadow: none;\n      }\n    }\n\n    & strong {\n      font-weight: ${font.heading.weights.bold};\n    }\n\n    & svg {\n      /* Certain popular CSS libraries changes the defaults for SVG display */\n      /* Make sure SVGs are rendered as inline elements */\n      display: inline;\n    }\n\n    & [data-sanity-icon] {\n      vertical-align: baseline;\n    }\n  `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n  ResponsiveFontStyleProps,\n  responsiveHeadingFont,\n  responsiveTextAlignStyle,\n  ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n  accent?: boolean\n  align?: TextAlign | TextAlign[]\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  muted?: boolean\n  size?: number | number[]\n  /**\n   * Controls how overflowing text is treated.\n   * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n   * @beta\n   */\n  textOverflow?: 'ellipsis'\n  weight?: ThemeFontWeightKey\n}\n\nconst StyledHeading = styled.div<\n  HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n  props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n  ref: React.ForwardedRef<HTMLElement>,\n) {\n  const {\n    accent = false,\n    align,\n    children: childrenProp,\n    muted = false,\n    size = 2,\n    textOverflow,\n    weight,\n    ...restProps\n  } = props\n\n  let children = childrenProp\n\n  if (textOverflow === 'ellipsis') {\n    children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n  }\n\n  return (\n    <StyledHeading\n      data-ui=\"Heading\"\n      {...restProps}\n      $accent={accent}\n      $align={_getArrayProp(align)}\n      $muted={muted}\n      $size={_getArrayProp(size)}\n      $weight={weight}\n      ref={ref}\n    >\n      <span>{children}</span>\n    </StyledHeading>\n  )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n  return {\n    'lineHeight': '0',\n\n    '&&:not([hidden])': {\n      display: 'block',\n    },\n\n    '& > div': {\n      display: 'inline-block',\n      verticalAlign: 'middle',\n    },\n  }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n  const {media, space} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$space, (spaceIndex) => {\n    const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n    return {\n      'margin': `-${_space} 0 0 -${_space}`,\n      '& > div': {padding: `${_space} 0 0 ${_space}`},\n    }\n  })\n}\n","import {Children, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n  /**\n   * The spacing between children.\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  /** The spacing between children. */\n  gap?: number | number[]\n}\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n  props: InlineProps & React.HTMLProps<HTMLDivElement>,\n  ref,\n) {\n  const {as, children: childrenProp, gap, space: deprecated_space, ...restProps} = props\n  const spacing = gap === undefined ? deprecated_space : gap\n\n  const children = useMemo(\n    () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n    [childrenProp],\n  )\n\n  return (\n    <StyledInline\n      data-ui=\"Inline\"\n      {...restProps}\n      $space={_getArrayProp(spacing)}\n      forwardedAs={as}\n      ref={ref as any}\n    >\n      {children}\n    </StyledInline>\n  )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  fontSize?: number | number[]\n  padding?: number | number[]\n  radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n  return css`\n    --card-bg-color: var(--card-kbd-bg-color);\n    --card-border-color: var(--card-kbd-border-color);\n    --card-fg-color: var(--card-kbd-fg-color);\n\n    box-shadow: inset 0 0 0 1px var(--card-border-color);\n    background: var(--card-bg-color);\n    font: inherit;\n\n    vertical-align: top;\n\n    &:not([hidden]) {\n      display: inline-block;\n    }\n  `\n}\n\nconst StyledKBD = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n  props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n  return (\n    <StyledKBD data-ui=\"KBD\" {...restProps} $radius={_getArrayProp(radius)} ref={ref}>\n      <Box as=\"span\" padding={padding}>\n        <Text as=\"span\" size={fontSize} weight=\"semibold\">\n          {children}\n        </Text>\n      </Box>\n    </StyledKBD>\n  )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n  name: '@sanity/ui/origin',\n  fn({middlewareData, placement, rects}) {\n    const [side] = placement.split('-')\n\n    const floatingWidth = rects.floating.width\n    const floatingHeight = rects.floating.height\n\n    const shiftX = middlewareData.shift?.x || 0\n    const shiftY = middlewareData.shift?.y || 0\n\n    if (floatingWidth <= 0 || floatingHeight <= 0) {\n      return {}\n    }\n\n    const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n    const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n      ? {\n          originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n          originY: side === 'bottom' ? 0 : 1,\n        }\n      : {\n          originX: side === 'left' ? 1 : 0,\n          originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n        }\n\n    return {\n      data: {originX, originY},\n    }\n  },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n  return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n  type: 'point'\n  x: number\n  y: number\n  radius?: number\n}\n\nexport interface CurveCmd {\n  type: 'curve'\n  startControl: Point\n  endControl: Point\n  curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n  x: number\n  y: number\n  radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n  const width = targetPoint.x - movingPoint.x\n  const height = targetPoint.y - movingPoint.y\n\n  const distance = Math.sqrt(width * width + height * height)\n\n  return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n  return {\n    x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n    y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n  }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n  const len = points.length\n\n  const cmds: Cmd[] = []\n\n  for (let i = 0; i < len; i += 1) {\n    const point = points[i]\n    const prevPoint = points[i - 1]\n    const nextPoint = points[i + 1]\n\n    if (prevPoint && point.radius) {\n      const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n      const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n      const startControl = moveTowardsFractional(curveStart, point, 0.5)\n      const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n      cmds.push({\n        type: 'point',\n        ...curveStart,\n      })\n\n      cmds.push({\n        type: 'curve',\n        curveEnd,\n        startControl,\n        endControl,\n      })\n    } else {\n      cmds.push({\n        type: 'point',\n        ...point,\n      })\n    }\n  }\n\n  return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n  return cmds\n    .map((n, idx) => {\n      if (n.type === 'point') {\n        return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n      }\n\n      if (n.type === 'curve') {\n        return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n      }\n\n      return ``\n    })\n    .join(' ')\n}\n","import {ForwardedRef, forwardRef, HTMLProps} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useTheme_v2} from '../../theme'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\nconst StyledArrow = styled.div<{$w: number}>(\n  ({$w: w}) => css`\n    position: absolute;\n    width: ${w}px;\n    height: ${w}px;\n\n    :empty + & {\n      display: none;\n    }\n\n    & > svg {\n      display: block;\n      line-height: 0;\n      transform-origin: ${w / 2}px ${w / 2}px;\n    }\n\n    [data-placement^='top'] > & {\n      bottom: -${w}px;\n\n      & > svg {\n        transform: rotate(0);\n      }\n    }\n\n    [data-placement^='right'] > & {\n      left: -${w}px;\n\n      & > svg {\n        transform: rotate(90deg);\n      }\n    }\n\n    [data-placement^='left'] > & {\n      right: -${w}px;\n\n      & > svg {\n        transform: rotate(-90deg);\n      }\n    }\n\n    [data-placement^='bottom'] > & {\n      top: -${w}px;\n\n      & > svg {\n        transform: rotate(180deg);\n      }\n    }\n  `,\n)\n\nconst StrokePath = styled.path`\n  stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n  fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n  props: {width: number; height: number; radius?: number} & Omit<\n    HTMLProps<HTMLDivElement>,\n    'width' | 'height'\n  >,\n  ref: ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n  const {width: w, height: h, radius = 0, ...restProps} = props\n  const {card} = useTheme_v2()\n  const strokeWidth = card.shadow.outline\n\n  const center = w / 2\n\n  const points: Point[] = [\n    {\n      x: 0,\n      y: 0,\n    },\n    {\n      x: radius,\n      y: 0,\n      radius,\n    },\n    {\n      x: center,\n      y: h - 1,\n      radius,\n    },\n    {\n      x: w - radius,\n      y: 0,\n      radius,\n    },\n    {\n      x: w,\n      y: 0,\n    },\n  ]\n\n  const cmds = getRoundedCommands(points)\n  const path = compileCommands(cmds)\n\n  const strokePath = `${path}`\n  const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n  return (\n    <StyledArrow {...restProps} $w={w} ref={ref}>\n      <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n        <mask id=\"stroke-mask\">\n          <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n        </mask>\n        <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n        <ShapePath d={fillPath} />\n      </svg>\n    </StyledArrow>\n  )\n})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n  '@sanity/ui/context/boundaryElement',\n  null,\n)\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n  children: React.ReactNode\n  element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n  const {children, element} = props\n  const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n  return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n  return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n  version: 0.0,\n  element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n  const value = useContext(BoundaryElementContext)\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 (value && (!isRecord(value) || value.version !== 0.0)) {\n    throw new Error('useBoundaryElement(): the context value is not compatible')\n  }\n\n  return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n  children,\n  condition,\n  wrapper,\n}: {\n  children: React.ReactNode\n  condition: boolean\n  wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n  if (!condition) {\n    return children\n  }\n\n  return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n  const ret: number[] = []\n\n  for (let i = 0; i < media.length; i += 1) {\n    const bp = media[i]\n\n    if (bp > width) {\n      ret.push(i)\n    }\n  }\n\n  return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n  const ret: number[] = []\n\n  for (let i = 0; i < media.length; i += 1) {\n    const bp = media[i]\n\n    if (bp <= width) {\n      ret.push(i)\n    }\n  }\n\n  return ret\n}\n","import {forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n  props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n  const theme = useTheme_v2()\n  const {children, media: _media, ...restProps} = props\n  const media = _media ?? theme.media\n\n  const [element, setElement] = useState<HTMLDivElement | null>(null)\n  const elementSize = useElementSize(element)\n  const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n  const max = useMemo(() => {\n    const eq = findMaxBreakpoints(media, width)\n\n    return eq.length ? eq.join(' ') : undefined\n  }, [media, width])\n  const min = useMemo(() => {\n    const eq = findMinBreakpoints(media, width)\n\n    return eq.length ? eq.join(' ') : undefined\n  }, [media, width])\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n    element,\n  ])\n\n  return (\n    <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n      {children}\n    </div>\n  )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\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(contextValue) || contextValue.version !== 0.0) {\n    throw new Error('the context value is not compatible')\n  }\n\n  if (!contextValue) {\n    throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n  }\n\n  if (contextValue.version === 0.0) {\n    return contextValue\n  }\n\n  throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n  '@sanity/ui/context/layer',\n  null,\n)\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useMediaIndex} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n  children?: React.ReactNode\n  zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n  const {children, zOffset: zOffsetProp = 0} = props\n\n  // Get parent context values\n  const parentContextValue = useContext(LayerContext)\n  const parent = parentContextValue && getLayerContext(parentContextValue)\n  const parentRegisterChild = parent?.registerChild\n  const parentLevel = parent?.level ?? 0\n\n  // Get level\n  const level = parentLevel + 1\n\n  // Get z-index offset\n  const zOffset = _getArrayProp(zOffsetProp)\n\n  // Get responsive z-index value\n  const maxMediaIndex = zOffset.length - 1\n  const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n  const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n  // A state value that is used to keep track of the number of child layers on each level\n  const [, setChildLayers] = useState<Record<number, number>>({})\n\n  // A state value that is used to keep track of the number of child levels\n  const [size, setSize] = useState(0)\n\n  const isTopLayer = size === 0\n\n  const registerChild = useCallback(\n    (childLevel?: number) => {\n      // Register child layers to the parent layer\n      const parentDispose = parentRegisterChild?.(childLevel)\n\n      if (childLevel !== undefined) {\n        setChildLayers((state) => {\n          const prevLen = state[childLevel] ?? 0\n          const nextState = {...state, [childLevel]: prevLen + 1}\n\n          setSize(Object.keys(nextState).length)\n\n          return nextState\n        })\n      } else {\n        // Legacy behavior: if no child level is provided, increment the size by 1\n        setSize((v) => v + 1)\n      }\n\n      return () => {\n        if (childLevel !== undefined) {\n          setChildLayers((state) => {\n            const nextState = {...state}\n\n            if (nextState[childLevel] === 1) {\n              delete nextState[childLevel]\n\n              setSize(Object.keys(nextState).length)\n            } else {\n              nextState[childLevel] -= 1\n            }\n\n            return nextState\n          })\n        } else {\n          // Legacy behavior: if no child level is provided, decrement the size by 1\n          setSize((v) => v - 1)\n        }\n\n        parentDispose?.()\n      }\n    },\n    [parentRegisterChild, setSize, setChildLayers],\n  )\n\n  // Register this layer on mount\n  useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n  const value: LayerContextValue = useMemo(\n    () => ({\n      version: 0.0,\n      isTopLayer,\n      level,\n      registerChild,\n      size,\n      zIndex,\n    }),\n    [isTopLayer, level, registerChild, size, zIndex],\n  )\n\n  return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n  const value = useContext(LayerContext)\n\n  if (!value) {\n    throw new Error('useLayer(): missing context value')\n  }\n\n  try {\n    return getLayerContext(value)\n  } catch (err) {\n    if (err instanceof Error) {\n      throw new Error(`useLayer(): ${err.message}`)\n    } else {\n      throw new Error(`useLayer(): ${err}`)\n    }\n  }\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n  onActivate?: (props: {activeElement: HTMLElement | null}) => void\n  zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n  props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n  forwardedRef: React.Ref<HTMLDivElement>,\n) {\n  const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n  const {zIndex, isTopLayer} = useLayer()\n  const lastFocusedRef = useRef<HTMLElement | null>(null)\n  const ref = useRef<HTMLDivElement | null>(null)\n  const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n  // When the layer very first mounts, it will be the top layer, but we don't want to fire\n  // the callback in that case. We use a ref to track the previous value of isTopLayer to\n  // determine if the layer has become the top layer since the last render.\n  useEffect(() => {\n    const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n    if (becameTopLayer) {\n      onActivate?.({activeElement: lastFocusedRef.current})\n    }\n\n    isTopLayerRef.current = isTopLayer\n  }, [isTopLayer, onActivate])\n\n  const handleFocus = useCallback(\n    (event: FocusEvent<HTMLDivElement, Element>) => {\n      // Call the user-provided onFocus handler if any\n      onFocus?.(event)\n\n      const rootElement = ref.current\n      const target = document.activeElement\n\n      if (!isTopLayer || !rootElement || !target) return\n\n      if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n        lastFocusedRef.current = target\n      }\n    },\n    [isTopLayer, onFocus],\n  )\n\n  return (\n    <StyledLayer\n      {...restProps}\n      data-ui=\"Layer\"\n      onFocus={handleFocus}\n      ref={ref}\n      style={{...style, zIndex}}\n    >\n      {children}\n    </StyledLayer>\n  )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n  props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {children, zOffset = 1, ...restProps} = props\n\n  return (\n    <LayerProvider zOffset={zOffset}>\n      <LayerChildren {...restProps} ref={ref}>\n        {children}\n      </LayerChildren>\n    </LayerProvider>\n  )\n})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n  version: 0.0,\n  boundaryElement: null,\n  get element() {\n    if (typeof document === 'undefined') {\n      return null\n    }\n\n    if (globalScope[elementKey]) {\n      return globalScope[elementKey]\n    }\n\n    globalScope[elementKey] = document.createElement('div')\n    globalScope[elementKey].setAttribute('data-portal', '')\n\n    document.body.appendChild(globalScope[elementKey])\n\n    return globalScope[elementKey]\n  },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n  const value = useContext(PortalContext)\n\n  if (!value) {\n    throw new Error('usePortal(): 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('usePortal(): the context value is not compatible')\n  }\n\n  return value\n}\n","import {createPortal} from 'react-dom'\n\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n  children: React.ReactNode\n  /**\n   * @beta This API might change. DO NOT USE IN PRODUCTION.\n   */\n  __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n  const {children, __unstable_name: name} = props\n  const portal = usePortal()\n  const portalElement =\n    (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n  if (!portalElement) {\n    return null\n  }\n\n  return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n  /**\n   * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n   */\n  boundaryElement?: HTMLElement | null\n  children: React.ReactNode\n  element?: HTMLElement | null\n  /**\n   * @beta\n   */\n  __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n  const {boundaryElement, children, element, __unstable_elements: elements} = props\n  const fallbackElement = useSyncExternalStore(\n    emptySubscribe,\n    () => document.body,\n    () => null,\n  )\n\n  const value: PortalContextValue = useMemo(() => {\n    return {\n      version: 0.0,\n      boundaryElement: boundaryElement || null,\n      element: element || fallbackElement,\n      elements,\n    }\n  }, [boundaryElement, element, elements, fallbackElement])\n\n  return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  children?: React.ReactNode\n}\n\nconst StyledSrOnly = styled.div`\n  display: block;\n  width: 0;\n  height: 0;\n  position: absolute;\n  overflow: hidden;\n  overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n  props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n  ref: React.Ref<HTMLDivElement>,\n) {\n  const {as, children} = props\n\n  return (\n    <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n      {children}\n    </StyledSrOnly>\n  )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n  fromIndex: number\n  gap: number\n  itemHeight: number\n  scrollHeight: number\n  scrollTop: number\n  toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  gap?: number\n  getItemKey?: (item: Item, itemIndex: number) => string\n  items?: Item[]\n  onChange?: (opts: VirtualListChangeOpts) => void\n  renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n  position: relative;\n`\n\nconst ItemWrapper = styled.div`\n  position: absolute;\n  left: 0;\n  right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n  props: VirtualListProps &\n    StackProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n  const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n  const {space} = useTheme_v2()\n  const ref = useRef<HTMLDivElement | null>(null)\n  const wrapperRef = useRef<HTMLDivElement | null>(null)\n  const [scrollTop, setScrollTop] = useState(0)\n  const [scrollHeight, setScrollHeight] = useState(0)\n  const [itemHeight, setItemHeight] = useState(-1)\n\n  // Sync ref to parent\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n  useEffect(() => {\n    if (!wrapperRef.current) return\n\n    const firstElement = wrapperRef.current.firstChild\n\n    if (firstElement instanceof HTMLElement) {\n      setItemHeight(firstElement.offsetHeight)\n    }\n  }, [renderItem])\n\n  useEffect((): (() => void) | undefined => {\n    if (!ref.current) return\n\n    const scrollEl = findScrollable(ref.current.parentNode)\n\n    if (scrollEl) {\n      if (!(scrollEl instanceof HTMLElement)) return\n\n      const handleScroll = () => {\n        setScrollTop(scrollEl.scrollTop)\n      }\n\n      scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n      const ro = new _ResizeObserver((entries) => {\n        setScrollHeight(entries[0].contentRect.height)\n      })\n\n      ro.observe(scrollEl)\n\n      handleScroll()\n\n      return () => {\n        scrollEl.removeEventListener('scroll', handleScroll)\n\n        ro.unobserve(scrollEl)\n        ro.disconnect()\n      }\n    }\n\n    const handleScroll = () => {\n      setScrollTop(window.scrollY)\n    }\n\n    const handleResize = () => {\n      setScrollHeight(window.innerHeight)\n    }\n\n    window.addEventListener('scroll', handleScroll, {passive: true})\n    window.addEventListener('resize', handleResize)\n\n    // eslint-disable-next-line react-hooks/set-state-in-effect\n    setScrollHeight(window.innerHeight)\n\n    handleScroll()\n\n    return () => {\n      window.removeEventListener('scroll', handleScroll)\n      window.removeEventListener('resize', handleResize)\n    }\n  }, [])\n\n  const len = items.length\n  const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n  const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n  const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n  useEffect(() => {\n    if (!onChange) return\n    onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n  }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n  const children = useChildren({\n    fromIndex,\n    gap,\n    itemHeight,\n    space,\n    toIndex,\n    getItemKey,\n    items,\n    renderItem,\n  })\n\n  return (\n    <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n      <div ref={wrapperRef} style={{height}}>\n        {children}\n      </div>\n    </StyledVirtualList>\n  )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction useChildren({\n  fromIndex,\n  gap,\n  getItemKey,\n  itemHeight,\n  items,\n  renderItem,\n  space,\n  toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n  Required<Pick<VirtualListProps, 'items'>> & {\n    fromIndex: number\n    gap: number\n    itemHeight: number\n    space: number[]\n    toIndex: number\n  }) {\n  if (!renderItem || items.length === 0) return null\n\n  if (itemHeight === -1) {\n    return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n  }\n\n  return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n    const itemIndex = fromIndex + _itemIndex\n    const node = renderItem(item)\n    const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n    return (\n      <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n        {node}\n      </ItemWrapper>\n    )\n  })\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n  let _scrollEl = parentNode\n\n  while (_scrollEl && !_isScrollable(_scrollEl)) {\n    _scrollEl = _scrollEl.parentNode\n  }\n\n  return _scrollEl\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n  // React <=18 in DEV\n  let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n  let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n  if (mayWarn) {\n    return (element as any).ref\n  }\n\n  // React 19 in DEV\n  getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n  mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n  if (mayWarn) {\n    return (element.props as {ref?: React.Ref<unknown>}).ref\n  }\n\n  // Not DEV\n  return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n  'top': ['bottom', 'left', 'right'],\n  'top-start': ['bottom-start', 'left-start', 'right-start'],\n  'top-end': ['bottom-end', 'left-end', 'right-end'],\n  'bottom': ['top', 'left', 'right'],\n  'bottom-start': ['top-start', 'left-start', 'right-start'],\n  'bottom-end': ['top-end', 'left-end', 'right-end'],\n  'left': ['right', 'top', 'bottom'],\n  'left-start': ['right-start', 'top-start', 'bottom-start'],\n  'left-end': ['right-end', 'top-end', 'bottom-end'],\n  'right': ['left', 'top', 'bottom'],\n  'right-start': ['left-start', 'top-start', 'bottom-start'],\n  'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport function size(options: {\n  boundaryElement?: HTMLElement | null\n  constrainSize: boolean\n  margins: PopoverMargins\n  matchReferenceWidth?: boolean\n  maxWidthRef: React.RefObject<number | undefined>\n  padding?: number\n  referenceWidthRef: React.RefObject<number | undefined>\n  setReferenceWidth: (referenceWidth: number) => void\n  widthRef: React.RefObject<number | undefined>\n}): Middleware {\n  const {\n    constrainSize,\n    margins,\n    matchReferenceWidth,\n    maxWidthRef,\n    padding = 0,\n    referenceWidthRef,\n    setReferenceWidth,\n    widthRef,\n  } = options\n\n  return {\n    name: '@sanity/ui/size',\n    async fn(args) {\n      const {elements, placement, platform, rects} = args\n      const {floating, reference} = rects\n\n      const overflow = await detectOverflow(args, {\n        altBoundary: true,\n        boundary: options.boundaryElement || undefined,\n        elementContext: 'floating',\n        padding,\n        rootBoundary: 'viewport',\n      })\n\n      let maxWidth = Infinity\n      let maxHeight = Infinity\n\n      const floatingW = floating.width\n      const floatingH = floating.height\n\n      if (placement.includes('top')) {\n        maxWidth = floatingW - (overflow.left + overflow.right)\n        maxHeight = floatingH - overflow.top\n      }\n\n      if (placement.includes('right')) {\n        maxWidth = floatingW - overflow.right\n        maxHeight = floatingH - (overflow.top + overflow.bottom)\n      }\n\n      if (placement.includes('bottom')) {\n        maxWidth = floatingW - (overflow.left + overflow.right)\n        maxHeight = floatingH - overflow.bottom\n      }\n\n      if (placement.includes('left')) {\n        maxWidth = floatingW - overflow.left\n        maxHeight = floatingH - (overflow.top + overflow.bottom)\n      }\n\n      // IMPORTANT – APPLY ELEMENT STYLES HERE\n      // Elements need to be resized BEFORE the `platform.getDimensions` call below\n      const availableWidth = maxWidth - margins[1] - margins[3]\n      const availableHeight = maxHeight - margins[0] - margins[2]\n      const referenceWidth = reference.width - margins[1] - margins[3]\n      referenceWidthRef.current = referenceWidth\n      setReferenceWidth(referenceWidth)\n\n      if (matchReferenceWidth) {\n        elements.floating.style.width = `${referenceWidth}px`\n      } else if (widthRef.current !== undefined) {\n        elements.floating.style.width = `${widthRef.current}px`\n      }\n\n      if (constrainSize) {\n        elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n        elements.floating.style.maxHeight = `${availableHeight}px`\n      }\n\n      const nextDimensions = await platform.getDimensions(elements.floating)\n\n      const targetH = nextDimensions.height\n      const targetW = nextDimensions.width\n\n      if (floatingW !== targetW || floatingH !== targetH) {\n        return {reset: {rects: true}}\n      }\n\n      return {}\n    },\n  }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n  mediaIndex: number\n  container: number[]\n  width: PopoverWidth[]\n}): number | undefined {\n  const {container, mediaIndex, width} = params\n\n  const w = width[mediaIndex]\n  const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n  return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n  boundaryWidth: number | undefined\n  currentWidth: number | undefined\n}): number | undefined {\n  const {boundaryWidth, currentWidth} = params\n\n  if (currentWidth === undefined && boundaryWidth === undefined) {\n    return undefined\n  }\n\n  return Math.min(\n    currentWidth ?? Infinity,\n    (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n  )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n  DEFAULT_POPOVER_ARROW_HEIGHT,\n  DEFAULT_POPOVER_ARROW_RADIUS,\n  DEFAULT_POPOVER_ARROW_WIDTH,\n  DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n  &:not([hidden]) {\n    display: flex;\n  }\n  flex-direction: column;\n  width: max-content;\n  min-width: min-content;\n  will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n  will-change: opacity;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = forwardRef(function PopoverCard(\n  props: {\n    /** @beta*/\n    __unstable_margins?: PopoverMargins\n    animate?: boolean\n    arrow: boolean\n    arrowRef: React.Ref<HTMLDivElement>\n    arrowX?: number\n    arrowY?: number\n    originX?: number\n    originY?: number\n    overflow?: BoxOverflow\n    padding?: number | number[]\n    placement: Placement\n    radius?: Radius | Radius[]\n    scheme?: ThemeColorSchemeKey\n    shadow?: number | number[]\n    strategy: Strategy\n    tone: CardTone\n    width: number | undefined\n    x: number | null\n    y: number | null\n  } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    __unstable_margins: marginsProp,\n    animate,\n    arrow,\n    arrowRef,\n    arrowX,\n    arrowY,\n    children,\n    padding,\n    placement,\n    originX,\n    originY,\n    overflow,\n    radius,\n    scheme,\n    shadow,\n    strategy,\n    style,\n    tone,\n    width,\n    x: xProp,\n    y: yProp,\n    ...restProps\n  } = props\n\n  const {zIndex} = useLayer()\n\n  // Get margins: [top, right, bottom, left]\n  const margins: PopoverMargins = useMemo(\n    () => marginsProp || DEFAULT_POPOVER_MARGINS,\n    [marginsProp],\n  )\n\n  // Translate according to margins\n  const x = (xProp ?? 0) + margins[3]\n  const y = (yProp ?? 0) + margins[0]\n\n  const rootStyle: CSSProperties = useMemo(\n    () => ({\n      left: x,\n      originX,\n      originY,\n      position: strategy,\n      top: y,\n      width,\n      zIndex,\n      willChange: animate ? 'transform' : undefined,\n      ...style,\n    }),\n    [animate, originX, originY, strategy, style, width, x, y, zIndex],\n  )\n\n  const arrowStyle: CSSProperties = useMemo(\n    () => ({\n      left: arrowX !== null ? arrowX : undefined,\n      top: arrowY !== null ? arrowY : undefined,\n      right: undefined,\n      bottom: undefined,\n    }),\n    [arrowX, arrowY],\n  )\n\n  return (\n    <MotionCard\n      data-ui=\"Popover\"\n      {...(restProps as CardProps & MotionProps)}\n      data-placement={placement}\n      radius={radius}\n      ref={ref}\n      scheme={scheme}\n      shadow={shadow}\n      sizing=\"border\"\n      style={rootStyle}\n      tone={tone}\n      variants={POPOVER_MOTION_PROPS.card}\n      transition={POPOVER_MOTION_PROPS.transition}\n      initial={animate ? ['hidden', 'initial'] : undefined}\n      animate={animate ? ['visible', 'scaleIn'] : undefined}\n      exit={animate ? ['hidden', 'scaleOut'] : undefined}\n    >\n      <MotionFlex\n        data-ui=\"Popover__wrapper\"\n        direction=\"column\"\n        flex={1}\n        overflow={overflow}\n        variants={POPOVER_MOTION_PROPS.children}\n        transition={POPOVER_MOTION_PROPS.transition}\n      >\n        <Flex direction=\"column\" flex={1} padding={padding}>\n          {children}\n        </Flex>\n      </MotionFlex>\n\n      {arrow && (\n        <Arrow\n          ref={arrowRef}\n          style={arrowStyle}\n          width={DEFAULT_POPOVER_ARROW_WIDTH}\n          height={DEFAULT_POPOVER_ARROW_HEIGHT}\n          radius={DEFAULT_POPOVER_ARROW_RADIUS}\n        />\n      )}\n    </MotionCard>\n  )\n})\nPopoverCard.displayName = 'ForwardRef(PopoverCard)'\n","import {\n  arrow,\n  autoPlacement,\n  autoUpdate,\n  flip,\n  hide,\n  Middleware,\n  offset,\n  RootBoundary,\n  shift,\n  useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'motion/react'\nimport {\n  cloneElement,\n  forwardRef,\n  type Ref,\n  useCallback,\n  useEffect,\n  useImperativeHandle,\n  useMemo,\n  useRef,\n  useState,\n} from 'react'\n\nimport {useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n  DEFAULT_FALLBACK_PLACEMENTS,\n  DEFAULT_POPOVER_DISTANCE,\n  DEFAULT_POPOVER_MARGINS,\n  DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\n/** @public */\nexport interface PopoverProps\n  extends Omit<LayerProps, 'as'>,\n    ResponsiveRadiusProps,\n    ResponsiveShadowProps {\n  /** @beta */\n  __unstable_margins?: PopoverMargins\n  /**\n   * Whether the popover should animate in and out.\n   *\n   * @beta\n   * @defaultValue false\n   */\n  animate?: boolean\n  arrow?: boolean\n  /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n  boundaryElement?: HTMLElement | null\n  children?: React.JSX.Element\n  /**\n   * When `true`, prevent overflow within the current boundary:\n   * - by flipping on its side axis\n   * - by resizing\n  /*\n   * Note that:\n   * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n   * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n   *\n   * @defaultValue false\n   */\n  constrainSize?: boolean\n  content?: React.ReactNode\n  disabled?: boolean\n  fallbackPlacements?: Placement[]\n  floatingBoundary?: HTMLElement | null\n  /**\n   * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n   * the current boundary by resizing.\n   *\n   * Note that setting `constrainSize` to `true` also causes the popover to resize\n   *\n   * @defaultValue false\n   */\n  matchReferenceWidth?: boolean\n  /**\n   * When true, blocks all pointer interaction with elements beneath the popover until closed.\n   *\n   * @beta\n   * @defaultValue false\n   */\n  modal?: boolean\n  open?: boolean\n  overflow?: BoxOverflow\n  padding?: number | number[]\n  placement?: Placement\n  /**\n   * When 'flip' (default), the placement is determined from the initial placement and the\n   * fallback placements in order. Whichever fits in the viewport first.\n   *\n   * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n   * and the placement with the most viewport space available.\n   *\n   * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n   */\n  placementStrategy?: 'flip' | 'autoPlacement'\n  /** Whether or not to render the popover in a portal element. */\n  portal?: boolean | string\n  preventOverflow?: boolean\n  referenceBoundary?: HTMLElement | null\n  /**\n   * When defined, the popover will be positioned relative to this element.\n   * The children of the popover won't be rendered.\n   */\n  referenceElement?: HTMLElement | null\n  scheme?: ThemeColorSchemeKey\n  tone?: CardTone\n  /** @beta */\n  updateRef?: Ref<PopoverUpdateCallback | undefined>\n  width?: PopoverWidth | PopoverWidth[]\n}\n\nconst ViewportOverlay = () => {\n  const {zIndex} = useLayer()\n\n  return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = forwardRef(function Popover(\n  props: PopoverProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n  const {container, layer} = useTheme_v2()\n  const boundaryElementContext = useBoundaryElement()\n\n  const {\n    __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n    animate: _animate = false,\n    arrow: arrowProp = false,\n    boundaryElement: _boundaryElement,\n    children: childProp,\n    constrainSize = false,\n    content,\n    disabled,\n    fallbackPlacements: _fallbackPlacements,\n    matchReferenceWidth,\n    floatingBoundary: _floatingBoundary,\n    modal,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    onActivate,\n    open,\n    overflow = 'hidden',\n    padding: paddingProp,\n    placement: placementProp = 'bottom',\n    placementStrategy = 'flip',\n    portal,\n    preventOverflow = true,\n    radius: radiusProp = 3,\n    referenceBoundary: _referenceBoundary,\n    referenceElement,\n    scheme,\n    shadow: shadowProp = 3,\n    tone = 'inherit',\n    width: widthProp = 'auto',\n    zOffset: _zOffsetProp,\n    updateRef,\n    ...restProps\n  } = props\n  const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n  const fallbackPlacements =\n    _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n  const floatingBoundary =\n    _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n  const referenceBoundary =\n    _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n  const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n  const prefersReducedMotion = usePrefersReducedMotion()\n  const animate = prefersReducedMotion ? false : _animate\n  const boundarySize = useElementSize(boundaryElement)?.border\n  const padding = _getArrayProp(paddingProp)\n  const radius = _getArrayProp(radiusProp)\n  const shadow = _getArrayProp(shadowProp)\n  const widthArrayProp = _getArrayProp(widthProp)\n  const zOffset = _getArrayProp(zOffsetProp)\n  const ref = useRef<HTMLDivElement | null>(null)\n  const arrowRef = useRef<HTMLDivElement | null>(null)\n  const rootBoundary: RootBoundary = 'viewport'\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n  const mediaIndex = useMediaIndex()\n  const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n  // Update width when\n  // - media index changes\n  // - `width` property changes\n  const width = calcCurrentWidth({\n    container,\n    mediaIndex,\n    width: widthArrayProp,\n  })\n  const widthRef = useRef(width)\n\n  useEffect(() => {\n    widthRef.current = width\n  }, [width])\n\n  // Update max width when\n  // - boundary width changes\n  // - `width` property changes\n  const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n  const maxWidthRef = useRef(maxWidth)\n\n  useEffect(() => {\n    maxWidthRef.current = maxWidth\n  }, [maxWidth])\n\n  // Keep track of reference element width (see `size` middleware below)\n  const referenceWidthRef = useRef<number>(undefined)\n\n  // Force apply width & max width to floating element\n  useEffect(() => {\n    const floatingElement = ref.current\n\n    if (!open || !floatingElement) return\n\n    const referenceWidth = referenceWidthRef.current\n\n    if (matchReferenceWidth) {\n      if (referenceWidth !== undefined) {\n        floatingElement.style.width = `${referenceWidth}px`\n      }\n    } else if (width !== undefined) {\n      floatingElement.style.width = `${width}px`\n    }\n\n    if (typeof maxWidth === 'number') {\n      floatingElement.style.maxWidth = `${maxWidth}px`\n    }\n  }, [width, matchReferenceWidth, maxWidth, open])\n\n  const [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n  const middleware = useMiddleware({\n    animate,\n    arrowProp,\n    arrowRef,\n    constrainSize,\n    fallbackPlacements,\n    floatingBoundary,\n    margins,\n    matchReferenceWidth,\n    maxWidthRef,\n    placementProp,\n    placementStrategy,\n    preventOverflow,\n    referenceBoundary,\n    referenceWidthRef,\n    rootBoundary,\n    setReferenceWidth,\n    widthRef,\n  })\n\n  const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n    middleware,\n    placement: placementProp,\n    whileElementsMounted: autoUpdate,\n    elements: referenceElement\n      ? {\n          reference: referenceElement,\n        }\n      : undefined,\n  })\n\n  const referenceHidden = middlewareData.hide?.referenceHidden\n\n  const arrowX = middlewareData.arrow?.x\n  const arrowY = middlewareData.arrow?.y\n\n  const originX = middlewareData['@sanity/ui/origin']?.originX\n  const originY = middlewareData['@sanity/ui/origin']?.originY\n\n  const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n    arrowRef.current = arrowEl\n  }, [])\n\n  const setFloating = useCallback(\n    (node: HTMLDivElement | null) => {\n      ref.current = node\n      refs.setFloating(node)\n    },\n    [refs],\n  )\n\n  // If there's a child then we need to set the reference element to the cloned child ref\n  // and if child changes we make sure to update or remove the reference element.\n  useImperativeHandle(childProp ? getElementRef(childProp) : null, () => refs.reference.current)\n\n  const child = useMemo(() => {\n    // If a reference element is defined, we don't need to clone the child\n    if (referenceElement) return childProp\n\n    if (!childProp) return null\n\n    return cloneElement(childProp, {ref: refs.setReference})\n  }, [childProp, referenceElement, refs.setReference])\n\n  useImperativeHandle(updateRef, () => update, [update])\n\n  if (disabled) {\n    return childProp || <></>\n  }\n\n  const popover = (\n    <LayerProvider zOffset={zOffset}>\n      {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n      {modal && <ViewportOverlay />}\n\n      <PopoverCard\n        {...restProps}\n        __unstable_margins={margins}\n        animate={animate}\n        arrow={arrowProp}\n        arrowRef={setArrow}\n        arrowX={arrowX}\n        arrowY={arrowY}\n        hidden={referenceHidden}\n        overflow={overflow}\n        padding={padding}\n        placement={placement}\n        radius={radius}\n        ref={setFloating}\n        scheme={scheme}\n        shadow={shadow}\n        originX={originX}\n        originY={originY}\n        strategy={strategy}\n        tone={tone}\n        width={matchReferenceWidth ? referenceWidth : width}\n        x={x}\n        y={y}\n      >\n        {content}\n      </PopoverCard>\n    </LayerProvider>\n  )\n\n  const children =\n    open &&\n    (portal ? (\n      <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n    ) : (\n      popover\n    ))\n\n  return (\n    <>\n      {/* the popover */}\n      {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n      {/* the referred element */}\n      {child}\n    </>\n  )\n})\nPopover.displayName = 'ForwardRef(Popover)'\n\nfunction useMiddleware({\n  animate,\n  arrowProp,\n  arrowRef,\n  constrainSize,\n  fallbackPlacements,\n  floatingBoundary,\n  margins,\n  matchReferenceWidth,\n  maxWidthRef,\n  placementProp,\n  placementStrategy,\n  preventOverflow,\n  referenceBoundary,\n  referenceWidthRef,\n  rootBoundary,\n  setReferenceWidth,\n  widthRef,\n}: {\n  animate: boolean\n  arrowProp: boolean\n  arrowRef: React.RefObject<HTMLDivElement | null>\n  constrainSize: boolean\n  fallbackPlacements: Placement[]\n  floatingBoundary: HTMLElement | null\n  margins: PopoverMargins\n  matchReferenceWidth: boolean | undefined\n  maxWidthRef: React.RefObject<number | undefined>\n  placementProp: Placement\n  placementStrategy: 'flip' | 'autoPlacement'\n  preventOverflow: boolean\n  referenceBoundary: HTMLElement | null\n  referenceWidthRef: React.RefObject<number | undefined>\n  rootBoundary: RootBoundary\n  setReferenceWidth: (referenceWidth: number) => void\n  widthRef: React.RefObject<number | undefined>\n}) {\n  return useMemo(() => {\n    const ret: Middleware[] = []\n\n    // Flip the floating element when leaving the boundary box\n    if (constrainSize || preventOverflow) {\n      if (placementStrategy === 'autoPlacement') {\n        ret.push(\n          autoPlacement({\n            allowedPlacements: [placementProp].concat(fallbackPlacements),\n          }),\n        )\n      } else {\n        ret.push(\n          flip({\n            boundary: floatingBoundary || undefined,\n            fallbackPlacements,\n            padding: DEFAULT_POPOVER_PADDING,\n            rootBoundary,\n          }),\n        )\n      }\n    }\n\n    // Define distance between reference and floating element\n    ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n    // Track sizes\n    if (constrainSize || matchReferenceWidth) {\n      ret.push(\n        size({\n          boundaryElement: floatingBoundary || undefined,\n          constrainSize,\n          margins,\n          matchReferenceWidth,\n          maxWidthRef,\n          padding: DEFAULT_POPOVER_PADDING,\n          referenceWidthRef,\n          setReferenceWidth,\n          widthRef,\n        }),\n      )\n    }\n\n    // Shift the popover so its sits within the boundary element\n    if (preventOverflow) {\n      ret.push(\n        shift({\n          boundary: floatingBoundary || undefined,\n          rootBoundary,\n          padding: DEFAULT_POPOVER_PADDING,\n        }),\n      )\n    }\n\n    // Place arrow\n    if (arrowProp) {\n      ret.push(\n        arrow({\n          element: arrowRef,\n          padding: DEFAULT_POPOVER_PADDING,\n        }),\n      )\n    }\n\n    // Determine the origin to scale from.\n    // Must be placed after `@sanity/ui/size` and `shift` middleware.\n    if (animate) {\n      ret.push(origin)\n    }\n\n    ret.push(\n      hide({\n        boundary: referenceBoundary || undefined,\n        padding: DEFAULT_POPOVER_PADDING,\n        strategy: 'referenceHidden',\n      }),\n    )\n\n    return ret\n  }, [\n    animate,\n    arrowProp,\n    arrowRef,\n    constrainSize,\n    fallbackPlacements,\n    floatingBoundary,\n    margins,\n    matchReferenceWidth,\n    maxWidthRef,\n    placementProp,\n    placementStrategy,\n    preventOverflow,\n    referenceBoundary,\n    referenceWidthRef,\n    rootBoundary,\n    setReferenceWidth,\n    widthRef,\n  ])\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n  return css`\n    position: relative;\n\n    &:not([hidden]) {\n      display: inline-block;\n    }\n\n    &[data-read-only] {\n      outline: 1px solid red;\n    }\n  `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n  const {color, input} = getTheme_v2(props.theme)\n  const dist = (input.radio.size - input.radio.markSize) / 2\n\n  return css`\n    appearance: none;\n    position: absolute;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    height: 100%;\n    width: 100%;\n    outline: none;\n    z-index: 1;\n    padding: 0;\n    margin: 0;\n    border-radius: ${rem(input.radio.size / 2)};\n    border: none;\n\n    /* enabled */\n    & + span {\n      display: block;\n      position: relative;\n      height: ${rem(input.radio.size)};\n      width: ${rem(input.radio.size)};\n      border-radius: ${rem(input.radio.size / 2)};\n      background: ${color.input.default.enabled.bg};\n      box-shadow: ${focusRingBorderStyle({\n        color: color.input.default.enabled.border,\n        width: input.border.width,\n      })};\n\n      &::after {\n        content: '';\n        position: absolute;\n        top: ${rem(dist)};\n        left: ${rem(dist)};\n        height: ${rem(input.radio.markSize)};\n        width: ${rem(input.radio.markSize)};\n        border-radius: ${rem(input.radio.markSize / 2)};\n        background: ${color.input.default.enabled.fg};\n        opacity: 0;\n      }\n    }\n\n    /* focused */\n    &:not(:disabled):focus + span {\n      box-shadow: ${focusRingStyle({\n        border: {width: input.border.width, color: color.input.default.enabled.border},\n        focusRing: input.radio.focusRing,\n      })};\n    }\n\n    &:not(:disabled):focus:not(:focus-visible) + span {\n      box-shadow: ${focusRingBorderStyle({\n        color: color.input.default.enabled.border,\n        width: input.border.width,\n      })};\n    }\n\n    &:checked + span::after {\n      opacity: 1;\n    }\n\n    /* customValidity */\n    &[data-error] + span {\n      background-color: ${color.input.invalid.enabled.border};\n      box-shadow: ${focusRingBorderStyle({\n        width: input.border.width,\n        color: color.input.invalid.enabled.muted.bg,\n      })};\n      &::after {\n        background: ${color.input.invalid.enabled.muted.bg};\n      }\n    }\n\n    /* read only */\n    &[data-read-only] + span {\n      box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n      background: ${color.input.default.readOnly.bg};\n\n      &::after {\n        background: ${color.input.default.readOnly.border};\n      }\n    }\n\n    /* disabled */\n    &:not([data-read-only]):disabled + span {\n      box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n      background: ${color.input.default.disabled.bg};\n\n      &::after {\n        background: ${color.input.default.disabled.border};\n      }\n    }\n  `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n  customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n  props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n  forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n  const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n  const ref = useRef<HTMLInputElement | null>(null)\n\n  useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n    forwardedRef,\n    () => ref.current,\n  )\n\n  useCustomValidity(ref, customValidity)\n\n  return (\n    <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n      <Input\n        data-read-only={!disabled && readOnly ? '' : undefined}\n        data-error={customValidity ? '' : undefined}\n        {...restProps}\n        disabled={disabled || readOnly}\n        readOnly={readOnly}\n        ref={ref}\n        type=\"radio\"\n      />\n      <span />\n    </StyledRadio>\n  )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {CSSObject, getTheme_v2, ThemeFontSize} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {\n  focusRingBorderStyle,\n  focusRingStyle,\n  responsiveInputPaddingIconRightStyle,\n  responsiveRadiusStyle,\n  ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n  return css`\n    position: relative;\n    width: -moz-available;\n    width: -webkit-fill-available;\n    width: stretch;\n\n    &:not([hidden]) {\n      display: inline-block;\n    }\n  `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n  const {font} = getTheme_v2(props.theme)\n\n  return css`\n    -webkit-font-smoothing: antialiased;\n    appearance: none;\n    border: 0;\n    font-family: ${font.text.family};\n    color: inherit;\n    width: 100%;\n    outline: none;\n    margin: 0;\n\n    &:disabled {\n      opacity: 1;\n    }\n  `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n  const {color, input} = getTheme_v2(props.theme)\n\n  return css`\n    /* enabled */\n    background-color: ${color.input.default.enabled.bg};\n    color: ${color.input.default.enabled.fg};\n    box-shadow: ${focusRingBorderStyle({\n      color: color.input.default.enabled.border,\n      width: input.border.width,\n    })};\n\n    /* hovered */\n    @media (hover: hover) {\n      &:not(:disabled):hover {\n        background-color: ${color.input.default.hovered.bg};\n        color: ${color.input.default.hovered.fg};\n        box-shadow: ${focusRingBorderStyle({\n          color: color.input.default.hovered.border,\n          width: input.border.width,\n        })};\n      }\n    }\n\n    /* focused */\n    &:not(:disabled):focus {\n      box-shadow: ${focusRingStyle({\n        border: {width: input.border.width, color: color.input.default.enabled.border},\n        focusRing: input.select.focusRing,\n      })};\n    }\n\n    /* read-only */\n    &[data-read-only] {\n      background-color: ${color.input.default.readOnly.bg};\n      color: ${color.input.default.readOnly.fg};\n      box-shadow: ${focusRingBorderStyle({\n        color: color.input.default.readOnly.border,\n        width: input.border.width,\n      })};\n    }\n\n    /* disabled */\n    &:not([data-read-only]):disabled {\n      background-color: ${color.input.default.disabled.bg};\n      color: ${color.input.default.disabled.fg};\n      box-shadow: ${focusRingBorderStyle({\n        color: color.input.default.disabled.border,\n        width: input.border.width,\n      })};\n    }\n  `\n}\n\nfunction textSize(size: ThemeFontSize) {\n  return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n  const {$fontSize} = props\n  const {font, media} = getTheme_v2(props.theme)\n\n  return _responsive(media, $fontSize, (sizeIndex) =>\n    textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n  )\n}\n\nfunction inputStyle(): Array<\n  | ((\n      props: ResponsiveRadiusStyleProps & {\n        $fontSize: number[]\n        $padding: number[]\n        $space: number[]\n      } & ThemeProps,\n    ) => CSSObject[])\n  | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n  return [\n    responsiveRadiusStyle,\n    inputBaseStyle,\n    inputColorStyle,\n    inputTextSizeStyle,\n    responsiveInputPaddingIconRightStyle,\n  ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n  const {color} = getTheme_v2(props.theme)\n\n  return css`\n    pointer-events: none;\n    position: absolute;\n    top: 0;\n    right: 0;\n\n    /* enabled */\n    --card-fg-color: ${color.input.default.enabled.fg};\n\n    /* hover */\n    @media (hover: hover) {\n      select:not(disabled):not(:read-only):hover + && {\n        --card-fg-color: ${color.input.default.hovered.fg};\n      }\n    }\n\n    /* disabled */\n    select:disabled + && {\n      --card-fg-color: ${color.input.default.disabled.fg};\n    }\n\n    /* read-only */\n    select[data-read-only] + && {\n      --card-fg-color: ${color.input.default.readOnly.fg};\n    }\n  `\n}\n\nexport const selectStyle = {\n  root: rootStyle,\n  input: inputStyle,\n  iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n  fontSize?: number | number[]\n  gap?: number | number[]\n  padding?: number | number[]\n  radius?: Radius | Radius[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n  $fontSize: number[]\n  $padding: number[]\n  $radius: Radius[]\n  $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n  props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n  forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n  const {\n    children,\n    customValidity,\n    disabled,\n    fontSize = 2,\n    gap,\n    padding = 3,\n    radius = 2,\n    readOnly,\n    space: deprecated_space = 3,\n    ...restProps\n  } = props\n  const spacing = gap === undefined ? deprecated_space : gap\n\n  const ref = useRef<HTMLSelectElement | null>(null)\n\n  useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n    forwardedRef,\n    () => ref.current,\n  )\n\n  useCustomValidity(ref, customValidity)\n\n  return (\n    <StyledSelect data-ui=\"Select\">\n      <Input\n        data-read-only={!disabled && readOnly ? '' : undefined}\n        data-ui=\"Select\"\n        {...restProps}\n        $fontSize={_getArrayProp(fontSize)}\n        $padding={_getArrayProp(padding)}\n        $radius={_getArrayProp(radius)}\n        $space={_getArrayProp(spacing)}\n        disabled={disabled || readOnly}\n        ref={ref}\n      >\n        {children}\n      </Input>\n\n      <IconBox padding={padding}>\n        <Text size={fontSize}>\n          <ChevronDownIcon />\n        </Text>\n      </IconBox>\n    </StyledSelect>\n  )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n  $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n  '&&:not([hidden])': {\n    display: 'grid',\n  },\n  '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n    listStyle: 'none',\n  },\n  'gridTemplateColumns': 'minmax(0, 1fr)',\n  'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n  return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n  props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n  const {media, space} = getTheme_v2(props.theme)\n\n  return _responsive(media, props.$space, (spaceIndex) => ({\n    gridGap: rem(space[spaceIndex]),\n  }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  gap?: number | number[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n  stackBaseStyle,\n  responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n  props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {as, gap, space: deprecated_space, ...restProps} = props\n  const spacing = gap === undefined ? deprecated_space : gap\n\n  return (\n    <StyledStack\n      data-as={typeof as === 'string' ? as : undefined}\n      data-ui=\"Stack\"\n      {...restProps}\n      $space={_getArrayProp(spacing)}\n      forwardedAs={as}\n      ref={ref}\n    />\n  )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n  return css`\n    position: relative;\n    &:not([hidden]) {\n      display: inline-block;\n    }\n  `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n  // Visually hide the input element while keeping it interactive\n  return css`\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    opacity: 0;\n    height: 100%;\n    width: 100%;\n    outline: none;\n    padding: 0;\n    margin: 0;\n\n    /* Place the input element above the representation element */\n    z-index: 1;\n  `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n  const {color, input} = getTheme_v2(props.theme)\n\n  return css`\n    --switch-bg-color: ${color.input.default.enabled.border};\n    --switch-fg-color: ${color.input.default.enabled.bg};\n    --switch-box-shadow: none;\n\n    &:not([hidden]) {\n      display: block;\n    }\n    position: relative;\n    width: ${rem(input.switch.width)};\n    height: ${rem(input.switch.height)};\n    border-radius: ${rem(input.switch.height / 2)};\n\n    /* Make sure it’s not possible to interact with the wrapper element */\n    pointer-events: none;\n\n    &:after {\n      content: '';\n      display: block;\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      z-index: 1;\n      box-shadow: var(--switch-box-shadow);\n      border-radius: inherit;\n    }\n\n    /* Focus styles */\n    input:focus + && {\n      --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n    }\n\n    input:focus:not(:focus-visible) + && {\n      --switch-box-shadow: none;\n    }\n\n    input:checked + && {\n      --switch-bg-color: ${color.input.default.enabled.fg};\n      --switch-fg-color: ${color.input.default.enabled.bg};\n    }\n\n    @media (hover: hover) {\n      input:not(:disabled):hover + && {\n        --switch-bg-color: ${color.input.default.hovered.border};\n        --switch-fg-color: ${color.input.default.hovered.bg};\n      }\n\n      input:not(:disabled):checked:hover + && {\n        --switch-bg-color: ${color.input.default.enabled.fg};\n        --switch-fg-color: ${color.input.default.enabled.bg};\n      }\n    }\n\n    input:not([data-read-only]):disabled + && {\n      --switch-bg-color: ${color.input.default.disabled.border};\n      --switch-fg-color: ${color.input.default.disabled.bg};\n    }\n\n    input[data-read-only]:disabled + && {\n      --switch-bg-color: ${color.input.default.readOnly.border};\n      --switch-fg-color: ${color.input.default.readOnly.bg};\n    }\n\n    input:checked[data-read-only]:disabled + && {\n      --switch-bg-color: ${color.input.default.readOnly.fg};\n      --switch-fg-color: ${color.input.default.readOnly.bg};\n    }\n  `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n  const {input} = getTheme_v2(props.theme)\n\n  return css`\n    &:not([hidden]) {\n      display: block;\n    }\n    background-color: var(--switch-bg-color);\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: ${rem(input.switch.width)};\n    height: ${rem(input.switch.height)};\n    border-radius: ${rem(input.switch.height / 2)};\n  `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n  props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n  const {$indeterminate} = props\n  const {input} = getTheme_v2(props.theme)\n  const trackWidth = input.switch.width\n  const trackHeight = input.switch.height\n  const trackPadding = input.switch.padding\n  const size = trackHeight - input.switch.padding * 2\n  const checkedOffset = trackWidth - trackPadding * 2 - size\n  const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n  const checked = $indeterminate !== true && props.$checked === true\n\n  return css`\n    &:not([hidden]) {\n      display: block;\n    }\n    position: absolute;\n    left: ${rem(trackPadding)};\n    top: ${rem(trackPadding)};\n    height: ${rem(size)};\n    width: ${rem(size)};\n    border-radius: ${rem(size / 2)};\n    transition-property: transform;\n    transition-duration: ${input.switch.transitionDurationMs}ms;\n    transition-timing-function: ${input.switch.transitionTimingFunction};\n    background: var(--switch-fg-color);\n    transform: translate3d(0, 0, 0);\n    box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n    ${checked &&\n    css`\n      transform: translate3d(${checkedOffset}px, 0, 0);\n    `}\n\n    ${$indeterminate &&\n    css`\n      transform: translate3d(${indeterminateOffset}px, 0, 0);\n    `}\n  `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n  switchBaseStyles,\n  switchInputStyles,\n  switchRepresentationStyles,\n  switchThumbStyles,\n  switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n  indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n  props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n  forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n  const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n  const ref = useRef<HTMLInputElement | null>(null)\n\n  useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n    forwardedRef,\n    () => ref.current,\n  )\n\n  useEffect(() => {\n    if (ref.current) {\n      // Set the indeterminate state\n      ref.current.indeterminate = indeterminate || false\n    }\n  }, [indeterminate])\n\n  return (\n    <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n      <Input\n        data-read-only={!disabled && readOnly ? '' : undefined}\n        {...restProps}\n        checked={indeterminate !== true && checked}\n        disabled={disabled || readOnly}\n        type=\"checkbox\"\n        ref={ref}\n      />\n      <Representation aria-hidden data-name=\"representation\">\n        <Track />\n        <Thumb $checked={checked} $indeterminate={indeterminate} />\n      </Representation>\n    </StyledSwitch>\n  )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {\n  responsiveInputPaddingStyle,\n  responsiveRadiusStyle,\n  ResponsiveRadiusStyleProps,\n  textInputBaseStyle,\n  textInputFontSizeStyle,\n  TextInputInputStyleProps,\n  textInputRepresentationStyle,\n  TextInputRepresentationStyleProps,\n  TextInputResponsivePaddingStyleProps,\n  textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n  /**\n   * @beta\n   */\n  __unstable_disableFocusRing?: boolean\n  border?: boolean\n  customValidity?: string\n  fontSize?: number | number[]\n  padding?: number | number[]\n  weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n  flex: 1;\n  min-width: 0;\n  display: block;\n  position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n  responsiveInputPaddingStyle,\n  textInputBaseStyle,\n  textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n  responsiveRadiusStyle,\n  textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n  props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n  forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n  const {\n    border = true,\n    customValidity,\n    disabled = false,\n    fontSize = 2,\n    padding = 3,\n    radius = 2,\n    weight,\n    __unstable_disableFocusRing,\n    ...restProps\n  } = props\n\n  const ref = useRef<HTMLTextAreaElement | null>(null)\n\n  const rootTheme = useRootTheme()\n\n  useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n    forwardedRef,\n    () => ref.current,\n  )\n\n  useCustomValidity(ref, customValidity)\n\n  return (\n    <StyledTextArea data-ui=\"TextArea\">\n      <InputRoot>\n        <Input\n          data-as=\"textarea\"\n          data-scheme={rootTheme.scheme}\n          data-tone={rootTheme.tone}\n          {...restProps}\n          $fontSize={_getArrayProp(fontSize)}\n          $padding={_getArrayProp(padding)}\n          $scheme={rootTheme.scheme}\n          $space={_getArrayProp(0)}\n          $tone={rootTheme.tone}\n          $weight={weight}\n          disabled={disabled}\n          ref={ref}\n        />\n        <Presentation\n          $radius={_getArrayProp(radius)}\n          $unstableDisableFocusRing={__unstable_disableFocusRing}\n          $scheme={rootTheme.scheme}\n          $tone={rootTheme.tone}\n          data-border={border ? '' : undefined}\n          data-scheme={rootTheme.scheme}\n          data-tone={rootTheme.tone}\n        />\n      </InputRoot>\n    </StyledTextArea>\n  )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {\n  responsiveInputPaddingStyle,\n  responsiveRadiusStyle,\n  ResponsiveRadiusStyleProps,\n  textInputBaseStyle,\n  textInputFontSizeStyle,\n  TextInputInputStyleProps,\n  textInputRepresentationStyle,\n  TextInputRepresentationStyleProps,\n  TextInputResponsivePaddingStyleProps,\n  textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n  Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n  | 'search'\n  | 'date'\n  | 'datetime-local'\n  | 'email'\n  | 'url'\n  | 'month'\n  | 'number'\n  | 'password'\n  | 'tel'\n  | 'time'\n  | 'text'\n  | 'week'\n  | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n  /**\n   * @beta\n   */\n  __unstable_disableFocusRing?: boolean\n  border?: boolean\n  /**\n   * @beta\n   */\n  clearButton?: boolean | TextInputClearButtonProps\n  customValidity?: string\n  fontSize?: number | number[]\n  icon?: React.ElementType | React.ReactNode\n  iconRight?: React.ElementType | React.ReactNode\n  /**\n   * @beta\n   */\n  onClear?: () => void\n  padding?: number | number[]\n  prefix?: React.ReactNode\n  radius?: Radius | Radius[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  gap?: number | number[]\n  suffix?: React.ReactNode\n  type?: TextInputType\n  weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n  flex: 1;\n  min-width: 0;\n  display: block;\n  position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n\n  & > span {\n    display: block;\n    margin: -1px;\n  }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n\n  & > span {\n    display: block;\n    margin: -1px;\n  }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n  responsiveInputPaddingStyle,\n  textInputBaseStyle,\n  textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n  responsiveRadiusStyle,\n  textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n  position: absolute;\n  top: 0;\n  left: 0;\n`\n\nconst RightBox = styled(Box)`\n  position: absolute;\n  top: 0;\n  right: 0;\n`\n\nconst RightCard = styled(Card)`\n  background-color: transparent;\n  position: absolute;\n  top: 0;\n  right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n  '&:not([hidden])': {\n    display: 'block',\n  },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n  props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n  forwardedRef: React.Ref<HTMLInputElement>,\n) {\n  const {\n    __unstable_disableFocusRing,\n    border = true,\n    clearButton,\n    disabled = false,\n    fontSize: fontSizeProp = 2,\n    gap,\n    icon: IconComponent,\n    iconRight: IconRightComponent,\n    onClear,\n    padding: paddingProp = 3,\n    prefix,\n    radius: radiusProp = 2,\n    readOnly,\n    space: deprecated_space = 3,\n    suffix,\n    customValidity,\n    type = 'text',\n    weight,\n    ...restProps\n  } = props\n  const ref = useRef<HTMLInputElement | null>(null)\n\n  const rootTheme = useRootTheme()\n\n  const fontSize = _getArrayProp(fontSizeProp)\n  const padding = _getArrayProp(paddingProp)\n  const radius = _getArrayProp(radiusProp)\n  const space = _getArrayProp(gap === undefined ? deprecated_space : gap)\n\n  // Transient properties\n  const $hasClearButton = Boolean(clearButton)\n  const $hasIcon = Boolean(IconComponent)\n  const $hasIconRight = Boolean(IconRightComponent)\n  const $hasSuffix = Boolean(suffix)\n  const $hasPrefix = Boolean(prefix)\n\n  useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n    forwardedRef,\n    () => ref.current,\n  )\n\n  useCustomValidity(ref, customValidity)\n\n  // Prevent the clear button from taking the focus away from the input\n  const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n    event.preventDefault()\n    event.stopPropagation()\n  }, [])\n\n  const handleClearClick = useCallback(\n    (event: React.MouseEvent<HTMLButtonElement>) => {\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (onClear) onClear()\n\n      // Focus the input, in case focus has been lost when clicking the clear button\n      ref.current?.focus()\n    },\n    [onClear, ref],\n  )\n\n  // Render prefix (memoized)\n  const prefixNode = useMemo(\n    () =>\n      prefix && (\n        <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n          <span>{prefix}</span>\n        </Prefix>\n      ),\n    [prefix, radius],\n  )\n\n  // Render presentation (memoized)\n  const presentationNode = useMemo(\n    () => (\n      <Presentation\n        $hasPrefix={$hasPrefix}\n        $unstableDisableFocusRing={__unstable_disableFocusRing}\n        $hasSuffix={$hasSuffix}\n        $radius={radius}\n        $scheme={rootTheme.scheme}\n        $tone={rootTheme.tone}\n        data-border={border ? '' : undefined}\n        data-scheme={rootTheme.scheme}\n        data-tone={rootTheme.tone}\n      >\n        {IconComponent && (\n          <LeftBox padding={padding}>\n            <Text size={fontSize}>\n              {isValidElement(IconComponent) && IconComponent}\n              {isValidElementType(IconComponent) && <IconComponent />}\n            </Text>\n          </LeftBox>\n        )}\n\n        {!$hasClearButton && IconRightComponent && (\n          <RightBox padding={padding}>\n            <Text size={fontSize}>\n              {isValidElement(IconRightComponent) && IconRightComponent}\n              {isValidElementType(IconRightComponent) && <IconRightComponent />}\n            </Text>\n          </RightBox>\n        )}\n      </Presentation>\n    ),\n    [\n      __unstable_disableFocusRing,\n      border,\n      fontSize,\n      IconComponent,\n      IconRightComponent,\n      padding,\n      radius,\n      rootTheme,\n      $hasClearButton,\n      $hasPrefix,\n      $hasSuffix,\n    ],\n  )\n\n  // Render clear button (memoized)\n  const clearButtonBoxPadding = 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 clearButtonPadding = useMemo(\n    () =>\n      padding.map((v) => {\n        if (v === 0) return 0\n        if (v === 1) return 0\n        if (v === 2) return 1\n\n        return v - 1\n      }),\n    [padding],\n  )\n  const clearButtonProps: TextInputClearButtonProps = useMemo(\n    () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n    [clearButton],\n  )\n  const clearButtonNode = useMemo(\n    () =>\n      !disabled &&\n      !readOnly &&\n      clearButton && (\n        <RightCard\n          forwardedAs=\"span\"\n          padding={clearButtonBoxPadding}\n          style={CLEAR_BUTTON_BOX_STYLE}\n          tone={customValidity ? 'critical' : 'inherit'}\n        >\n          <TextInputClearButton\n            aria-label=\"Clear\"\n            data-qa=\"clear-button\"\n            fontSize={fontSize}\n            icon={CloseIcon}\n            mode=\"bleed\"\n            padding={clearButtonPadding}\n            radius={radius}\n            {...clearButtonProps}\n            onClick={handleClearClick}\n            onMouseDown={handleClearMouseDown}\n          />\n        </RightCard>\n      ),\n    [\n      clearButton,\n      clearButtonBoxPadding,\n      clearButtonPadding,\n      clearButtonProps,\n      customValidity,\n      disabled,\n      fontSize,\n      handleClearClick,\n      handleClearMouseDown,\n      radius,\n      readOnly,\n    ],\n  )\n\n  // Render suffix (memoized)\n  const suffixNode = useMemo(\n    () =>\n      suffix && (\n        <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n          <span>{suffix}</span>\n        </Suffix>\n      ),\n    [radius, suffix],\n  )\n\n  return (\n    <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n      {prefixNode}\n\n      <InputRoot>\n        <Input\n          data-as=\"input\"\n          data-scheme={rootTheme.scheme}\n          data-tone={rootTheme.tone}\n          {...restProps}\n          $fontSize={fontSize}\n          $iconLeft={$hasIcon}\n          $iconRight={$hasIconRight || $hasClearButton}\n          $padding={padding}\n          $scheme={rootTheme.scheme}\n          $space={space}\n          $tone={rootTheme.tone}\n          $weight={weight}\n          disabled={disabled}\n          readOnly={readOnly}\n          ref={ref}\n          type={type}\n        />\n\n        {presentationNode}\n        {clearButtonNode}\n      </InputRoot>\n\n      {suffixNode}\n    </StyledTextInput>\n  )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useEffect, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n  initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n  const [state, setState] = useState(initialState)\n  const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n  const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n    const action = () => {\n      setState(nextState)\n    }\n\n    // A new state change has been initiated, cancel the previous one.\n    if (delayedAction.current) {\n      clearTimeout(delayedAction.current)\n      delayedAction.current = undefined\n    }\n\n    if (!delay) return action()\n    delayedAction.current = setTimeout(action, delay)\n  }, [])\n\n  useEffect(() => {\n    return () => {\n      if (delayedAction.current) {\n        clearTimeout(delayedAction.current)\n      }\n    }\n  }, [])\n\n  return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n  'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n  'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n  'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n  'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n  'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n  'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n  'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n  'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n  'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n  'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n  'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n  'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n  DEFAULT_TOOLTIP_ARROW_HEIGHT,\n  DEFAULT_TOOLTIP_ARROW_RADIUS,\n  DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n  will-change: transform;\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = forwardRef(function TooltipCard(\n  props: {\n    animate?: boolean\n    arrow: boolean\n    arrowRef: React.Ref<HTMLDivElement>\n    arrowX?: number\n    arrowY?: number\n    originX?: number\n    originY?: number\n    padding?: number | number[]\n    placement?: Placement\n    radius?: Radius | Radius[]\n    scheme?: ThemeColorSchemeKey\n    shadow?: number | number[]\n  } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n  ref: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    animate,\n    arrow,\n    arrowRef,\n    arrowX,\n    arrowY,\n    children,\n    originX,\n    originY,\n    padding,\n    placement,\n    radius,\n    scheme,\n    shadow,\n    style,\n    ...restProps\n  } = props\n\n  const rootStyle: CSSProperties = useMemo(\n    () => ({\n      originX,\n      originY,\n      willChange: animate ? 'transform' : undefined,\n      ...style,\n    }),\n    [animate, originX, originY, style],\n  )\n\n  const arrowStyle: CSSProperties = useMemo(\n    () => ({\n      left: arrowX !== null ? arrowX : undefined,\n      top: arrowY !== null ? arrowY : undefined,\n      right: undefined,\n      bottom: undefined,\n    }),\n    [arrowX, arrowY],\n  )\n\n  return (\n    <MotionCard\n      data-ui=\"Tooltip__card\"\n      {...(restProps as CardProps & MotionProps)}\n      data-placement={placement}\n      padding={padding}\n      radius={radius}\n      ref={ref}\n      scheme={scheme}\n      shadow={shadow}\n      style={rootStyle}\n      variants={POPOVER_MOTION_PROPS.card}\n      transition={POPOVER_MOTION_PROPS.transition}\n      initial={animate ? ['hidden', 'initial'] : undefined}\n      animate={animate ? ['visible', 'scaleIn'] : undefined}\n      exit={animate ? ['hidden', 'scaleOut'] : undefined}\n    >\n      {children}\n\n      {arrow && (\n        <Arrow\n          ref={arrowRef}\n          style={arrowStyle}\n          width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n          height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n          radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n        />\n      )}\n    </MotionCard>\n  )\n})\nTooltipCard.displayName = 'ForwardRef(TooltipCard)'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n  createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n    '@sanity/ui/context/tooltipDelayGroup',\n    null,\n  )\n","import {useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n  children?: React.ReactNode\n  /**\n   * Handles the delays to open or close a tooltip inside a group\n   *\n   * If only a `number` is passed, it will be used for both opening and closing.\n   *\n   * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n   *\n   * @public\n   */\n  delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n  props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n  const {children, delay} = props\n  const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n  const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n  const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n  const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n  const value: TooltipDelayGroupContextValue = useMemo(\n    () => ({\n      setIsGroupActive: setIsGroupActive,\n      openTooltipId: openTooltipId,\n      setOpenTooltipId: setOpenTooltipId,\n      // When the group is active, we want the next tooltip to open immediately.\n      openDelay: isGroupActive ? 1 : openDelay,\n      closeDelay: closeDelay,\n    }),\n    [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n  )\n\n  return (\n    <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n  )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n  const value = useContext(TooltipDelayGroupContext)\n\n  return value\n}\n","import {\n  arrow,\n  autoUpdate,\n  flip,\n  type Middleware,\n  offset,\n  type RootBoundary,\n  shift,\n  useFloating,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'motion/react'\nimport {\n  cloneElement,\n  forwardRef,\n  useCallback,\n  useEffect,\n  useId,\n  useImperativeHandle,\n  useLayoutEffect,\n  useMemo,\n  useRef,\n  useState,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n  DEFAULT_FALLBACK_PLACEMENTS,\n  DEFAULT_TOOLTIP_DISTANCE,\n  DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n  /** @deprecated Use `fallbackPlacements` instead. */\n  allowedAutoPlacements?: Placement[]\n  arrow?: boolean\n  boundaryElement?: HTMLElement | null\n  children?: React.JSX.Element\n  content?: React.ReactNode\n  disabled?: boolean\n  fallbackPlacements?: Placement[]\n  padding?: number | number[]\n  placement?: Placement\n  /** Whether or not to render the tooltip in a portal element. */\n  portal?: boolean | string\n  radius?: number | number[]\n  scheme?: ThemeColorSchemeKey\n  shadow?: number | number[]\n  /**\n   * Adds a delay to open or close the tooltip.\n   *\n   * If only a `number` is passed, it will be used for both opening and closing.\n   *\n   * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n   *\n   * @public\n   * @defaultValue 0\n   */\n  delay?: Delay\n  /**\n   * Whether the tooltip should animate in and out.\n   *\n   * @beta\n   * @defaultValue false\n   */\n  animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n  pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n  props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n  const boundaryElementContext = useBoundaryElement()\n  const {layer} = useTheme_v2()\n  const {\n    animate: _animate = false,\n    arrow: arrowProp = false,\n    boundaryElement: _boundaryElement,\n    children: childProp,\n    content,\n    disabled,\n    fallbackPlacements: _fallbackPlacementsProp,\n    padding = 2,\n    placement: placementProp = 'bottom',\n    portal: portalProp,\n    radius = 2,\n    scheme,\n    shadow = 2,\n    zOffset: _zOffset,\n    delay,\n    ...restProps\n  } = props\n  const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n  const fallbackPlacementsProp =\n    _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n  const zOffset = _zOffset ?? layer.tooltip.zOffset\n  const prefersReducedMotion = usePrefersReducedMotion()\n  const animate = prefersReducedMotion ? false : _animate\n  const fallbackPlacements = _getArrayProp(fallbackPlacementsProp)\n  const ref = useRef<HTMLDivElement | null>(null)\n  const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n  const arrowRef = useRef<HTMLDivElement | null>(null)\n  const rootBoundary: RootBoundary = 'viewport'\n  const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n  const portal = usePortal()\n  const portalElement =\n    typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n  const middleware = useMiddleware({\n    animate,\n    arrowProp,\n    arrowRef,\n    boundaryElement,\n    fallbackPlacements,\n    rootBoundary,\n  })\n\n  const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n    middleware,\n    placement: placementProp,\n    whileElementsMounted: autoUpdate,\n    elements: {reference: referenceElement},\n  })\n\n  const arrowX = middlewareData.arrow?.x\n  const arrowY = middlewareData.arrow?.y\n\n  const originX = middlewareData['@sanity/ui/origin']?.originX\n  const originY = middlewareData['@sanity/ui/origin']?.originY\n\n  const tooltipId = useId()\n  const [isOpen, setIsOpen] = useDelayedState(false)\n  const delayGroupContext = useTooltipDelayGroup()\n  const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n  const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n  const isInsideGroup = delayGroupContext !== null\n  const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n  const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n  const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n  const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n  const handleIsOpenChange = useCallback(\n    (open: boolean, immediate?: boolean) => {\n      if (isInsideGroup) {\n        //  When it's inside a group, the open or close status will be handled by the group.\n        if (open) {\n          const groupedOpenDelay = immediate ? 0 : openDelay\n\n          setIsGroupActive?.(open, groupedOpenDelay)\n          setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n        } else {\n          const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n          const groupDeactivateDelay =\n            closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n          setIsGroupActive?.(open, groupDeactivateDelay)\n          setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n        }\n      } else {\n        const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n        // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n        setIsOpen(open, standaloneDelay)\n      }\n    },\n    [\n      isInsideGroup,\n      openDelay,\n      setIsGroupActive,\n      setOpenTooltipId,\n      tooltipId,\n      closeDelay,\n      setIsOpen,\n    ],\n  )\n\n  const handleBlur = useCallback(\n    (e: FocusEvent) => {\n      handleIsOpenChange(false)\n      childProp?.props?.onBlur?.(e)\n    },\n    [childProp?.props, handleIsOpenChange],\n  )\n  const handleClick = useCallback(\n    (e: MouseEvent) => {\n      handleIsOpenChange(false, true)\n      childProp?.props.onClick?.(e)\n    },\n    [childProp?.props, handleIsOpenChange],\n  )\n  const handleContextMenu = useCallback(\n    (e: MouseEvent) => {\n      handleIsOpenChange(false, true)\n      childProp?.props.onContextMenu?.(e)\n    },\n    [childProp?.props, handleIsOpenChange],\n  )\n  const handleFocus = useCallback(\n    (e: FocusEvent) => {\n      handleIsOpenChange(true)\n      childProp?.props?.onFocus?.(e)\n    },\n    [childProp?.props, handleIsOpenChange],\n  )\n  const handleMouseEnter = useCallback(\n    (e: MouseEvent) => {\n      handleIsOpenChange(true)\n      childProp?.props?.onMouseEnter?.(e)\n    },\n    [childProp?.props, handleIsOpenChange],\n  )\n  const handleMouseLeave = useCallback(\n    (e: MouseEvent) => {\n      handleIsOpenChange(false)\n      childProp?.props?.onMouseLeave?.(e)\n    },\n    [childProp?.props, handleIsOpenChange],\n  )\n\n  // Handle closing the tooltip when the mouse leaves the referenceElement\n  useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n  // Close when `disabled` changes to `true`\n  useEffect(() => {\n    if (disabled && showTooltip) handleIsOpenChange(false)\n  }, [disabled, handleIsOpenChange, showTooltip])\n\n  // Close when `content` changes to falsy\n  useEffect(() => {\n    if (!content && showTooltip) handleIsOpenChange(false)\n  }, [content, handleIsOpenChange, showTooltip])\n\n  useEffect(() => {\n    // If the user clicks on escape key, close the tooltip.\n    if (!showTooltip) return\n\n    function handleWindowKeyDown(event: KeyboardEvent) {\n      if (event.key === 'Escape') {\n        handleIsOpenChange(false, true)\n      }\n    }\n\n    window.addEventListener('keydown', handleWindowKeyDown)\n\n    return () => {\n      window.removeEventListener('keydown', handleWindowKeyDown)\n    }\n  }, [handleIsOpenChange, showTooltip])\n\n  // // Set the max width of the tooltip based on boundaries and portals\n  useLayoutEffect(() => {\n    // Get the maximum tooltip width (sans tooltip padding)\n    // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n    // If both portal and boundary elements are provided, use the smaller width of the two.\n    const availableWidths = [\n      ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n      portalElement?.offsetWidth || document.body.offsetWidth,\n    ]\n\n    // eslint-disable-next-line react-hooks/set-state-in-effect\n    setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n  }, [boundaryElement, portalElement])\n\n  const setArrow = useCallback(\n    (arrowEl: HTMLDivElement | null) => {\n      arrowRef.current = arrowEl\n      update()\n    },\n    [update],\n  )\n\n  const setFloating = useCallback(\n    (node: HTMLDivElement | null) => {\n      ref.current = node\n      refs.setFloating(node)\n    },\n    [refs],\n  )\n\n  const child = useMemo(() => {\n    if (!childProp) return null\n\n    return cloneElement(childProp, {\n      onBlur: handleBlur,\n      onFocus: handleFocus,\n      onMouseEnter: handleMouseEnter,\n      onMouseLeave: handleMouseLeave,\n      onClick: handleClick,\n      onContextMenu: handleContextMenu,\n      ref: setReferenceElement,\n    })\n  }, [\n    childProp,\n    handleBlur,\n    handleClick,\n    handleContextMenu,\n    handleFocus,\n    handleMouseEnter,\n    handleMouseLeave,\n  ])\n\n  // If there's a child then we need to set the reference element to the cloned child ref\n  // and if child changes we make sure to update or remove the reference element.\n  useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n    referenceElement,\n  ])\n\n  if (!child) return <></>\n\n  if (disabled) return child\n\n  const tooltip = (\n    <StyledTooltip\n      data-ui=\"Tooltip\"\n      {...restProps}\n      ref={setFloating}\n      style={{\n        ...floatingStyles,\n        maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n      }}\n      zOffset={zOffset}\n    >\n      <TooltipCard\n        {...restProps}\n        animate={animate}\n        arrow={arrowProp}\n        arrowRef={setArrow}\n        arrowX={arrowX}\n        arrowY={arrowY}\n        originX={originX}\n        originY={originY}\n        padding={padding}\n        placement={placement}\n        radius={radius}\n        ref={setFloating}\n        scheme={scheme}\n        shadow={shadow}\n      >\n        {content}\n      </TooltipCard>\n    </StyledTooltip>\n  )\n\n  const children =\n    showTooltip &&\n    (portalProp ? (\n      <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n        {tooltip}\n      </Portal>\n    ) : (\n      tooltip\n    ))\n\n  return (\n    <>\n      {/* the tooltip */}\n      {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n      {/* the referred element */}\n      {child}\n    </>\n  )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\nfunction useMiddleware({\n  animate,\n  arrowProp,\n  arrowRef,\n  boundaryElement,\n  fallbackPlacements,\n  rootBoundary,\n}: {\n  animate: boolean\n  arrowProp: boolean\n  arrowRef: React.RefObject<HTMLDivElement | null>\n  boundaryElement: HTMLElement | null\n  fallbackPlacements: Placement[]\n  rootBoundary: RootBoundary\n}) {\n  return useMemo(() => {\n    const ret: Middleware[] = []\n\n    // Flip the floating element when leaving the boundary box\n    ret.push(\n      flip({\n        boundary: boundaryElement || undefined,\n        fallbackPlacements,\n        padding: DEFAULT_TOOLTIP_PADDING,\n        rootBoundary,\n      }),\n    )\n\n    // Define distance between reference and floating element\n    ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n    // Shift the tooltip so its sits with the boundary element\n    ret.push(\n      shift({\n        boundary: boundaryElement || undefined,\n        rootBoundary,\n        padding: DEFAULT_TOOLTIP_PADDING,\n      }),\n    )\n\n    // Place arrow\n    if (arrowProp) {\n      ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n    }\n\n    // Determine the origin to scale from.\n    // Must be placed after `@sanity/ui/size` and `shift` middleware.\n    if (animate) {\n      ret.push(origin)\n    }\n\n    return ret\n  }, [animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n  handleIsOpenChange,\n  referenceElement,\n  showTooltip,\n  isInsideGroup,\n}: {\n  handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n  referenceElement: HTMLElement | null\n  showTooltip: boolean\n  isInsideGroup: boolean\n}) {\n  // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n  // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n  // in order to always see the latest `referenceElement` value inside the event handler itself.\n  const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n    if (!referenceElement) return\n\n    const isHoveringReference =\n      referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n    if (!isHoveringReference) {\n      handleIsOpenChange(false)\n      // Allow removing the event listener eagerly, to avoid race conditions\n      teardown()\n    }\n  })\n\n  // Detect whether the mouse is moving outside of the reference element. This is sometimes\n  // necessary, because the tooltip might not always close as it should (e.g. when clicking\n  // the reference element triggers a CPU-heavy operation.)\n  useEffect(() => {\n    if (!showTooltip || isInsideGroup) return\n\n    const handleMouseMove = (event: MouseEvent) => {\n      onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n    }\n\n    window.addEventListener('mousemove', handleMouseMove)\n\n    return () => window.removeEventListener('mousemove', handleMouseMove)\n  }, [isInsideGroup, showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, KBD} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n  fontSize?: number | number[]\n  gap?: number | number[]\n  padding?: number | number[]\n  radius?: Radius | Radius[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  keys?: string[]\n}\n\nconst StyledHotkeys = styled.kbd`\n  font: inherit;\n  padding: 1px;\n\n  &:not([hidden]) {\n    display: block;\n  }\n`\n\nconst Key = styled(KBD)`\n  &:not([hidden]) {\n    display: block;\n  }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n  props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n  ref: React.Ref<HTMLElement>,\n) {\n  const {fontSize, gap, keys, padding, radius, space: deprecated_space = 0.5, ...restProps} = props\n  const spacing = _getArrayProp(gap === undefined ? deprecated_space : gap)\n\n  if (!keys || keys.length === 0) {\n    return <></>\n  }\n\n  return (\n    <StyledHotkeys data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n      <Inline as=\"span\" gap={spacing}>\n        {keys.map((key, i) => (\n          <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n            {key}\n          </Key>\n        ))}\n      </Inline>\n    </StyledHotkeys>\n  )\n})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n  version: 2\n  activeElement: HTMLElement | null\n  mount: (element: HTMLElement | null, selected?: boolean) => () => void\n  onClickOutside?: (event: MouseEvent) => void\n  onEscape?: () => void\n  onItemClick?: () => void\n  onItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n  onItemMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n  registerElement?: (el: HTMLElement) => () => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n  '@sanity/ui/context/menu',\n  null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n  return (\n    (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n    (isHTMLButtonElement(element) && !element.disabled)\n  )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n  return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n  const path: number[] = []\n\n  let e = el\n\n  while (e !== rootElement) {\n    const parentElement = e.parentElement\n\n    if (!parentElement) return path\n\n    const children = Array.from(parentElement.childNodes)\n    const index = children.indexOf(e)\n\n    path.unshift(index)\n\n    if (parentElement === rootElement) {\n      return path\n    }\n\n    e = parentElement\n  }\n\n  return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n  if (!rootElement) return\n\n  const map = new WeakMap<HTMLElement, number[]>()\n\n  for (const el of elements) {\n    map.set(el, _getDOMPath(rootElement, el))\n  }\n\n  const _sort = (a: HTMLElement, b: HTMLElement) => {\n    const _a = map.get(a) || EMPTY_PATH\n    const _b = map.get(b) || EMPTY_PATH\n\n    const len = Math.max(_a.length, _b.length)\n\n    // Loop until there are different indexes\n    for (let i = 0; i < len; i += 1) {\n      const aIndex = _a[i] || -1\n      const bIndex = _b[i] || -1\n\n      if (aIndex !== bIndex) {\n        return aIndex - bIndex\n      }\n    }\n\n    return 0\n  }\n\n  elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n  activeElement: HTMLElement | null\n  activeIndex: number\n  handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n  handleItemMouseLeave: () => void\n  handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n  mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n  onKeyDown?: React.KeyboardEventHandler\n  originElement?: HTMLElement | null\n  shouldFocus: 'first' | 'last' | null\n  rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n  const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n  const elementsRef = useRef<HTMLElement[]>([])\n  const [activeIndex, _setActiveIndex] = useState(-1)\n  const activeIndexRef = useRef(activeIndex)\n  const [activeElement, setActiveElement] = useState<HTMLElement | null>(null)\n\n  const setActiveIndex = useCallback((nextActiveIndex: number) => {\n    _setActiveIndex(nextActiveIndex)\n    activeIndexRef.current = nextActiveIndex\n    setActiveElement(elementsRef.current[nextActiveIndex] || null)\n  }, [])\n\n  const mount = useCallback(\n    (element: HTMLElement | null, selected?: boolean): (() => void) => {\n      if (!element) return () => undefined\n\n      if (elementsRef.current.indexOf(element) === -1) {\n        elementsRef.current.push(element)\n        _sortElements(rootElementRef.current, elementsRef.current)\n      }\n\n      if (selected) {\n        const selectedIndex = elementsRef.current.indexOf(element)\n\n        setActiveIndex(selectedIndex)\n      }\n\n      return () => {\n        const idx = elementsRef.current.indexOf(element)\n\n        if (idx > -1) {\n          elementsRef.current.splice(idx, 1)\n        }\n      }\n    },\n    [rootElementRef, setActiveIndex],\n  )\n\n  const handleKeyDown = useCallback(\n    (event: React.KeyboardEvent<HTMLDivElement>) => {\n      // Move focus to the element that opened the menu before handling the `Tab` press\n      if (event.key === 'Tab') {\n        if (originElement) {\n          originElement.focus()\n        }\n\n        return\n      }\n\n      // Move focus to the first focusable menuitem\n      if (event.key === 'Home') {\n        event.preventDefault()\n        event.stopPropagation()\n\n        const focusableElements = _getFocusableElements(elementsRef.current)\n        const el = focusableElements[0]\n\n        if (!el) return\n\n        const currentIndex = elementsRef.current.indexOf(el)\n\n        setActiveIndex(currentIndex)\n\n        return\n      }\n\n      // Move focus to the last focusable menuitem\n      if (event.key === 'End') {\n        event.preventDefault()\n        event.stopPropagation()\n\n        const focusableElements = _getFocusableElements(elementsRef.current)\n        const el = focusableElements[focusableElements.length - 1]\n\n        if (!el) return\n\n        const currentIndex = elementsRef.current.indexOf(el)\n\n        setActiveIndex(currentIndex)\n\n        return\n      }\n\n      if (event.key === 'ArrowUp') {\n        event.preventDefault()\n        event.stopPropagation()\n\n        const focusableElements = _getFocusableElements(elementsRef.current)\n        const focusableLen = focusableElements.length\n\n        if (focusableLen === 0) return\n\n        const focusedElement = elementsRef.current[activeIndexRef.current]\n\n        let focusedIndex = focusableElements.indexOf(focusedElement)\n\n        focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n        const el = focusableElements[focusedIndex]\n        const currentIndex = elementsRef.current.indexOf(el)\n\n        setActiveIndex(currentIndex)\n\n        return\n      }\n\n      if (event.key === 'ArrowDown') {\n        event.preventDefault()\n        event.stopPropagation()\n\n        const focusableElements = _getFocusableElements(elementsRef.current)\n        const focusableLen = focusableElements.length\n\n        if (focusableLen === 0) return\n\n        const focusedElement = elementsRef.current[activeIndexRef.current]\n\n        let focusedIndex = focusableElements.indexOf(focusedElement)\n\n        focusedIndex = (focusedIndex + 1) % focusableLen\n\n        const el = focusableElements[focusedIndex]\n        const currentIndex = elementsRef.current.indexOf(el)\n\n        setActiveIndex(currentIndex)\n\n        return\n      }\n\n      if (onKeyDown) {\n        onKeyDown(event)\n      }\n    },\n    [onKeyDown, originElement, setActiveIndex],\n  )\n\n  const handleItemMouseEnter = useCallback(\n    (event: React.MouseEvent<HTMLElement>) => {\n      const element = event.currentTarget\n      const currentIndex = elementsRef.current.indexOf(element)\n\n      setActiveIndex(currentIndex)\n    },\n    [setActiveIndex],\n  )\n\n  const handleItemMouseLeave = useCallback(() => {\n    // Set the active index to -2 to deactivate all menu items\n    // when the user moves the mouse away from the menu item.\n    // We avoid using -1 because it would focus the first menu item,\n    // which would be incorrect when the user hovers over a gap\n    // between two menu items or a menu divider.\n    setActiveIndex(-2)\n    rootElementRef.current?.focus()\n  }, [rootElementRef, setActiveIndex])\n\n  // Set focus on the currently active element\n  useEffect(() => {\n    if (!rootElementRef.current) return\n\n    const rafId = requestAnimationFrame(() => {\n      if (activeIndex === -1) {\n        if (shouldFocus === 'first') {\n          const focusableElements = _getFocusableElements(elementsRef.current)\n          const el = focusableElements[0]\n\n          if (el) {\n            const currentIndex = elementsRef.current.indexOf(el)\n\n            setActiveIndex(currentIndex)\n          }\n        }\n\n        if (shouldFocus === 'last') {\n          const focusableElements = _getFocusableElements(elementsRef.current)\n          const el = focusableElements[focusableElements.length - 1]\n\n          if (el) {\n            const currentIndex = elementsRef.current.indexOf(el)\n\n            setActiveIndex(currentIndex)\n          }\n        }\n\n        return\n      }\n\n      const element = elementsRef.current[activeIndex] || null\n\n      element?.focus()\n    })\n\n    return () => cancelAnimationFrame(rafId)\n  }, [activeIndex, rootElementRef, setActiveIndex, shouldFocus])\n\n  return {\n    activeElement,\n    activeIndex,\n    handleItemMouseEnter,\n    handleItemMouseLeave,\n    handleKeyDown,\n    mount,\n  }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n  /**\n   * @deprecated Use `shouldFocus=\"first\"` instead.\n   */\n  'focusFirst'?: boolean\n  /**\n   * @deprecated Use `shouldFocus=\"last\"` instead.\n   */\n  'focusLast'?: boolean\n  'onClickOutside'?: (event: MouseEvent) => void\n  'onEscape'?: () => void\n  'onItemClick'?: () => void\n  'onItemSelect'?: (index: number) => void\n  'originElement'?: HTMLElement | null\n  'registerElement'?: (el: HTMLElement) => () => void\n  'shouldFocus'?: 'first' | 'last' | null\n  'gap'?: number | number[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  'space'?: number | number[]\n  'aria-labelledby'?: string\n  'onBlurCapture'?: (event: FocusEvent) => void\n}\n\nconst StyledMenu = styled(Box)`\n  outline: none;\n  overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n  props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    children,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    focusFirst,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    focusLast,\n    onClickOutside,\n    onEscape,\n    onItemClick,\n    onItemSelect,\n    onKeyDown,\n    originElement,\n    padding = 1,\n    registerElement,\n    shouldFocus: _shouldFocus,\n    gap,\n    space: deprecated_space = 1,\n    ...restProps\n  } = props\n  const spacing = gap === undefined ? deprecated_space : gap\n  const shouldFocus =\n    _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n  const ref = useRef<HTMLDivElement | null>(null)\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n  const {isTopLayer} = useLayer()\n\n  const {\n    activeElement,\n    activeIndex,\n    handleItemMouseEnter,\n    handleItemMouseLeave,\n    handleKeyDown,\n    mount,\n  } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n  const unregisterElementRef = useRef<(() => void) | null>(null)\n  const handleRefChange = useCallback(\n    (el: HTMLDivElement | null) => {\n      // Run cleanup of previously registered elements\n      if (unregisterElementRef.current) {\n        // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n        // Since we can't change the `registerElement` implementation itself without making breaking change,\n        // that is explained in the code comments for createGlobalScopedContext.tsx,\n        // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n        unregisterElementRef.current()\n        unregisterElementRef.current = null\n      }\n\n      ref.current = el\n\n      // Register root element (for nested menus)\n      if (ref.current && registerElement) {\n        unregisterElementRef.current = registerElement(ref.current)\n      }\n    },\n    [registerElement],\n  )\n\n  // Trigger `onItemSelect` when active index changes\n  useEffect(() => {\n    if (onItemSelect) onItemSelect(activeIndex)\n  }, [activeIndex, onItemSelect])\n\n  // Close menu when clicking outside\n  useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n  // Close menu when pressing Escape\n  useGlobalKeyDown(\n    useCallback(\n      (event) => {\n        if (!isTopLayer) return\n\n        if (event.key === 'Escape') {\n          event.stopPropagation()\n          if (onEscape) onEscape()\n        }\n      },\n      [isTopLayer, onEscape],\n    ),\n  )\n\n  const value = useMemo(\n    () =>\n      ({\n        version: 2,\n        activeElement,\n        mount,\n        onClickOutside,\n        onEscape,\n        onItemClick,\n        onItemMouseEnter: handleItemMouseEnter,\n        onItemMouseLeave: handleItemMouseLeave,\n        registerElement,\n      }) satisfies MenuContextValue,\n    [\n      activeElement,\n      mount,\n      handleItemMouseEnter,\n      handleItemMouseLeave,\n      onClickOutside,\n      onEscape,\n      onItemClick,\n      registerElement,\n    ],\n  )\n\n  return (\n    <MenuContext.Provider value={value}>\n      <StyledMenu\n        data-ui=\"Menu\"\n        {...restProps}\n        onKeyDown={handleKeyDown}\n        padding={padding}\n        ref={handleRefChange}\n        role=\"menu\"\n        tabIndex={-1}\n      >\n        <Stack gap={spacing}>{children}</Stack>\n      </StyledMenu>\n    </MenuContext.Provider>\n  )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n  height: 1px;\n  border: 0;\n  background: var(--card-hairline-soft-color);\n  margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n  $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n  return css`\n    background-color: inherit;\n    color: inherit;\n\n    &[data-as='button'] {\n      -webkit-font-smoothing: inherit;\n      appearance: none;\n      outline: none;\n      font: inherit;\n      text-align: inherit;\n      border: 0;\n      width: -moz-available;\n      width: -webkit-fill-available;\n      width: stretch;\n    }\n\n    /* &:is(a) */\n    &[data-as='a'] {\n      text-decoration: none;\n    }\n  `\n}\n\nexport function selectableColorStyle(\n  props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n  const {$tone} = props\n  const {color, style} = getTheme_v2(props.theme)\n  const tone = color.selectable[$tone]\n\n  return css`\n    ${_cardColorStyle(color, tone.enabled)}\n\n    background-color: var(--card-bg-color);\n    color: var(--card-fg-color);\n    outline: none;\n\n    /* &:is(button) */\n    &[data-as='button'] {\n      &:disabled {\n        ${_cardColorStyle(color, tone.disabled)}\n      }\n\n      &:not(:disabled) {\n        &[aria-pressed='true'] {\n          ${_cardColorStyle(color, tone.pressed)}\n        }\n\n        &[data-selected],\n        &[aria-selected='true'] > & {\n          ${_cardColorStyle(color, tone.selected)}\n        }\n\n        @media (hover: hover) {\n          &:not([data-selected]) {\n            &[data-hovered],\n            &:hover {\n              ${_cardColorStyle(color, tone.hovered)}\n            }\n\n            &:active {\n              ${_cardColorStyle(color, tone.pressed)}\n            }\n          }\n        }\n      }\n    }\n\n    /* &:is(a) */\n    &[data-as='a'] {\n      &[data-disabled] {\n        ${_cardColorStyle(color, tone.disabled)}\n      }\n\n      &:not([data-disabled]) {\n        &[data-pressed] {\n          ${_cardColorStyle(color, tone.pressed)}\n        }\n\n        &[data-selected] {\n          ${_cardColorStyle(color, tone.selected)}\n        }\n\n        @media (hover: hover) {\n          &:not([data-selected]) {\n            &[data-hovered],\n            &:hover {\n              ${_cardColorStyle(color, tone.hovered)}\n            }\n            &:active {\n              ${_cardColorStyle(color, tone.pressed)}\n            }\n          }\n        }\n      }\n    }\n\n    ${style?.card?.root}\n  `\n}\n","import {styled} from 'styled-components'\n\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n  responsiveRadiusStyle,\n  selectableBaseStyle,\n  selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n  const value = useContext(MenuContext)\n\n  if (!value) {\n    throw new Error('useMenu(): 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: 2`, it’s not compatible with the current version\n  if (!isRecord(value) || value.version !== 2) {\n    throw new Error('useMenu(): the context value is not compatible')\n  }\n\n  return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  fontSize?: number | number[]\n  icon?: React.ElementType | React.ReactNode\n  menu?: Omit<\n    MenuProps,\n    | 'onClickOutside'\n    | 'onEscape'\n    | 'onItemClick'\n    | 'onKeyDown'\n    | 'onMouseEnter'\n    | 'registerElement'\n    | 'shouldFocus'\n    | 'onBlurCapture'\n  >\n  padding?: number | number[]\n  popover?: Omit<PopoverProps, 'content' | 'open'>\n  radius?: Radius | Radius[]\n  gap?: number | number[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  text: React.ReactNode\n  tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n  props: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n    MenuGroupProps,\n): React.JSX.Element {\n  const {\n    as = 'button',\n    children,\n    fontSize = 1,\n    icon: IconComponent,\n    menu: menuProps,\n    onClick,\n    padding = 3,\n    popover,\n    radius = 2,\n    gap,\n    space: deprecated_space = 3,\n    text,\n    tone = 'default',\n    ...restProps\n  } = props\n  const spacing = gap === undefined ? deprecated_space : gap\n  const menu = useMenu()\n  const {scheme} = useRootTheme()\n  const {\n    activeElement,\n    mount,\n    onClickOutside,\n    onEscape,\n    onItemClick,\n    onItemMouseEnter: _onItemMouseEnter,\n    registerElement,\n  } = menu\n  const onItemMouseEnter = _onItemMouseEnter ?? menu.onItemMouseEnter\n  const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n  const [open, setOpen] = useState(false)\n  const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n  const active = Boolean(activeElement) && activeElement === rootElement\n  const [withinMenu, setWithinMenu] = useState(false)\n\n  const handleMouseEnter = useCallback(\n    (event: React.MouseEvent<HTMLElement>) => {\n      setWithinMenu(false)\n      onItemMouseEnter(event)\n      setOpen(true)\n    },\n    [onItemMouseEnter],\n  )\n\n  const handleMenuKeyDown = useCallback(\n    (event: React.KeyboardEvent<HTMLDivElement>) => {\n      if (event.key === 'ArrowLeft') {\n        event.stopPropagation()\n\n        setOpen(false)\n\n        requestAnimationFrame(() => {\n          rootElement?.focus()\n        })\n      }\n    },\n    [rootElement],\n  )\n\n  const handleClick = useCallback(\n    (event: React.MouseEvent<HTMLDivElement>) => {\n      onClick?.(event)\n\n      setShouldFocus('first')\n      setOpen(true)\n    },\n    [onClick],\n  )\n\n  const handleChildItemClick = useCallback(() => {\n    setOpen(false)\n    onItemClick?.()\n  }, [onItemClick])\n\n  const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n  // Register the menu item element\n  useEffect(() => mount(rootElement), [mount, rootElement])\n\n  // Close child menu when a sibling item becomes active\n  useEffect(() => {\n    // eslint-disable-next-line react-hooks/set-state-in-effect\n    if (!active) setOpen(false)\n  }, [active])\n\n  // Update state when child menu is no longer open\n  useEffect(() => {\n    // eslint-disable-next-line react-hooks/set-state-in-effect\n    if (!open) setWithinMenu(false)\n  }, [open])\n\n  // Reset the shouldFocus state after it has been used\n  useEffect(() => {\n    if (!shouldFocus) return\n    // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n    // By doing the same here, we ensure that the reset is processed after the focus change.\n    const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n    return () => cancelAnimationFrame(rafId)\n  }, [shouldFocus])\n\n  const childMenu = (\n    <Menu\n      {...menuProps}\n      onClickOutside={onClickOutside}\n      onEscape={onEscape}\n      onItemClick={handleChildItemClick}\n      onKeyDown={handleMenuKeyDown}\n      onMouseEnter={handleMenuMouseEnter}\n      registerElement={registerElement}\n      shouldFocus={shouldFocus}\n    >\n      {children}\n    </Menu>\n  )\n\n  const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n    const target = event.currentTarget\n\n    if (document.activeElement !== target) {\n      return\n    }\n\n    if (event.key === 'ArrowRight') {\n      setShouldFocus('first')\n      setOpen(true)\n      setWithinMenu(true)\n\n      return\n    }\n  }, [])\n\n  return (\n    <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n      <Selectable\n        data-as={as}\n        data-ui=\"MenuGroup\"\n        forwardedAs={as}\n        {...restProps}\n        aria-pressed={as === 'button' ? withinMenu : undefined}\n        data-pressed={as !== 'button' ? withinMenu : undefined}\n        data-selected={!withinMenu && active ? '' : undefined}\n        $radius={_getArrayProp(radius)}\n        $tone={tone}\n        $scheme={scheme}\n        onClick={handleClick}\n        onKeyDown={handleKeyDown}\n        onMouseEnter={handleMouseEnter}\n        ref={setRootElement}\n        tabIndex={-1}\n        type={as === 'button' ? 'button' : undefined}\n      >\n        <Flex gap={spacing} padding={padding}>\n          {IconComponent && (\n            <Text size={fontSize}>\n              {isValidElement(IconComponent) && IconComponent}\n              {isValidElementType(IconComponent) && <IconComponent />}\n            </Text>\n          )}\n\n          <Box flex={1}>\n            <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n              {text}\n            </Text>\n          </Box>\n\n          <Text size={fontSize}>\n            <ChevronRightIcon />\n          </Text>\n        </Flex>\n      </Selectable>\n    </Popover>\n  )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n  forwardRef,\n  isValidElement,\n  useCallback,\n  useEffect,\n  useImperativeHandle,\n  useMemo,\n  useRef,\n  useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n  as?: React.ElementType | keyof React.JSX.IntrinsicElements\n  fontSize?: number | number[]\n  hotkeys?: string[]\n  icon?: React.ElementType | React.ReactNode\n  iconRight?: React.ElementType | React.ReactNode\n  pressed?: boolean\n  selected?: boolean\n  gap?: number | number[]\n  /**\n   * @deprecated Use `gap` instead. `space` will be removed in v4.\n   */\n  space?: number | number[]\n  text?: React.ReactNode\n  tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n  props: MenuItemProps &\n    Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n  forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n  const {\n    as = 'button',\n    children,\n    disabled,\n    fontSize = 1,\n    hotkeys,\n    icon: IconComponent,\n    iconRight: IconRightComponent,\n    onClick,\n    padding = 3,\n    paddingX,\n    paddingY,\n    paddingTop,\n    paddingRight,\n    paddingBottom,\n    paddingLeft,\n    pressed,\n    radius = 2,\n    selected: selectedProp,\n    gap,\n    space: deprecated_space = 3,\n    text,\n    tone = 'default',\n    ...restProps\n  } = props\n  const spacing = gap === undefined ? deprecated_space : gap\n  const {scheme} = useRootTheme()\n  const menu = useMenu()\n  const {\n    activeElement,\n    mount,\n    onItemClick,\n    onItemMouseEnter: _onItemMouseEnter,\n    onItemMouseLeave: _onItemMouseLeave,\n  } = menu\n  const onItemMouseEnter = _onItemMouseEnter ?? menu.onItemMouseEnter\n  const onItemMouseLeave = _onItemMouseLeave ?? menu.onItemMouseLeave\n  const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n  const active = Boolean(activeElement) && activeElement === rootElement\n  const ref = useRef<HTMLDivElement | null>(null)\n\n  useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n  useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n  const handleClick = useCallback(\n    (event: React.MouseEvent<HTMLDivElement>) => {\n      if (disabled) return\n      if (onClick) onClick(event)\n      if (onItemClick) onItemClick()\n    },\n    [disabled, onClick, onItemClick],\n  )\n\n  const paddingProps = useMemo(\n    () => ({\n      padding,\n      paddingX,\n      paddingY,\n      paddingTop,\n      paddingRight,\n      paddingBottom,\n      paddingLeft,\n    }),\n    [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n  )\n\n  const hotkeysFontSize = _getArrayProp(fontSize).map((s) => s - 1)\n\n  const setRef = useCallback((el: HTMLDivElement | null) => {\n    ref.current = el\n    setRootElement(el)\n  }, [])\n\n  return (\n    <Selectable\n      data-ui=\"MenuItem\"\n      role=\"menuitem\"\n      {...restProps}\n      data-pressed={as !== 'button' && pressed ? '' : undefined}\n      data-selected={active ? '' : undefined}\n      data-disabled={disabled ? '' : undefined}\n      forwardedAs={as}\n      $radius={_getArrayProp(radius)}\n      $padding={_getArrayProp(0)}\n      $tone={disabled ? 'default' : tone}\n      $scheme={scheme}\n      disabled={disabled}\n      onClick={handleClick}\n      onMouseEnter={onItemMouseEnter}\n      onMouseLeave={onItemMouseLeave}\n      ref={setRef}\n      tabIndex={-1}\n      type={as === 'button' ? 'button' : undefined}\n    >\n      {(IconComponent || text || IconRightComponent) && (\n        <Flex as=\"span\" gap={spacing} align=\"center\" {...paddingProps}>\n          {IconComponent && (\n            <Text size={fontSize}>\n              {isValidElement(IconComponent) && IconComponent}\n              {isValidElementType(IconComponent) && <IconComponent />}\n            </Text>\n          )}\n\n          {text && (\n            <Box flex={1}>\n              <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n                {text}\n              </Text>\n            </Box>\n          )}\n\n          {hotkeys && (\n            <Hotkeys\n              fontSize={hotkeysFontSize}\n              keys={hotkeys}\n              style={{marginTop: -4, marginBottom: -4}}\n            />\n          )}\n\n          {IconRightComponent && (\n            <Text size={fontSize}>\n              {isValidElement(IconRightComponent) && IconRightComponent}\n              {isValidElementType(IconRightComponent) && <IconRightComponent />}\n            </Text>\n          )}\n        </Flex>\n      )}\n      {children && (\n        <Box as=\"span\" {...paddingProps}>\n          {children}\n        </Box>\n      )}\n    </Selectable>\n  )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n  /**\n   * The `id` of the correlating `TabPanel` component.\n   */\n  'aria-controls': string\n  'id': string\n  'icon'?: React.ElementType | React.ReactNode\n  'focused'?: boolean\n  'fontSize'?: number | number[]\n  'label'?: React.ReactNode\n  'padding'?: number | number[]\n  'selected'?: boolean\n  'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n  max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n  props: TabProps &\n    Omit<\n      React.HTMLProps<HTMLButtonElement>,\n      'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n    >,\n  forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n  const {\n    icon,\n    id,\n    focused,\n    fontSize = 1,\n    label,\n    onClick,\n    onFocus,\n    padding = 2,\n    selected,\n    ...restProps\n  } = props\n  const ref = useRef<HTMLButtonElement | null>(null)\n  const focusedRef = useRef(false)\n\n  useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n    forwardedRef,\n    () => ref.current,\n  )\n\n  const handleBlur = useCallback(() => {\n    focusedRef.current = false\n  }, [])\n\n  const handleFocus = useCallback(\n    (event: React.FocusEvent<HTMLButtonElement>) => {\n      focusedRef.current = true\n      if (onFocus) onFocus(event)\n    },\n    [onFocus],\n  )\n\n  useEffect(() => {\n    if (focused && !focusedRef.current) {\n      if (ref.current) ref.current.focus()\n      focusedRef.current = true\n    }\n  }, [focused])\n\n  return (\n    <CustomButton\n      data-ui=\"Tab\"\n      {...restProps}\n      aria-selected={selected ? 'true' : 'false'}\n      fontSize={fontSize}\n      icon={icon}\n      id={id}\n      mode=\"bleed\"\n      onClick={onClick}\n      onBlur={handleBlur}\n      onFocus={handleFocus}\n      padding={padding}\n      ref={ref}\n      role=\"tab\"\n      selected={selected}\n      tabIndex={selected ? 0 : -1}\n      text={label}\n      type=\"button\"\n    />\n  )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n  children: Array<React.JSX.Element | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n  & > div {\n    display: inline-block;\n    vertical-align: middle;\n    max-width: 100%;\n    box-sizing: border-box;\n  }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n  props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n  ref,\n) {\n  const {children: childrenProp, ...restProps} = props\n  const [focusedIndex, setFocusedIndex] = useState(-1)\n\n  const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n  const tabs = children.map((child, childIndex) =>\n    cloneElement(child, {\n      focused: focusedIndex === childIndex,\n      key: childIndex,\n      onFocus: () => setFocusedIndex(childIndex),\n    }),\n  )\n\n  const numTabs = tabs.length\n\n  const handleKeyDown = useCallback(\n    (event: React.KeyboardEvent<HTMLDivElement>) => {\n      if (event.key === 'ArrowLeft') {\n        setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n      }\n\n      if (event.key === 'ArrowRight') {\n        setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n      }\n    },\n    [numTabs],\n  )\n\n  return (\n    <CustomInline\n      data-ui=\"TabList\"\n      {...restProps}\n      onKeyDown={handleKeyDown}\n      ref={ref}\n      role=\"tablist\"\n    >\n      {tabs}\n    </CustomInline>\n  )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","children","type","visualDuration","bounce","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","_fillCSSObject","keys","value","reduce","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","Symbol","for","document","context","createContext","displayName","ThemeContext","ThemeProvider","$","_c","parentTheme","useContext","scheme","rootTheme","tone","t0","bb0","t1","version","themeContext","bb1","t2","getScopedTheme","StyledThemeProvider","t3","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","responsiveBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderStyle","width","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$height","$overflow","overflow","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","Boolean","join","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","GRID_CSS","GRID_AUTO_COLUMS","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","i","_","text","emSize","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","index","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","ref","accent","childrenProp","restProps","textOverflow","weight","muted","t4","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","svg","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","useState","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","useEffect","t5","t6","t7","handleImageError","T0","t8","t9","t10","t11","t12","_temp","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","T1","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","child","childIndex","cloneElement","String","StyledBox","Box","deprecated_column","deprecated_columnEnd","deprecated_columnStart","deprecated_row","deprecated_rowEnd","deprecated_rowStart","marginRight","marginX","marginY","paddingX","paddingY","padding","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","StyledText","Text","badgeStyle","verticalAlign","StyledBadge","Badge","mode","_deprecated_mode","StyledFlex","Flex","rotate","keyframes","StyledSpinner","Spinner","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","neutral","primary","suggest","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","StyledButton","LoadingBox","Button","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","textWeight","iconRight","justifyProp","paddingProp","radiusProp","deprecated_space","spacing","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","useClickOutsideEvent","listener","boundaryElement","elementsArg","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","addEventListener","removeEventListener","useDebugValue","useCustomValidity","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","options","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","codeSyntaxHighlightingStyle","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","tag","unit","url","variable","codeBaseStyle","LazyRefractor","lazy","StyledCode","pre","Code","language","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","fallbackElement","emptySubscribe","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","useChildren","item","_itemIndex","itemIndex","top","_scrollEl","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","constrainSize","margins","matchReferenceWidth","maxWidthRef","referenceWidthRef","setReferenceWidth","widthRef","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","MotionFlex","PopoverCard","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_boundaryElement","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","modal","open","referenceElement","updateRef","fallbackPlacements","floatingBoundary","placementStrategy","preventOverflow","t31","referenceBoundary","t32","t33","t34","t35","t36","t37","t38","t39","t40","_animate","arrowProp","placementProp","shadowProp","widthProp","popover","boundarySize","widthArrayProp","floatingElement","referenceWidth_0","middleware","useMiddleware","whileElementsMounted","autoUpdate","refs","update","useFloating","referenceHidden","hide","arrowEl","setArrow","setFloating","setReference","autoPlacement","allowedPlacements","concat","flip","mainAxis","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","StyledSwitch","Representation","Track","Thumb","Switch","StyledTextArea","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","StyledTextInput","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","StyledTooltip","Tooltip","_fallbackPlacementsProp","_zOffset","portalProp","fallbackPlacementsProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","immediate","groupedOpenDelay","groupDeactivateDelay","handleIsOpenChange","e","onBlur","handleBlur","e_0","onClick","handleClick","e_1","onContextMenu","handleContextMenu","e_2","e_3","onMouseEnter","handleMouseEnter","e_4","onMouseLeave","handleMouseLeave","useCloseOnMouseLeave","handleWindowKeyDown","offsetWidth","availableWidths","useLayoutEffect","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","setActiveElement","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","el_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedElement","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentTarget","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","StyledMenu","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","menu","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","CustomButton","Tab","focused","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}