@sanity/ui 2.0.4 → 2.0.6
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/index.esm.js +1636 -397
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1636 -397
- package/dist/index.js.map +1 -1
- package/dist/theme.esm.js +27 -29
- package/dist/theme.esm.js.map +1 -1
- package/dist/theme.js +27 -29
- package/dist/theme.js.map +1 -1
- package/package.json +23 -23
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/lib/globalScope.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/hooks/useIsomorphicEffect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useCustomValidity.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/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/helpers.ts","../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/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/hooks/_internal/useUnique.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/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/menuButton.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/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity'\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n position: 'relative',\n fontFamily: family,\n fontWeight,\n padding: '1px 0',\n margin: 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n fontSize: rem(fontSize),\n lineHeight: `calc(${lineHeight} / ${fontSize})`,\n letterSpacing: rem(letterSpacing),\n transform: `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check\n const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__],\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\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","import {Context, createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> = globalScope[key]\n","import {\n RootTheme,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: rootTheme = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\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","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\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","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\nconst MEDIA_STORE_CACHE = new WeakMap<number[], _MediaStore>()\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\n let store = MEDIA_STORE_CACHE.get(media)\n\n if (!store) {\n store = _createMediaStore(media)\n MEDIA_STORE_CACHE.set(media, store)\n }\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-color-scheme: dark)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\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 false\n}\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-reduced-motion: reduce)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\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-reduced-motion: no-preference)` 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 false\n}\n\n/**\n * Returns true if motion should be reduced\n * @public\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\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 if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\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 <Root\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 </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n backgroundColor: 'var(--avatar-bg-color)',\n position: 'relative',\n boxSizing: 'border-box',\n userSelect: 'none',\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n WebkitFontSmoothing: 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n width: '100%',\n height: '100%',\n color: 'var(--avatar-fg-color)',\n alignItems: 'center',\n justifyContent: 'center',\n textTransform: 'uppercase',\n textAlign: 'center',\n borderRadius: '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof 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 Root = 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 Image = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root\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 <Image viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </Image>\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 </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = 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 <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode,\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string',\n ) as Array<React.ReactElement | string>\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\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 Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\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 = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string',\n ) as React.ReactElement[]\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 <Root 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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = 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 <Root\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 </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n backgroundColor: 'var(--card-bg-color)',\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = 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 <Root\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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = 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 <Root\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})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = 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 <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-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-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst Root = 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,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <Root\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 {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing} = 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: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = 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 pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\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 $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})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, 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 Root = 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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root 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 </Root>\n )\n})\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","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = 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 <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = 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 <Root\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 </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {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 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 Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\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 <Root\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 </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n margin: `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\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 Root = 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 () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof 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 Root = 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 <Root 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 </Root>\n )\n})\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = 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): ReactElement {\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 <Root {...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 </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\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","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n */\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","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, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} 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 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 ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media = theme.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\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(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef],\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {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 {Context, createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\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","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\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],\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","import {FocusEvent, forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof 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 JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: 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 forwardedRef = useForwardedRef(ref)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\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 = forwardedRef.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 [forwardedRef, isTopLayer, onFocus],\n )\n\n return (\n <Root\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={forwardedRef}\n style={{...style, zIndex}}\n >\n {children}\n </Root>\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})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/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\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\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\nconst __BROWSER__ = typeof document !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = 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 <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\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 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 Root = 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 ref: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const forwardedRef = useForwardedRef(ref)\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 useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n bottom: ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n left: ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n right: ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nPopoverCard.displayName = 'PopoverCard'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport {\n useForwardedRef,\n useArrayProp,\n useElementSize,\n useMediaIndex,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {\n ConditionalWrapper,\n LayerProps,\n LayerProvider,\n Portal,\n useBoundaryElement,\n} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\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>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = forwardedRef.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, forwardedRef, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\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 forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n if (child) return\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs, child])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n return (\n <>\n {/* the popover */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {open && (\n <ConditionalWrapper\n condition={!!portal}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {children}\n </Portal>\n )}\n >\n {popover}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Popover'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = 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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 </Root>\n )\n})\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = 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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\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 <Root\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})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = 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 = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root 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 </Root>\n )\n})\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = 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 ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 $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 </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\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 | '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 Root = 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,\n iconRight,\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\n const ref = useForwardedRef(forwardedRef)\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(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\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 {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n icon,\n iconRight,\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 <Root 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 </Root>\n )\n})\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\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 {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'TooltipCard'\n","import {createContext} from 'react'\nimport {globalScope} from '../../../lib/globalScope'\nimport {TooltipDelayGroupContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tooltipDelayGroup')\n\nglobalScope[key] = globalScope[key] || createContext<TooltipDelayGroupContextValue | null>(null)\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: React.Context<TooltipDelayGroupContextValue | null> =\n globalScope[key]\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n ForwardedRef,\n useId,\n} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp, useForwardedRef, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {Placement} from '../../types'\nimport {\n ConditionalWrapper,\n Layer,\n LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} from '../../utils'\nimport {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.ReactElement\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 Root = styled(Layer)<{$maxWidth: number}>`\n pointer-events: none;\n max-width: ${({$maxWidth}) => $maxWidth}px;\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 ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\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 tooltipWidth = useMemo(() => {\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n return Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2\n }, [boundaryElement, portalElement?.offsetWidth])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\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 // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [showTooltip, referenceElement, handleIsOpenChange])\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 // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\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 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 forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef],\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: setReference,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n setReference,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={floatingStyles}\n zOffset={zOffset}\n $maxWidth={tooltipWidth}\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 </Root>\n )\n\n return (\n <>\n {/* the tooltip */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {showTooltip && (\n <ConditionalWrapper\n condition={!!portalProp}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {children}\n </Portal>\n )}\n >\n {tooltip}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children],\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n background: color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutside,\n useForwardedRef,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutside(\n useCallback(\n (event: MouseEvent) => {\n if (!isTopLayer || !onClickOutside) return\n\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n },\n [boundaryElement, isTopLayer, onClickOutside, portalElement],\n ),\n [rootElement],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"center\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || layer.dialog.zOffset,\n animate: _animate = false,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = 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 <Root 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 </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\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'\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 rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => 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}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, 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 [rootElement, 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 rootElement?.focus()\n }, [setActiveIndex, rootElement])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\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 activeIndexRef.current = 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 activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, 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}\n\nconst Root = 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 ref: 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 = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement],\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 useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside],\n ),\n [rootElement],\n )\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 // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\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 </Root>\n </MenuContext.Provider>\n )\n})\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref],\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n onMouseDown: handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open, setButtonRef],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\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`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\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: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon,\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 = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'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 if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) onItemClick()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\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 shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\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 {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\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","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} 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 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,\n iconRight,\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 = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\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(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref],\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\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 {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\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 elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\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 const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\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={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\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 = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\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})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorToneKey} from '@sanity/ui/theme'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst Root = styled(Card)`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.ReactElement {\n const {closable, description, onClose, radius = 3, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [1, 0, 0],\n scale: 0.5,\n transition: prefersReducedMotion ? {duration: 0} : {duration: 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\n\nTree.displayName = 'Tree'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["_createColorTheme","_hexToRgb","_hslToRgb","_multiply","_parseColor","_rgbToHex","_rgbToHsl","_rgba","_screen","buildTheme","theme","getTheme_v2","fontSize","useMemo","useState","useRef","useEffect","global","size","ResizeObserverPolyfill","key","createContext","useContext","getScopedTheme","jsx","StyledThemeProvider","useStyledTheme","getServerSnapshot","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","subscribe","getSnapshot","useLayoutEffect","BASE_STYLE","_a","_b","_c","css","__template","Root","styled","SpanWithTextOverflow","forwardRef","Label","Arrow","Avatar","ReactIs","useId","useCallback","jsxs","Fragment","AvatarCounter","isElement","isFragment","AvatarStack","cloneElement","Box","Text","Badge","Flex","rotate","keyframes","Spinner","SpinnerIcon","Button","isValidElement","isValidElementType","createElement","Card","Input","Checkbox","CheckmarkIcon","RemoveIcon","Code","Refractor","Container","Grid","Heading","Inline","KBD","ElementQuery","Component","LayerChildren","Layer","createPortal","SrOnly","VirtualList","handleScroll","DEFAULT_FALLBACK_PLACEMENTS","detectOverflow","MotionCard","motion","memo","PopoverCard","Popover","flip","offset","shift","arrow","hide","useFloating","autoUpdate","AnimatePresence","Radio","_d","Select","ChevronDownIcon","Stack","_e","_f","Switch","InputRoot","Presentation","TextArea","TextInput","CloseIcon","TooltipCard","Tooltip","InnerAutocomplete","useReducer","value","listFocused","Breadcrumbs","Children","DialogCard","Dialog","Hotkeys","Menu","MenuButton","ChevronRightIcon","MenuItem","Skeleton","TextSkeleton","Tab","TabList","TabPanel","state","startTransition","Tree","path","itemState","TreeGroup","TreeItem","ToggleArrowRightIcon"],"mappings":"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","x_google_ignoreList":[11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/lib/globalScope.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/hooks/useIsomorphicEffect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useCustomValidity.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/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/helpers.ts","../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/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/hooks/_internal/useUnique.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/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/menuButton.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/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * @internal\n */\nexport const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity'\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {\n opacity: 0.5,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n scale: 0.97,\n willChange: 'transform',\n },\n animate: {\n opacity: [null, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],\n scale: 1,\n },\n exit: {\n // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22\n opacity: [null, null, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],\n scale: 0.97,\n },\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n position: 'relative',\n fontFamily: family,\n fontWeight,\n padding: '1px 0',\n margin: 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n fontSize: rem(fontSize),\n lineHeight: `calc(${lineHeight} / ${fontSize})`,\n letterSpacing: rem(letterSpacing),\n transform: `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check\n const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__],\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\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","import {Context, createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> = globalScope[key]\n","import {\n RootTheme,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: rootTheme = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\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","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\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","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\nconst MEDIA_STORE_CACHE = new WeakMap<number[], _MediaStore>()\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\n let store = MEDIA_STORE_CACHE.get(media)\n\n if (!store) {\n store = _createMediaStore(media)\n MEDIA_STORE_CACHE.set(media, store)\n }\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-color-scheme: dark)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\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 false\n}\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-reduced-motion: reduce)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\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-reduced-motion: no-preference)` 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 false\n}\n\n/**\n * Returns true if motion should be reduced\n * @public\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\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 if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\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 <Root\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 </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n backgroundColor: 'var(--avatar-bg-color)',\n position: 'relative',\n boxSizing: 'border-box',\n userSelect: 'none',\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n WebkitFontSmoothing: 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n width: '100%',\n height: '100%',\n color: 'var(--avatar-fg-color)',\n alignItems: 'center',\n justifyContent: 'center',\n textTransform: 'uppercase',\n textAlign: 'center',\n borderRadius: '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof 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 Root = 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 Image = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root\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 <Image viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </Image>\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 </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = 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 <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode,\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string',\n ) as Array<React.ReactElement | string>\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\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 Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\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 = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string',\n ) as React.ReactElement[]\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 <Root 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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = 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 <Root\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 </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof 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 Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\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 <Root\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 </Root>\n )\n})\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n backgroundColor: 'var(--card-bg-color)',\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = 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 <Root\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 </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = 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 <Root\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})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = 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 <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-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-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst Root = 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,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <Root\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 {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing} = 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: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = 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 pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\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 $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})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, 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 Root = 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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root 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 </Root>\n )\n})\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","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = 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 <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = 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 <Root\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 </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {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 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 Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\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 <Root\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 </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n margin: `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\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 Root = 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 () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof 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 Root = 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 <Root 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 </Root>\n )\n})\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = 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): ReactElement {\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 <Root {...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 </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\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","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n */\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","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, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} 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 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 ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media = theme.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\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(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef],\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {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 {Context, createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\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","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\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],\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","import {FocusEvent, forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof 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 JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: 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 forwardedRef = useForwardedRef(ref)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\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 = forwardedRef.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 [forwardedRef, isTopLayer, onFocus],\n )\n\n return (\n <Root\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={forwardedRef}\n style={{...style, zIndex}}\n >\n {children}\n </Root>\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})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/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\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\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\nconst __BROWSER__ = typeof document !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = 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 <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\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 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 Root = 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 ref: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const forwardedRef = useForwardedRef(ref)\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 useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n bottom: ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n left: ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n right: ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nPopoverCard.displayName = 'PopoverCard'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport {\n useForwardedRef,\n useArrayProp,\n useElementSize,\n useMediaIndex,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {\n ConditionalWrapper,\n LayerProps,\n LayerProvider,\n Portal,\n useBoundaryElement,\n} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\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>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = forwardedRef.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, forwardedRef, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\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 forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n if (child) return\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs, child])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n return (\n <>\n {/* the popover */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {open && (\n <ConditionalWrapper\n condition={!!portal}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {children}\n </Portal>\n )}\n >\n {popover}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Popover'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = 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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 </Root>\n )\n})\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = 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 = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\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 <Root\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})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = 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 = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root 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 </Root>\n )\n})\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = 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 ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root 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 $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 </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\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 | '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 Root = 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,\n iconRight,\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\n const ref = useForwardedRef(forwardedRef)\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(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\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 {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n icon,\n iconRight,\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 <Root 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 </Root>\n )\n})\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\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 {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'TooltipCard'\n","import {createContext} from 'react'\nimport {globalScope} from '../../../lib/globalScope'\nimport {TooltipDelayGroupContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tooltipDelayGroup')\n\nglobalScope[key] = globalScope[key] || createContext<TooltipDelayGroupContextValue | null>(null)\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: React.Context<TooltipDelayGroupContextValue | null> =\n globalScope[key]\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n ForwardedRef,\n useId,\n} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp, useForwardedRef, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {Placement} from '../../types'\nimport {\n ConditionalWrapper,\n Layer,\n LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} from '../../utils'\nimport {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.ReactElement\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 Root = styled(Layer)<{$maxWidth: number}>`\n pointer-events: none;\n max-width: ${({$maxWidth}) => $maxWidth}px;\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 ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\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 tooltipWidth = useMemo(() => {\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n return Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2\n }, [boundaryElement, portalElement?.offsetWidth])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\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 // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [showTooltip, referenceElement, handleIsOpenChange])\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 // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\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 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 forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef],\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: setReference,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n setReference,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={floatingStyles}\n zOffset={zOffset}\n $maxWidth={tooltipWidth}\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 </Root>\n )\n\n return (\n <>\n {/* the tooltip */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {showTooltip && (\n <ConditionalWrapper\n condition={!!portalProp}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {children}\n </Portal>\n )}\n >\n {tooltip}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children],\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n background: color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutside,\n useForwardedRef,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutside(\n useCallback(\n (event: MouseEvent) => {\n if (!isTopLayer || !onClickOutside) return\n\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n },\n [boundaryElement, isTopLayer, onClickOutside, portalElement],\n ),\n [rootElement],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"center\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || layer.dialog.zOffset,\n animate: _animate = false,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = 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 <Root 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 </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\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'\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 rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => 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}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, 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 [rootElement, 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 rootElement?.focus()\n }, [setActiveIndex, rootElement])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\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 activeIndexRef.current = 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 activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, 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}\n\nconst Root = 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 ref: 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 = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement],\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 useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside],\n ),\n [rootElement],\n )\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 // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\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 </Root>\n </MenuContext.Provider>\n )\n})\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref],\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n onMouseDown: handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open, setButtonRef],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\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`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\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: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon,\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 = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'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 if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) onItemClick()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\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 shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\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 {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\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","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} 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 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,\n iconRight,\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 = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\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(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref],\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\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 {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\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 elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\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 const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\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={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\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 = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\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})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorToneKey} from '@sanity/ui/theme'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst Root = styled(Card)`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.ReactElement {\n const {closable, description, onClose, radius = 3, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [1, 0, 0],\n scale: 0.5,\n transition: prefersReducedMotion ? {duration: 0} : {duration: 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\n\nTree.displayName = 'Tree'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["_createColorTheme","_hexToRgb","_hslToRgb","_multiply","_parseColor","_rgbToHex","_rgbToHsl","_rgba","_screen","buildTheme","theme","getTheme_v2","fontSize","useMemo","useState","useRef","useEffect","global","size","ResizeObserverPolyfill","key","createContext","useContext","getScopedTheme","jsx","StyledThemeProvider","useStyledTheme","getServerSnapshot","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","subscribe","getSnapshot","useLayoutEffect","BASE_STYLE","css","Root","styled","SpanWithTextOverflow","forwardRef","Label","Arrow","Avatar","ReactIs","useId","useCallback","jsxs","Fragment","AvatarCounter","isElement","isFragment","AvatarStack","cloneElement","Box","Text","Badge","Flex","rotate","keyframes","Spinner","SpinnerIcon","Button","isValidElement","isValidElementType","createElement","Card","Input","Checkbox","CheckmarkIcon","RemoveIcon","Code","Refractor","Container","Grid","Heading","Inline","KBD","ElementQuery","Component","LayerChildren","Layer","createPortal","SrOnly","VirtualList","handleScroll","DEFAULT_FALLBACK_PLACEMENTS","detectOverflow","MotionCard","motion","memo","PopoverCard","Popover","flip","offset","shift","arrow","hide","useFloating","autoUpdate","AnimatePresence","Radio","Select","ChevronDownIcon","Stack","Switch","InputRoot","Presentation","TextArea","TextInput","CloseIcon","TooltipCard","Tooltip","_a","_b","InnerAutocomplete","useReducer","value","listFocused","Breadcrumbs","Children","DialogCard","Dialog","Hotkeys","Menu","MenuButton","ChevronRightIcon","MenuItem","Skeleton","TextSkeleton","Tab","TabList","TabPanel","state","startTransition","Tree","path","itemState","TreeGroup","TreeItem","ToggleArrowRightIcon"],"mappings":"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","x_google_ignoreList":[11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]}
|