@sanity/ui 2.16.20 → 2.16.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"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/hooks/useArrayProp.ts","../../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/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/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.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/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 'framer-motion'\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","import {useState} from 'react'\n\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\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 * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): 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)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\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","/**\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 return createContext<ContextType>(defaultValue)\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 {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 {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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(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, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\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 = useArrayProp(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 const initialsSize = useMemo(\n () =>\n 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 [size],\n )\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 forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\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, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_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 = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n 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 [size],\n )\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\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 {useArrayProp} from '../../hooks'\nimport {_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 = useArrayProp(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 {useArrayProp} from '../../hooks'\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 column,\n columnStart,\n 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 row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(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 {useArrayProp} from '../../hooks'\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={useArrayProp(radius)}\n padding={useArrayProp(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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(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 {useArrayProp} from '../../hooks'\nimport {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 space?: 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 space: spaceProp = 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 = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\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={space}>\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 {useArrayProp} from '../../hooks'\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={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(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 {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 {useArrayProp} from '../../hooks'\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 data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\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 {useArrayProp} from '../../hooks'\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={useArrayProp(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 {useArrayProp} from '../../hooks'\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 {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(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 {useArrayProp} from '../../hooks'\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 /** The spacing between children. */\n space?: 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, space, ...restProps} = props\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={useArrayProp(space)}\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 {useArrayProp} from '../../hooks'\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={useArrayProp(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 {useArrayProp, useMediaIndex} from '../../hooks'\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 = useArrayProp(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, useRef, 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: elementsProp} = props\n const elements = useUnique(elementsProp)\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\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n // eslint-disable-next-line react-hooks/refs\n if (!_isEqual(valueRef.current, value)) {\n // eslint-disable-next-line react-hooks/refs\n valueRef.current = value\n }\n\n // eslint-disable-next-line react-hooks/refs\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\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, useMemo, 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 // eslint-disable-next-line react-hooks/set-state-in-effect\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 = useMemo(() => {\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 }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\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, Elements, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = 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 apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\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 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, 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 = memo(\n 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 }),\n)\nPopoverCard.displayName = 'Memo(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 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n memo,\n MutableRefObject,\n RefCallback,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\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?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<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 = memo(\n 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 = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\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 = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(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>(\n forwardedRef,\n () => ref.current,\n )\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 middleware = 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 apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\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 constrainSize,\n fallbackPlacements,\n placementProp,\n placementStrategy,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\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 const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\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: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\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 ? referenceWidthRef.current : 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 }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\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 {useArrayProp, useCustomValidity} from '../../hooks'\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 padding?: number | number[]\n radius?: Radius | Radius[]\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 padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\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={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\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 {useArrayProp} from '../../hooks'\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 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, space, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\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 {useArrayProp, useCustomValidity} from '../../hooks'\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={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(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 {useArrayProp, useCustomValidity} from '../../hooks'\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 space?: 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 icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 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 = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\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, 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 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 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, 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 = memo(\n 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 }),\n)\nTooltipCard.displayName = 'Memo(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 'framer-motion'\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 {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\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 = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(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 = 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, boundaryElement, fallbackPlacements])\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 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\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 {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\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, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\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\" space={space}>\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: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\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 /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<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, useMemo, 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 // eslint-disable-next-line react-hooks/refs\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n // eslint-disable-next-line react-hooks/refs\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\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 (!mounted) 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, mounted, setActiveIndex, shouldFocus])\n\n // eslint-disable-next-line react-hooks/refs\n return {\n // eslint-disable-next-line react-hooks/refs\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 '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 space = 1,\n ...restProps\n } = props\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: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\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 space={space}>{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: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\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 {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\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 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 space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\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.onMouseEnter\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={useArrayProp(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={space} 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 {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\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 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 space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\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.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\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 = useArrayProp(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={useArrayProp(radius)}\n $padding={useArrayProp(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={space} 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","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","Symbol","for","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","index","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","borderStyle","$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","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","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","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","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","t5","t6","t7","handleImageError","t8","initialsSize","t9","t10","t11","t12","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","T0","child","childIndex","cloneElement","String","StyledBox","Box","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","spaceProp","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","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","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","useMemo","item","_itemIndex","itemIndex","top","wrapperStyle","_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","options","apply","margins","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","memo","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","placementStrategy","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","autoPlacement","allowedPlacements","concat","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","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","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","useCloseOnMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","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","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","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","t31","t32","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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"}
1
+ {"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/hooks/useArrayProp.ts","../../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/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/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.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/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 'framer-motion'\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","import {useState} from 'react'\n\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\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 * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): 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)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\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","/**\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 return createContext<ContextType>(defaultValue)\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 {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 {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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(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, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\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 = useArrayProp(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 const initialsSize = useMemo(\n () =>\n 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 [size],\n )\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 forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\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, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_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 = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n 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 [size],\n )\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\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 {useArrayProp} from '../../hooks'\nimport {_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 = useArrayProp(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 {useArrayProp} from '../../hooks'\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 column,\n columnStart,\n 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 row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(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 {useArrayProp} from '../../hooks'\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={useArrayProp(radius)}\n padding={useArrayProp(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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(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 {useArrayProp} from '../../hooks'\nimport {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 space?: 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 space: spaceProp = 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 = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\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={space}>\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 {useArrayProp} from '../../hooks'\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={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(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 {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 {useArrayProp} from '../../hooks'\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 data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\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 {useArrayProp} from '../../hooks'\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={useArrayProp(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 {useArrayProp} from '../../hooks'\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 {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\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 {useArrayProp} from '../../hooks'\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={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(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 {useArrayProp} from '../../hooks'\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 /** The spacing between children. */\n space?: 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, space, ...restProps} = props\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={useArrayProp(space)}\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 {useArrayProp} from '../../hooks'\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={useArrayProp(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 {useArrayProp, useMediaIndex} from '../../hooks'\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 = useArrayProp(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, useRef, 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: elementsProp} = props\n const elements = useUnique(elementsProp)\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\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n // eslint-disable-next-line react-hooks/refs\n if (!_isEqual(valueRef.current, value)) {\n // eslint-disable-next-line react-hooks/refs\n valueRef.current = value\n }\n\n // eslint-disable-next-line react-hooks/refs\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\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, useMemo, 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 = useMemo(() => {\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 }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\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, Elements, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = 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 apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\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 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, 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 = memo(\n 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 }),\n)\nPopoverCard.displayName = 'Memo(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 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n memo,\n MutableRefObject,\n RefCallback,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\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?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<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 = memo(\n 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 = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\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 = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(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>(\n forwardedRef,\n () => ref.current,\n )\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 middleware = 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 apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\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 constrainSize,\n fallbackPlacements,\n placementProp,\n placementStrategy,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\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 const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\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: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\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 ? referenceWidthRef.current : 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 }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\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 {useArrayProp, useCustomValidity} from '../../hooks'\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 padding?: number | number[]\n radius?: Radius | Radius[]\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 padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\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={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\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 {useArrayProp} from '../../hooks'\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 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, space, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\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 {useArrayProp, useCustomValidity} from '../../hooks'\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={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(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 {useArrayProp, useCustomValidity} from '../../hooks'\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 space?: 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 icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 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 = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\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, 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 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 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, 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 = memo(\n 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 }),\n)\nTooltipCard.displayName = 'Memo(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 'framer-motion'\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 {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\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 = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(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 = 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, boundaryElement, fallbackPlacements])\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 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\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 {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\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, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\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\" space={space}>\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: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\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 /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<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, useMemo, 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 // eslint-disable-next-line react-hooks/refs\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n // eslint-disable-next-line react-hooks/refs\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\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 (!mounted) 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, mounted, setActiveIndex, shouldFocus])\n\n // eslint-disable-next-line react-hooks/refs\n return {\n // eslint-disable-next-line react-hooks/refs\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 '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 space = 1,\n ...restProps\n } = props\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: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\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 space={space}>{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: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\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 {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\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 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 space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\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.onMouseEnter\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={useArrayProp(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={space} 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 {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\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 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 space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\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.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\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 = useArrayProp(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={useArrayProp(radius)}\n $padding={useArrayProp(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={space} 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","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","Symbol","for","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","index","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","borderStyle","$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","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","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","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","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","t5","t6","t7","handleImageError","t8","initialsSize","t9","t10","t11","t12","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","T0","child","childIndex","cloneElement","String","StyledBox","Box","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","spaceProp","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","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","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","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","item","_itemIndex","itemIndex","top","wrapperStyle","_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","options","apply","margins","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","memo","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","placementStrategy","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","useMemo","autoPlacement","allowedPlacements","concat","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","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","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","useCloseOnMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","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","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","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","t31","t32","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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"}