@sanity/ui 2.0.0 → 2.0.1
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.d.ts +4 -0
- package/dist/index.esm.js +2 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/core/primitives/popover/popover.tsx +6 -1
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 // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\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 // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\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 // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\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 {useForwardedRef, useArrayProp, useElementSize, useMediaIndex} 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 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 = 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 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 refs.setReference(referenceElement || null)\n }, [referenceElement, refs])\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} 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 = 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 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 {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} 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 = false,\n ...restProps\n } = props\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 {useEffect, useReducer} 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 // Use useReducer instead of useState as it's more low-level and creates the least amount of functions for the garbage collector to clean up\n const [mounted, mount] = useReducer(() => true, false)\n\n useEffect(mount, [mount])\n\n return mounted\n}\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} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState, startTransition} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\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\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((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 // 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 const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n const mounted = useMounted()\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\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 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: {duration: 0.2},\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 key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\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","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","concat","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","arguments","length","undefined","Error","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size$1","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_ref","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","getGlobalScope","globalThis","self","globalScope","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","themeContext","version","getScopedTheme","jsx","Provider","StyledThemeProvider","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","MEDIA_STORE_CACHE","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","matchMedia","getSnapshot","matches","onStoreChange","disposeFns","handleChange","disposeFn","getServerSnapshot","getServerSnapshot$2","useMediaIndex","store","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","getMatchMedia$1","getSnapshot$1","getServerSnapshot$1","usePrefersDark","usePrefersReducedMotion","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","_c","ROOT_STYLE","css","__template","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","accent","childrenProp","muted","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","zIndex","$color","avatar","backgroundColor","userSelect","WebkitFontSmoothing","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","__unstable_hideInnerStroke","as","asProp","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","d","id","patternContentUnits","href","onError","cx","cy","r","rx","ry","vectorEffect","Fragment","forwardedAs","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","childrenToElementArray","childrenArray","isFragment","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","textBaseStyle","bold","Text","badgeStyle","cursor","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","primary","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","_len","boxShadows","_key","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","selected","spaceProp","boxProps","isValidElement","createElement","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","_ref2","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","heading","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","_ref3","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","_ref4","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","mask","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","_ref5","condition","wrapper","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","__publicField","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","state","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","parentLevel","level","maxMediaIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","becameTopLayer","handleFocus","rootElement","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","handleScroll2","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","PopoverCard","memo","PopoverCard2","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","strategy","xProp","yProp","rootStyle","arrowStyle","displayName","Popover","Popover2","_d","_e","_f","_g","_h","_j","layer","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_ref6","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","AnimatePresence","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","__unstable_disableFocusRing","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","useDelayedState","initialState","setState","delayedAction","onStateChange","delay","action","clearTimeout","setTimeout","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipCard2","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","_ref7","$maxWidth","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipWidth","availableWidths","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","minimumGroupDeactivateDelay","groupDeactivateDelay","standaloneDelay","handleBlur","e","onBlur","handleClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowMouseMove","isHoveringReference","handleWindowKeyDown","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","_ref8","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","_ref9","background","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","setRootElement","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","a","b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","_ref10","$visible","_ref11","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","elementRef","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","TextBox","Toast","closable","description","cardTone","buttonTone","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","_ref12","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","Tree2","setFocusedElement","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","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 // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\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 // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\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 // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\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 {useForwardedRef, useArrayProp, useElementSize, useMediaIndex} 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 = 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 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} 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 = 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 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 {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} 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 = false,\n ...restProps\n } = props\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 {useEffect, useReducer} 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 // Use useReducer instead of useState as it's more low-level and creates the least amount of functions for the garbage collector to clean up\n const [mounted, mount] = useReducer(() => true, false)\n\n useEffect(mount, [mount])\n\n return mounted\n}\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} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState, startTransition} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\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\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((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 // 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 const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n const mounted = useMounted()\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\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 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: {duration: 0.2},\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 key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\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","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","concat","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","arguments","length","undefined","Error","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size$1","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_ref","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","getGlobalScope","globalThis","self","globalScope","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","themeContext","version","getScopedTheme","jsx","Provider","StyledThemeProvider","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","MEDIA_STORE_CACHE","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","matchMedia","getSnapshot","matches","onStoreChange","disposeFns","handleChange","disposeFn","getServerSnapshot","getServerSnapshot$2","useMediaIndex","store","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","getMatchMedia$1","getSnapshot$1","getServerSnapshot$1","usePrefersDark","usePrefersReducedMotion","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","_c","ROOT_STYLE","css","__template","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","accent","childrenProp","muted","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","zIndex","$color","avatar","backgroundColor","userSelect","WebkitFontSmoothing","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","__unstable_hideInnerStroke","as","asProp","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","d","id","patternContentUnits","href","onError","cx","cy","r","rx","ry","vectorEffect","Fragment","forwardedAs","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","childrenToElementArray","childrenArray","isFragment","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","textBaseStyle","bold","Text","badgeStyle","cursor","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","primary","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","_len","boxShadows","_key","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","selected","spaceProp","boxProps","isValidElement","createElement","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","_ref2","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","heading","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","_ref3","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","_ref4","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","mask","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","_ref5","condition","wrapper","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","__publicField","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","state","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","parentLevel","level","maxMediaIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","becameTopLayer","handleFocus","rootElement","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","handleScroll2","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","PopoverCard","memo","PopoverCard2","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","strategy","xProp","yProp","rootStyle","arrowStyle","displayName","Popover","Popover2","_d","_e","_f","_g","_h","_j","layer","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_ref6","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","AnimatePresence","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","__unstable_disableFocusRing","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","useDelayedState","initialState","setState","delayedAction","onStateChange","delay","action","clearTimeout","setTimeout","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipCard2","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","_ref7","$maxWidth","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipWidth","availableWidths","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","minimumGroupDeactivateDelay","groupDeactivateDelay","standaloneDelay","handleBlur","e","onBlur","handleClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowMouseMove","isHoveringReference","handleWindowKeyDown","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","_ref8","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","_ref9","background","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","setRootElement","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","a","b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","_ref10","$visible","_ref11","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","elementRef","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","TextBox","Toast","closable","description","cardTone","buttonTone","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","_ref12","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","Tree2","setFocusedElement","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","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]}
|