@sanity/ui 2.12.0-canary.0 → 2.12.0-canary.2

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/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","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../../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/flexStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridStyle.ts","../../src/core/styles/grid/gridItemStyle.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/useLayer.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.ts","../../src/core/utils/layer/layerProvider.tsx","../../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/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../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 type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\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 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 ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\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 ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\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 ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\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\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity' as string\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\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","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\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 {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} 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 // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n 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 // @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'\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'\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'\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'\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'\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'\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'\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, onEvent])\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","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\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'\nimport {ElementSize, _elementSizeObserver} 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 }, [handleKeyDown])\n}\n","import {useDebugValue, useMemo, 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 const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\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 {createContext, type Context} from 'react'\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 type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\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'\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'\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 {Theme, Theme_v2, getTheme_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'\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'\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'\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'\nimport {rem, _responsive} 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 {CSSObject, getTheme_v2} from '@sanity/ui/theme'\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}))\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'\nimport {rem, _responsive} 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'\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'\nimport {rem, _responsive} 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 {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} 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'\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'\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'\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 {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} 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'\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'\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'\nimport {rem, _responsive, 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'\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 // @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 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\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\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 {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, 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 {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, 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'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\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'\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'\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'\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'\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'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} 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 {styled, keyframes} from 'styled-components'\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 {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} 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'\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 {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\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 textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\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 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={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'\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'\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 // 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'\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'\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} from 'react'\nimport Refractor from 'react-refractor'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\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: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <StyledCode data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, 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'\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'\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'\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'\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'\nimport {rem, _responsive, 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 {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\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 {styled, css} from 'styled-components'\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, HTMLProps, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} 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'\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'\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'\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 {useContext} from 'react'\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","/**\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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} 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 {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\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'\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'\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'\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 if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\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'\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 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 {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\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 {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, 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 & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\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 {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\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 Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\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} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\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\nexport type {PopoverUpdateCallback}\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 open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\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\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\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 ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\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 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 <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'\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'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} 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 {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, 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'\nimport {useCustomValidity, useArrayProp} 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'\nimport {rem, _responsive, 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'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} 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'\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'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\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'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\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'\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 {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} 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 {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, 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 & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\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 {...(animate ? POPOVER_MOTION_PROPS : {})}\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 {useContext} from 'react'\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 {useMemo} from 'react'\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 isGroupActive: isGroupActive,\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 {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\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 useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\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 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 delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.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 delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.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 [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\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})\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}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: 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) 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 }, [onMouseMove, showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\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'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\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 return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\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'\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'\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'\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'\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 if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\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'\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 aria-pressed={as === 'button' && pressed}\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'\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 {cloneElement, forwardRef, useCallback, useState, Children, isValidElement} from 'react'\nimport {styled} from 'styled-components'\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_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","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","Node","resolvedBoundaryElement","contains","elements","flat","el","onEvent","useEffectEvent","hasListener","Boolean","t2","t3","handleEvent","evt_0","document","addEventListener","removeEventListener","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","createEvent","initEvent","window","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","push","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","element","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useGlobalKeyDown","onKeyDown","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","join","GRID_CSS","GRID_AUTO_COLUMS","auto","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","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","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","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t5","t6","t7","handleImageError","t8","t9","initialsSize","t10","t11","t12","t13","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","T0","child","childIndex","cloneElement","String","StyledBox","Box","marginRight","marginX","marginY","paddingX","paddingY","padding","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","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","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","StyledCode","pre","Code","languageProp","language","Refractor","hasLanguage","registered","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","includes","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","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","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","useLayer","err","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","state_0","nextState_0","_temp2","v_0","v","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","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","scrollEl","findScrollable","handleScroll","passive","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","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","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","PopoverCard","memo","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","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","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","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","handleWindowKeyDown","useLayoutEffect","availableWidths","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","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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","x_google_ignoreList":[12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]}
1
+ {"version":3,"file":"_visual-editing.mjs","sources":["../../src/core/_compat.ts","../../src/core/constants.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/flexStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridStyle.ts","../../src/core/styles/grid/gridItemStyle.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/useLayer.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.ts","../../src/core/utils/layer/layerProvider.tsx","../../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/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../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 type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\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 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 ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\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 ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\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 ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\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\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity' as string\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\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","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\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 {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} 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 // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n 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 // @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'\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'\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'\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'\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'\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'\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'\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, onEvent])\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'\nimport {ElementSize, _elementSizeObserver} 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 }, [handleKeyDown])\n}\n","import {useDebugValue, useMemo, 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 const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\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 {createContext, type Context} from 'react'\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 type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\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'\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'\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 {Theme, Theme_v2, getTheme_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'\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'\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'\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'\nimport {rem, _responsive} 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 {CSSObject, getTheme_v2} from '@sanity/ui/theme'\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}))\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'\nimport {rem, _responsive} 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'\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'\nimport {rem, _responsive} 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 {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} 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'\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'\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'\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 {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} 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'\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'\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'\nimport {rem, _responsive, 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'\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 // @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 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\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\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 {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, 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 {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, 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'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\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'\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'\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'\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'\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'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} 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 {styled, keyframes} from 'styled-components'\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 {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} 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'\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 {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\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 textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\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 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={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'\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'\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 // 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'\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'\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, Suspense, lazy} from 'react'\nimport {styled} from 'styled-components'\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={String(children)} />\n </Suspense>\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, 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'\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'\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'\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'\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'\nimport {rem, _responsive, 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 {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\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 {styled, css} from 'styled-components'\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, HTMLProps, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} 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'\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'\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'\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 {useContext} from 'react'\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","/**\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 {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} 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 {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\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'\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'\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'\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 if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\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'\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 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 {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\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 {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, 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 & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\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 {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\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 Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\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} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\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\nexport type {PopoverUpdateCallback}\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 open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\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\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\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 ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\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 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 <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'\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'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} 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 {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, 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'\nimport {useCustomValidity, useArrayProp} 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'\nimport {rem, _responsive, 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'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} 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'\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'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\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'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\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'\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 {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} 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 {type MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, 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 & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\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 {...(animate ? POPOVER_MOTION_PROPS : {})}\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 {useContext} from 'react'\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 {useMemo} from 'react'\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 isGroupActive: isGroupActive,\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 {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\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 useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\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 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 delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.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 delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.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 [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\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})\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}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: 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) 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 }, [onMouseMove, showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\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'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\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 return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\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'\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'\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'\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'\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 if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\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'\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 aria-pressed={as === 'button' && pressed}\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'\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 {cloneElement, forwardRef, useCallback, useState, Children, isValidElement} from 'react'\nimport {styled} from 'styled-components'\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_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","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","Node","resolvedBoundaryElement","contains","elements","flat","el","onEvent","useEffectEvent","hasListener","Boolean","t2","t3","handleEvent","evt_0","document","addEventListener","removeEventListener","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","window","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","element","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","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","index","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","card","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","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","join","GRID_CSS","GRID_AUTO_COLUMS","auto","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","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","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","t9","initialsSize","t10","t11","t12","t13","t14","_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","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","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","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","includes","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","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","useLayer","err","message","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_isScrollable","Element","getComputedStyle","overflowX","overflowY","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","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","PopoverCard","memo","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","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","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","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","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","useCloseOnMouseLeave","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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"}