@sanity/ui 3.0.13 → 3.0.14
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.
- package/dist/_chunks-cjs/_visual-editing.js +805 -609
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +807 -611
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +182 -142
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +183 -143
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/core/components/autocomplete/autocomplete.tsx +10 -14
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +3 -2
- package/src/core/components/dialog/dialog.tsx +10 -14
- package/src/core/components/hotkeys/hotkeys.tsx +2 -2
- package/src/core/components/menu/menuGroup.tsx +2 -2
- package/src/core/components/menu/menuItem.tsx +4 -4
- package/src/core/components/skeleton/skeleton.tsx +2 -2
- package/src/core/components/skeleton/textSkeleton.tsx +5 -6
- package/src/core/hooks/index.ts +1 -1
- package/src/core/hooks/useArrayProp.ts +3 -17
- package/src/core/primitives/avatar/avatar.tsx +14 -16
- package/src/core/primitives/avatar/avatarCounter.tsx +14 -17
- package/src/core/primitives/avatar/avatarStack.tsx +2 -3
- package/src/core/primitives/badge/badge.tsx +3 -3
- package/src/core/primitives/box/box.tsx +26 -26
- package/src/core/primitives/button/button.tsx +11 -12
- package/src/core/primitives/card/card.tsx +8 -8
- package/src/core/primitives/code/code.tsx +8 -2
- package/src/core/primitives/container/container.tsx +2 -2
- package/src/core/primitives/flex/flex.tsx +6 -6
- package/src/core/primitives/grid/grid.tsx +9 -9
- package/src/core/primitives/heading/heading.tsx +3 -3
- package/src/core/primitives/inline/inline.tsx +2 -2
- package/src/core/primitives/kbd/kbd.tsx +2 -2
- package/src/core/primitives/label/label.tsx +3 -3
- package/src/core/primitives/popover/popover.tsx +7 -6
- package/src/core/primitives/select/select.tsx +6 -5
- package/src/core/primitives/stack/stack.tsx +2 -2
- package/src/core/primitives/text/text.tsx +3 -3
- package/src/core/primitives/textArea/textArea.tsx +6 -5
- package/src/core/primitives/textInput/textInput.tsx +6 -5
- package/src/core/primitives/tooltip/tooltip.tsx +3 -2
- package/src/core/utils/layer/layerProvider.tsx +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_visual-editing.js","sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.ts","../../src/core/styles/helpers.ts","../../src/core/styles/font/responsiveFont.ts","../../src/core/styles/font/codeFontStyle.ts","../../src/core/styles/font/headingFontStyle.ts","../../src/core/styles/font/labelFontStyle.ts","../../src/core/styles/font/textAlignStyle.ts","../../src/core/styles/font/textFontStyle.ts","../../src/core/hooks/useArrayProp.ts","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/theme/themeContext.ts","../../src/core/theme/themeProvider.tsx","../../src/core/theme/useRootTheme.ts","../../src/core/theme/themeColorProvider.tsx","../../src/core/theme/useTheme.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/styles/border/borderStyle.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/grid/gridStyle.ts","../../src/core/styles/input/responsiveInputPaddingStyle.ts","../../src/core/styles/input/textInputStyle.ts","../../src/core/styles/margin/marginStyle.ts","../../src/core/styles/padding/paddingStyle.ts","../../src/core/styles/radius/radiusStyle.ts","../../src/core/styles/shadow/shadowStyle.ts","../../src/core/utils/spanWithTextOverflow.tsx","../../src/core/primitives/label/styles.ts","../../src/core/primitives/label/label.tsx","../../src/core/primitives/avatar/styles.ts","../../src/core/primitives/avatar/avatar.tsx","../../src/core/primitives/avatar/avatarCounter.tsx","../../src/core/primitives/avatar/avatarStack.tsx","../../src/core/primitives/box/box.tsx","../../src/core/primitives/text/styles.ts","../../src/core/primitives/text/text.tsx","../../src/core/primitives/badge/styles.ts","../../src/core/primitives/badge/badge.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/styles/card/_cardColorStyle.ts","../../src/core/primitives/button/styles.ts","../../src/core/primitives/button/button.tsx","../../src/core/primitives/card/styles.ts","../../src/core/primitives/card/card.tsx","../../src/core/primitives/checkbox/styles.ts","../../src/core/primitives/checkbox/checkbox.tsx","../../src/core/primitives/code/styles.ts","../../src/core/primitives/code/code.tsx","../../src/core/primitives/container/styles.ts","../../src/core/primitives/container/container.tsx","../../src/core/primitives/grid/grid.tsx","../../src/core/primitives/heading/styles.ts","../../src/core/primitives/heading/heading.tsx","../../src/core/primitives/inline/styles.ts","../../src/core/primitives/inline/inline.tsx","../../src/core/primitives/kbd/kbd.tsx","../../src/core/middleware/origin.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../../src/core/lib/isRecord.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../../src/core/utils/elementQuery/helpers.ts","../../src/core/utils/elementQuery/elementQuery.tsx","../../src/core/utils/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../src/core/utils/portal/portalProvider.tsx","../../src/core/utils/srOnly/srOnly.tsx","../../src/core/utils/virtualList/virtualList.tsx","../../src/core/utils/getElementRef.ts","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/helpers.ts","../../src/core/primitives/popover/popoverCard.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/radio/styles.ts","../../src/core/primitives/radio/radio.tsx","../../src/core/primitives/select/styles.ts","../../src/core/primitives/select/select.tsx","../../src/core/primitives/stack/styles.ts","../../src/core/primitives/stack/stack.tsx","../../src/core/primitives/switch/styles.ts","../../src/core/primitives/switch/switch.tsx","../../src/core/primitives/textArea/textArea.tsx","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useDelayedState.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipCard.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.ts","../../src/core/primitives/_selectable/style.ts","../../src/core/primitives/_selectable/selectable.tsx","../../src/core/components/menu/useMenu.ts","../../src/core/components/menu/menuGroup.tsx","../../src/core/components/menu/menuItem.tsx","../../src/core/components/tab/tab.tsx","../../src/core/components/tab/tabList.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {CSSObject, getTheme_v2, Theme} from '@sanity/ui/theme'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {CSSObject, getTheme_v2, ThemeFontKey, ThemeFontSize} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // eslint-disable-next-line no-warning-comments\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n 'fontWeight': `${fontWeight}`,\n 'padding': '1px 0',\n 'margin': 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // eslint-disable-next-line no-warning-comments\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n 'fontSize': rem(fontSize),\n 'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n 'letterSpacing': rem(letterSpacing),\n 'transform': `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useState} from 'react'\n\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n const context = createContext<ContextType>(defaultValue)\n context.displayName = key\n return context\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.JSX.Element {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.JSX.Element {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {getTheme_v2, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex: `${flex}`}))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: `${rowStart}`,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: `${rowEnd}`}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: `${columnStart}`,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: `${columnEnd}`,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {CSSObject, getTheme_v2, ThemeColorSchemeKey, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: `${size.lineHeight / size.fontSize}`,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {CSSObject, getTheme_v2, ThemeBoxShadow, ThemeShadow} from '@sanity/ui/theme'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {styled} from 'styled-components'\n\n/** @internal */\nexport const SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': '0',\n 'opacity': '0',\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: '0',\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: '1',\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: '1',\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // eslint-disable-next-line no-warning-comments\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof React.JSX.IntrinsicElements\n}\n\nconst StyledBox = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <StyledBox\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledText\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <StyledFlex\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst StyledSpinner = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <StyledSpinner data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </StyledSpinner>\n )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {CSSObject, ThemeColorCard_v2, ThemeColorState_v2} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-neutral-bg-color': color.badge.neutral?.bg,\n '--card-badge-neutral-dot-color': color.badge.neutral?.dot,\n '--card-badge-neutral-fg-color': color.badge.neutral?.fg,\n '--card-badge-neutral-icon-color': color.badge.neutral?.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-suggest-bg-color': color.badge.suggest?.bg,\n '--card-badge-suggest-dot-color': color.badge.suggest?.dot,\n '--card-badge-suggest-fg-color': color.badge.suggest?.fg,\n '--card-badge-suggest-icon-color': color.badge.suggest?.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={textWeight ?? button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </StyledButton>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // eslint-disable-next-line no-warning-comments\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <StyledCard\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef, lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst StyledCode = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <StyledGrid\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': '0',\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {Children, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst StyledInline = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <div>{child}</div>),\n [childrenProp],\n )\n\n return (\n <StyledInline\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst StyledKBD = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <StyledKBD data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </StyledKBD>\n )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, forwardRef, HTMLProps} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useTheme_v2} from '../../theme'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\nconst StyledArrow = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <StyledArrow {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </StyledArrow>\n )\n})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <StyledLayer\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </StyledLayer>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\n\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n const {boundaryElement, children, element, __unstable_elements: elements} = props\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }) {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n maxWidthRef: React.RefObject<number | undefined>\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding = 0,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n } = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n const availableWidth = maxWidth - margins[1] - margins[3]\n const availableHeight = maxHeight - margins[0] - margins[2]\n const referenceWidth = reference.width - margins[1] - margins[3]\n referenceWidthRef.current = referenceWidth\n setReferenceWidth(referenceWidth)\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (widthRef.current !== undefined) {\n elements.floating.style.width = `${widthRef.current}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {motion, type MotionProps} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n will-change: opacity;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <MotionFlex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n overflow={overflow}\n variants={POPOVER_MOTION_PROPS.children}\n transition={POPOVER_MOTION_PROPS.transition}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </MotionFlex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n})\nPopoverCard.displayName = 'ForwardRef(PopoverCard)'\n","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary =\n _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = 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>(forwardedRef, () => ref.current)\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n })\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => refs.reference.current)\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidth : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nPopover.displayName = 'ForwardRef(Popover)'\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n constrainSize: boolean\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n margins: PopoverMargins\n matchReferenceWidth: boolean | undefined\n maxWidthRef: React.RefObject<number | undefined>\n placementProp: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n ])\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {CSSObject, getTheme_v2, ThemeFontSize} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst StyledSelect = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledSelect data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst StyledStack = styled(Box)<ResponsiveStackSpaceStyleProps>(\n stackBaseStyle,\n responsiveStackSpaceStyle,\n)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <StyledStack\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {motion, type MotionProps} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n will-change: transform;\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n})\nTooltipCard.displayName = 'ForwardRef(TooltipCard)'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = 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 = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </StyledTooltip>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {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: 2\n activeElement: HTMLElement | null\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const [activeElement, setActiveElement] = useState<HTMLElement | null>(null)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n setActiveElement(elementsRef.current[nextActiveIndex] || null)\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!rootElementRef.current) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, rootElementRef, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n '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 = useMemo(\n () =>\n ({\n version: 2,\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n }) satisfies MenuContextValue,\n [\n activeElement,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <StyledMenu\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\n\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 2`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 2) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {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.onItemMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onItemMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onItemMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","children","type","visualDuration","bounce","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","_fillCSSObject","keys","value","reduce","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","Symbol","for","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","context","createContext","displayName","ThemeContext","ThemeProvider","parentTheme","useContext","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","jsx","StyledThemeProvider","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","index","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$height","$overflow","overflow","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","join","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","GRID_CSS","GRID_AUTO_COLUMS","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","i","_","text","emSize","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","accent","childrenProp","restProps","textOverflow","weight","muted","t4","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","svg","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","t5","t6","t7","handleImageError","t8","initialsSize","t9","t10","t11","jsxs","t12","Fragment","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","T0","child","childIndex","cloneElement","String","StyledBox","Box","marginRight","marginX","marginY","paddingX","paddingY","padding","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","StyledText","Text","badgeStyle","verticalAlign","StyledBadge","Badge","mode","_deprecated_mode","StyledFlex","Flex","rotate","keyframes","StyledSpinner","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","neutral","primary","suggest","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","StyledButton","LoadingBox","Button","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","textWeight","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","CheckmarkIcon","RemoveIcon","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","Suspense","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","fallbackElement","emptySubscribe","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","useChildren","item","_itemIndex","itemIndex","top","_scrollEl","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","constrainSize","margins","matchReferenceWidth","maxWidthRef","referenceWidthRef","setReferenceWidth","widthRef","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","MotionFlex","PopoverCard","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_boundaryElement","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","modal","open","referenceElement","updateRef","fallbackPlacements","floatingBoundary","placementStrategy","preventOverflow","t31","referenceBoundary","t32","t33","t34","t35","t36","t37","t38","t39","t40","_animate","arrowProp","placementProp","shadowProp","widthProp","popover","boundarySize","widthArrayProp","floatingElement","referenceWidth_0","middleware","useMiddleware","whileElementsMounted","autoUpdate","refs","update","useFloating","referenceHidden","hide","arrowEl","setArrow","setFloating","setReference","AnimatePresence","autoPlacement","allowedPlacements","concat","flip","mainAxis","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","StyledSwitch","Representation","Track","Thumb","Switch","StyledTextArea","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","StyledTextInput","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","StyledTooltip","Tooltip","_fallbackPlacementsProp","_zOffset","portalProp","fallbackPlacementsProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","immediate","groupedOpenDelay","groupDeactivateDelay","handleIsOpenChange","e","onBlur","handleBlur","e_0","onClick","handleClick","e_1","onContextMenu","handleContextMenu","e_2","e_3","onMouseEnter","handleMouseEnter","e_4","onMouseLeave","handleMouseLeave","useCloseOnMouseLeave","handleWindowKeyDown","offsetWidth","availableWidths","useLayoutEffect","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","setActiveElement","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","el_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedElement","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentTarget","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","StyledMenu","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","menu","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","hotkeysFontSize","setRef","CustomButton","Tab","focused","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_visual-editing.js","sources":["../../src/core/_compat.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/scroll.ts","../../src/core/styles/helpers.ts","../../src/core/styles/font/responsiveFont.ts","../../src/core/styles/font/codeFontStyle.ts","../../src/core/styles/font/headingFontStyle.ts","../../src/core/styles/font/labelFontStyle.ts","../../src/core/styles/font/textAlignStyle.ts","../../src/core/styles/font/textFontStyle.ts","../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/theme/themeContext.ts","../../src/core/theme/themeProvider.tsx","../../src/core/theme/useRootTheme.ts","../../src/core/theme/themeColorProvider.tsx","../../src/core/theme/useTheme.ts","../../src/core/styles/border/borderStyle.ts","../../src/core/styles/box/boxStyle.ts","../../src/core/styles/flex/flexItemStyle.ts","../../src/core/styles/flex/flexStyle.ts","../../src/core/styles/focusRing/index.ts","../../src/core/styles/grid/gridItemStyle.ts","../../src/core/styles/grid/gridStyle.ts","../../src/core/styles/input/responsiveInputPaddingStyle.ts","../../src/core/styles/input/textInputStyle.ts","../../src/core/styles/margin/marginStyle.ts","../../src/core/styles/padding/paddingStyle.ts","../../src/core/styles/radius/radiusStyle.ts","../../src/core/styles/shadow/shadowStyle.ts","../../src/core/utils/spanWithTextOverflow.tsx","../../src/core/primitives/label/styles.ts","../../src/core/primitives/label/label.tsx","../../src/core/primitives/avatar/styles.ts","../../src/core/primitives/avatar/avatar.tsx","../../src/core/primitives/avatar/avatarCounter.tsx","../../src/core/primitives/avatar/avatarStack.tsx","../../src/core/primitives/box/box.tsx","../../src/core/primitives/text/styles.ts","../../src/core/primitives/text/text.tsx","../../src/core/primitives/badge/styles.ts","../../src/core/primitives/badge/badge.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/styles/card/_cardColorStyle.ts","../../src/core/primitives/button/styles.ts","../../src/core/primitives/button/button.tsx","../../src/core/primitives/card/styles.ts","../../src/core/primitives/card/card.tsx","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/primitives/checkbox/styles.ts","../../src/core/primitives/checkbox/checkbox.tsx","../../src/core/primitives/code/styles.ts","../../src/core/primitives/code/code.tsx","../../src/core/primitives/container/styles.ts","../../src/core/primitives/container/container.tsx","../../src/core/primitives/grid/grid.tsx","../../src/core/primitives/heading/styles.ts","../../src/core/primitives/heading/heading.tsx","../../src/core/primitives/inline/styles.ts","../../src/core/primitives/inline/inline.tsx","../../src/core/primitives/kbd/kbd.tsx","../../src/core/middleware/origin.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../../src/core/lib/isRecord.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../../src/core/utils/elementQuery/helpers.ts","../../src/core/utils/elementQuery/elementQuery.tsx","../../src/core/utils/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../src/core/utils/portal/portalProvider.tsx","../../src/core/utils/srOnly/srOnly.tsx","../../src/core/utils/virtualList/virtualList.tsx","../../src/core/utils/getElementRef.ts","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/helpers.ts","../../src/core/primitives/popover/popoverCard.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/radio/styles.ts","../../src/core/primitives/radio/radio.tsx","../../src/core/primitives/select/styles.ts","../../src/core/primitives/select/select.tsx","../../src/core/primitives/stack/styles.ts","../../src/core/primitives/stack/stack.tsx","../../src/core/primitives/switch/styles.ts","../../src/core/primitives/switch/switch.tsx","../../src/core/primitives/textArea/textArea.tsx","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useDelayedState.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipCard.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.ts","../../src/core/primitives/_selectable/style.ts","../../src/core/primitives/_selectable/selectable.tsx","../../src/core/components/menu/useMenu.ts","../../src/core/components/menu/menuGroup.tsx","../../src/core/components/menu/menuItem.tsx","../../src/core/components/tab/tab.tsx","../../src/core/components/tab/tabList.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {CSSObject, getTheme_v2, Theme} from '@sanity/ui/theme'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {CSSObject, getTheme_v2, ThemeFontKey, ThemeFontSize} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // eslint-disable-next-line no-warning-comments\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n 'position': 'relative',\n 'fontFamily': family,\n 'fontWeight': `${fontWeight}`,\n 'padding': '1px 0',\n 'margin': 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // eslint-disable-next-line no-warning-comments\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n 'fontSize': rem(fontSize),\n 'lineHeight': `calc(${lineHeight} / ${fontSize})`,\n 'letterSpacing': rem(letterSpacing),\n 'transform': `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n const context = createContext<ContextType>(defaultValue)\n context.displayName = key\n return context\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.JSX.Element {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.JSX.Element {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {getTheme_v2, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex: `${flex}`}))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: `${rowStart}`,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: `${rowEnd}`}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: `${columnStart}`,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: `${columnEnd}`,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {CSSObject, getTheme_v2, ThemeColorSchemeKey, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: `${size.lineHeight / size.fontSize}`,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {CSSObject, getTheme_v2, ThemeBoxShadow, ThemeShadow} from '@sanity/ui/theme'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {styled} from 'styled-components'\n\n/** @internal */\nexport const SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': '0',\n 'opacity': '0',\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: '0',\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: '1',\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: '1',\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst AvatarImage = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = _getArrayProp(sizeProp)\n\n // eslint-disable-next-line no-warning-comments\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <AvatarImage viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </AvatarImage>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </StyledAvatar>\n )\n})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _getArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof React.JSX.IntrinsicElements\n}\n\nconst StyledBox = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n 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={_getArrayProp(column)}\n $columnStart={_getArrayProp(columnStart)}\n $columnEnd={_getArrayProp(columnEnd)}\n $display={_getArrayProp(display)}\n $flex={_getArrayProp(flex)}\n $height={_getArrayProp(height)}\n $margin={_getArrayProp(margin)}\n $marginX={_getArrayProp(marginX)}\n $marginY={_getArrayProp(marginY)}\n $marginTop={_getArrayProp(marginTop)}\n $marginRight={_getArrayProp(marginRight)}\n $marginBottom={_getArrayProp(marginBottom)}\n $marginLeft={_getArrayProp(marginLeft)}\n $overflow={_getArrayProp(overflow)}\n $padding={_getArrayProp(padding)}\n $paddingX={_getArrayProp(paddingX)}\n $paddingY={_getArrayProp(paddingY)}\n $paddingTop={_getArrayProp(paddingTop)}\n $paddingRight={_getArrayProp(paddingRight)}\n $paddingBottom={_getArrayProp(paddingBottom)}\n $paddingLeft={_getArrayProp(paddingLeft)}\n $row={_getArrayProp(row)}\n $rowStart={_getArrayProp(rowStart)}\n $rowEnd={_getArrayProp(rowEnd)}\n $sizing={_getArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </StyledBox>\n )\n})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledText = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledText\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={_getArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </StyledText>\n )\n})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\n\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexItemProps, ResponsiveFlexProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst StyledFlex = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <StyledFlex\n data-ui=\"Flex\"\n {...restProps}\n $align={_getArrayProp(align)}\n $direction={_getArrayProp(direction)}\n $gap={_getArrayProp(gap)}\n $justify={_getArrayProp(justify)}\n $wrap={_getArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst StyledSpinner = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <StyledSpinner data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </StyledSpinner>\n )\n})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {CSSObject, ThemeColorCard_v2, ThemeColorState_v2} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-neutral-bg-color': color.badge.neutral?.bg,\n '--card-badge-neutral-dot-color': color.badge.neutral?.dot,\n '--card-badge-neutral-fg-color': color.badge.neutral?.fg,\n '--card-badge-neutral-icon-color': color.badge.neutral?.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-suggest-bg-color': color.badge.suggest?.bg,\n '--card-badge-suggest-dot-color': color.badge.suggest?.dot,\n '--card-badge-suggest-fg-color': color.badge.suggest?.fg,\n '--card-badge-suggest-icon-color': color.badge.suggest?.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp, ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={textWeight ?? button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </StyledButton>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst StyledCard = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // eslint-disable-next-line no-warning-comments\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <StyledCard\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={_getArrayProp(border)}\n $borderTop={_getArrayProp(borderTop)}\n $borderRight={_getArrayProp(borderRight)}\n $borderBottom={_getArrayProp(borderBottom)}\n $borderLeft={_getArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $radius={_getArrayProp(radius)}\n $shadow={_getArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst StyledCheckbox = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledCheckbox className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </StyledCheckbox>\n )\n})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef, lazy, Suspense} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst StyledCode = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language, size = 2, weight, ...restProps} = props\n\n return (\n <StyledCode\n data-ui=\"Code\"\n {...restProps}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </StyledCode>\n )\n})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst StyledGrid = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {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={_getArrayProp(autoRows)}\n $autoCols={_getArrayProp(autoCols)}\n $autoFlow={_getArrayProp(autoFlow)}\n $columns={_getArrayProp(columns)}\n $gap={_getArrayProp(gap)}\n $gapX={_getArrayProp(gapX)}\n $gapY={_getArrayProp(gapY)}\n $rows={_getArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </StyledGrid>\n )\n})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': '0',\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {Children, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** 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={_getArrayProp(space)}\n forwardedAs={as}\n ref={ref as any}\n >\n {children}\n </StyledInline>\n )\n})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst StyledKBD = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <StyledKBD data-ui=\"KBD\" {...restProps} $radius={_getArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </StyledKBD>\n )\n})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, forwardRef, HTMLProps} from 'react'\nimport {css, styled} from 'styled-components'\n\nimport {useTheme_v2} from '../../theme'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\nconst StyledArrow = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <StyledArrow {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </StyledArrow>\n )\n})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useMediaIndex} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.JSX.Element {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = _getArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <StyledLayer\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </StyledLayer>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\n\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n const {boundaryElement, children, element, __unstable_elements: elements} = props\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst StyledSrOnly = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <StyledSrOnly aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </StyledSrOnly>\n )\n})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst StyledVirtualList = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n return (\n <StyledVirtualList as={as} data-ui=\"VirtualList\" {...restProps} ref={ref}>\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </StyledVirtualList>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }) {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n maxWidthRef: React.RefObject<number | undefined>\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding = 0,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n } = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n const availableWidth = maxWidth - margins[1] - margins[3]\n const availableHeight = maxHeight - margins[0] - margins[2]\n const referenceWidth = reference.width - margins[1] - margins[3]\n referenceWidthRef.current = referenceWidth\n setReferenceWidth(referenceWidth)\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (widthRef.current !== undefined) {\n elements.floating.style.width = `${widthRef.current}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {motion, type MotionProps} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n will-change: opacity;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <MotionFlex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n overflow={overflow}\n variants={POPOVER_MOTION_PROPS.children}\n transition={POPOVER_MOTION_PROPS.transition}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </MotionFlex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n})\nPopoverCard.displayName = 'ForwardRef(PopoverCard)'\n","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n): React.JSX.Element {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary =\n _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const widthArrayProp = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n })\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => refs.reference.current)\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidth : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nPopover.displayName = 'ForwardRef(Popover)'\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n constrainSize: boolean\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n margins: PopoverMargins\n matchReferenceWidth: boolean | undefined\n maxWidthRef: React.RefObject<number | undefined>\n placementProp: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n ])\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {inputElementStyle, radioBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst StyledRadio = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledRadio className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </StyledRadio>\n )\n})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {CSSObject, getTheme_v2, ThemeFontSize} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n 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={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </StyledSelect>\n )\n})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\n\nimport {_responsive, rem, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps, stackBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n 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={_getArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {\n switchBaseStyles,\n switchInputStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst StyledSwitch = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <StyledSwitch className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </StyledSwitch>\n )\n})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTextArea = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <StyledTextArea data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </StyledTextArea>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n 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 = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {motion, type MotionProps} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n will-change: transform;\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n})\nTooltipCard.displayName = 'ForwardRef(TooltipCard)'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = _getArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </StyledTooltip>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, KBD} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n 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 = _getArrayProp(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: 2\n activeElement: HTMLElement | null\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const [activeElement, setActiveElement] = useState<HTMLElement | null>(null)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n setActiveElement(elementsRef.current[nextActiveIndex] || null)\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!rootElementRef.current) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, rootElementRef, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n '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 = useMemo(\n () =>\n ({\n version: 2,\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n }) satisfies MenuContextValue,\n [\n activeElement,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <StyledMenu\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </StyledMenu>\n </MenuContext.Provider>\n )\n})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\n\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\n\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 2`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 2) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n menu?: Omit<\n MenuProps,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n 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.onItemMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={_getArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n 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.onItemMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onItemMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = _getArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={_getArrayProp(radius)}\n $padding={_getArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {Children, cloneElement, forwardRef, isValidElement, useCallback, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","children","type","visualDuration","bounce","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","_fillCSSObject","keys","value","reduce","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","getGlobalScope","globalThis","self","global","globalScope","createGlobalScopedContext","defaultValue","symbol","Symbol","for","document","context","createContext","displayName","ThemeContext","ThemeProvider","$","_c","parentTheme","useContext","scheme","rootTheme","tone","t0","bb0","t1","version","themeContext","bb1","t2","getScopedTheme","jsx","StyledThemeProvider","t3","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","responsiveBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderStyle","width","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$height","$overflow","overflow","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","Boolean","join","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","auto","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","GRID_CSS","GRID_AUTO_COLUMS","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","i","_","text","emSize","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","index","SpanWithTextOverflow","styled","span","withConfig","componentId","labelBaseStyle","$accent","$muted","code","StyledLabel","div","Label","forwardRef","ref","accent","childrenProp","restProps","textOverflow","weight","muted","t4","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","StyledAvatar","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","AvatarImage","svg","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","onImageLoadError","src","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","useState","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","useEffect","t5","t6","t7","handleImageError","T0","t8","t9","t10","t11","jsxs","t12","Fragment","_temp","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","StyledAvatarCounter","AvatarCounter","count","T1","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","StyledAvatarStack","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","child","childIndex","cloneElement","String","StyledBox","Box","marginRight","marginX","marginY","paddingX","paddingY","padding","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","StyledText","Text","badgeStyle","verticalAlign","StyledBadge","Badge","mode","_deprecated_mode","StyledFlex","Flex","rotate","keyframes","StyledSpinner","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","neutral","primary","suggest","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","StyledButton","LoadingBox","Button","IconComponent","IconRightComponent","loading","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","selected","textWeight","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","StyledCard","Card","__unstable_checkered","__unstable_focusRing","toneProp","useClickOutsideEvent","listener","boundaryElement","elementsArg","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","addEventListener","removeEventListener","useDebugValue","useCustomValidity","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","useElementSize","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","matchMedia","matches","useSyncExternalStore","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","checkboxBaseStyles","inputElementStyles","checkbox","StyledCheckbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","useRef","useImperativeHandle","CheckmarkIcon","RemoveIcon","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","Suspense","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","StyledContainer","Container","StyledGrid","Grid","headingBaseStyle","heading","StyledHeading","Heading","inlineBaseStyle","inlineSpaceStyle","StyledInline","Inline","kbdStyle","StyledKBD","KBD","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","StyledArrow","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","StyledLayer","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","fallbackElement","emptySubscribe","StyledSrOnly","SrOnly","StyledVirtualList","ItemWrapper","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","useChildren","item","_itemIndex","itemIndex","top","_scrollEl","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","constrainSize","margins","matchReferenceWidth","maxWidthRef","referenceWidthRef","setReferenceWidth","widthRef","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","MotionFlex","PopoverCard","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","inset","Popover","layer","boundaryElementContext","_boundaryElement","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","modal","open","referenceElement","updateRef","fallbackPlacements","floatingBoundary","placementStrategy","preventOverflow","t31","referenceBoundary","t32","t33","t34","t35","t36","t37","t38","t39","t40","_animate","arrowProp","placementProp","shadowProp","widthProp","popover","boundarySize","widthArrayProp","floatingElement","referenceWidth_0","middleware","useMiddleware","whileElementsMounted","autoUpdate","refs","update","useFloating","referenceHidden","hide","arrowEl","setArrow","setFloating","setReference","AnimatePresence","autoPlacement","allowedPlacements","concat","flip","mainAxis","radioBaseStyle","inputElementStyle","dist","radio","markSize","StyledRadio","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","StyledSelect","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","StyledStack","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","StyledSwitch","Representation","Track","Thumb","Switch","StyledTextArea","InputRoot","textarea","Presentation","TextArea","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","StyledTextInput","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","onClear","prefix","suffix","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","StyledTooltip","Tooltip","_fallbackPlacementsProp","_zOffset","portalProp","fallbackPlacementsProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","immediate","groupedOpenDelay","groupDeactivateDelay","handleIsOpenChange","e","onBlur","handleBlur","e_0","onClick","handleClick","e_1","onContextMenu","handleContextMenu","e_2","e_3","onMouseEnter","handleMouseEnter","e_4","onMouseLeave","handleMouseLeave","useCloseOnMouseLeave","handleWindowKeyDown","offsetWidth","availableWidths","useLayoutEffect","teardown","onMouseMove","handleMouseMove","StyledHotkeys","Key","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","setActiveElement","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","el_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedElement","focusedIndex","el_1","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentTarget","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","StyledMenu","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","menuProps","menu","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","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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"}
|