@sanity/ui 2.8.16 → 2.8.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +292 -148
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +292 -148
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +292 -148
- package/dist/index.mjs.map +1 -1
- package/package.json +20 -20
- package/src/core/components/dialog/dialog.tsx +4 -2
- package/src/core/components/menu/menu.tsx +3 -1
- package/src/core/components/menu/menuGroup.tsx +2 -1
- package/src/core/components/menu/menuItem.tsx +4 -2
- package/src/core/components/tab/tabList.tsx +3 -11
- package/src/core/theme/themeProvider.tsx +4 -6
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.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","../src/core/hooks/useClickOutsideEvent.ts","../src/core/hooks/useCustomValidity.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMatchMedia.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/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/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/styles.ts","../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\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\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 * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = 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","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener, onEvent])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {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 {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\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","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/* 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","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.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\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.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\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {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})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': 0,\n 'opacity': 0,\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof 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})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst 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})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement, 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 {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 = useMemo<React.ReactElement[]>(\n () => Children.toArray(childrenProp).filter(isValidElement),\n [childrenProp],\n )\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})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof 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})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {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})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof 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})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst 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})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {styled, keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst 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})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-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 {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: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <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 {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst 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 muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <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 $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst 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 = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* 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})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst 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})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst 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})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {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})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst 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 () => Children.map(childrenProp, (child) => child && <div>{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})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof 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})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, 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})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.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\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media = theme.media, ...restProps} = props\n\n const ref = useRef<HTMLDivElement | null>(null)\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 useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setElement(el)\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})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\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 {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _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\nLayerProvider.displayName = 'LayerProvider'\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof 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 forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Root {...restProps} data-ui=\"Layer\" onFocus={handleFocus} ref={ref} style={{...style, zIndex}}>\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})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useRef, useSyncExternalStore} from 'react'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof 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})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof 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 forwardedRef: 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 ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!ref.current) return\n\n let _scrollEl = ref.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 }, [])\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={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\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)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {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 forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!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 const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\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 radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst 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 = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst 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 = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof 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})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst 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 = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <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})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst 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 __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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 $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n 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: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <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})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\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)\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.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\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.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)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // 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\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\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: childRef,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\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={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </Root>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [onMouseMove, showTooltip])\n}\n","import {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 useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} 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 /** @beta */\n openOnFocus?: boolean\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 forwardedRef: React.ForwardedRef<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 openOnFocus,\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 // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\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 dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\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 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 dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\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={inputElementRef}\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\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\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 {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useArrayProp, useClickOutsideEvent} 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 expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\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={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\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})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\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 {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\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\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\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, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\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 ref = useRef<HTMLDivElement | null>(null)\n const contentRef = 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 useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\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 useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\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 () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" 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={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || layer.dialog.zOffset,\n animate: _animate = false,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\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\nDialogProvider.displayName = 'DialogProvider'\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})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\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 forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <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})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\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 forwardedRef: 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 () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\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 = menuProp && cloneElement(menuProp, menuProps)\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const button = useMemo(\n () =>\n 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': ref,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n // If there's a button then we need to set the reference element to the cloned button ref\n // and if button changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!button) return undefined\n\n setButtonElement(ref.current)\n\n return () => setButtonElement(null)\n }, [button])\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})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} 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: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\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 [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...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 {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {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})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\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})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\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})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\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})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\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})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {cloneElement, forwardRef, useCallback, 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})\nTabList.displayName = 'ForwardRef(TabList)'\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})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {styled, keyframes, css} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Flex} from '../../primitives'\nimport {ThemeProps} from '../../styles'\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nconst loadingAnimation = keyframes`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport function rootStyles(\n props: {$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps,\n): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n const loadingBarColor = color.button.default[props.tone].enabled.bg\n\n if (!props.$duration)\n return css`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n\n return css`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n padding-bottom: ${LOADING_BAR_HEIGHT}px;\n &::before {\n content: '';\n position: absolute;\n bottom: 0px;\n height: ${LOADING_BAR_HEIGHT}px;\n background: ${loadingBarColor};\n animation-name: ${loadingAnimation};\n animation-duration: ${props.$duration}ms;\n animation-fill-mode: both;\n }\n\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport {ThemeProps} from '../../styles'\nimport type {ButtonTone} from '../../types'\nimport {rootStyles, TextBox} from './styles'\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 duration?: number\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\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)<{$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps>(\n rootStyles,\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, duration, 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 $duration={duration}\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\nToast.displayName = 'Toast'\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [1, 0, 0],\n scale: 0.5,\n transition: prefersReducedMotion ? {duration: 0} : {duration: 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\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 {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\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 forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\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 useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\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 (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\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={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(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 {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: IconComponent,\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={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\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})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","t0","boundaryElement","$","_c","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","document","useDebugValue","useCustomValidity","ref","customValidity","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","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","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","Symbol","for","useImperativeHandle","useGlobalKeyDown","onKeyDown","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","themeContext","version","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","childrenProp","textOverflow","restProps","accent","weight","muted","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","asProp","animateArrowFrom","arrowPositionProp","src","onImageLoadError","__unstable_hideInnerStroke","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t6","t7","handleImageError","t8","t9","t10","initialsSize","t11","t12","t13","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","child","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","padding","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","Text","badgeStyle","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","_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","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","loading","selected","IconComponent","IconRightComponent","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","indeterminate","checked","className","codeSyntaxHighlightingStyle","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","tag","unit","url","variable","codeBaseStyle","pre","Code","languageProp","language","Refractor","hasLanguage","registered","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","heading","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","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","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","findMinBreakpoints","ElementQuery","elementSize","innerWidth","setRef","useCallback","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","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","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","_temp2","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","ItemWrapper","VirtualList","renderItem","onChange","getItemKey","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","passive","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","bb0","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","marginsProp","xProp","yProp","strategy","arrowX","arrowY","arrowRef","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","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","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","suffix","prefix","onClear","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","v_0","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","ListBox","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","onSelect","currentTarget","handleKeyDown","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","openOnFocus","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","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","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","ChevronDownIcon","inputValue","handleListBoxKeyDown","active","results","hidden","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","Fragment","dialogStyle","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","labelId","showCloseButton","showHeader","target_0","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","currentIndex","focusableElements","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","unregisterElementRef","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","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","MenuItem","hotkeys","selectedProp","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","Toast","description","closable","cardTone","buttonTone","role","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents"],"mappings":"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","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|
|
1
|
+
{"version":3,"file":"index.esm.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","../src/core/hooks/useClickOutsideEvent.ts","../src/core/hooks/useCustomValidity.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMatchMedia.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/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/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/styles.ts","../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\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\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 * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = 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","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener, onEvent])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {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 {useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\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","import {useDebugValue, useMemo, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","/* 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","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n type RootTheme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n type Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.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\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {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})\nLabel.displayName = 'ForwardRef(Label)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n 'position': 'absolute',\n 'boxSizing': 'border-box',\n 'zIndex': 0,\n 'opacity': 0,\n 'transition': 'all 0.2s linear',\n 'transform': 'rotate(-90deg) translate3d(0, 6px, 0)',\n 'left': 0,\n 'right': 0,\n 'top': 0,\n 'bottom': 0,\n\n '& > svg': {\n 'width': '11px',\n 'height': '7px',\n 'position': 'absolute',\n 'top': '-5px',\n 'left': '50%',\n 'transform': 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n 'width': '100%',\n 'height': '100%',\n 'color': 'var(--avatar-fg-color)',\n 'alignItems': 'center',\n 'justifyContent': 'center',\n 'textTransform': 'uppercase',\n 'textAlign': 'center',\n 'borderRadius': '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n 'strokeWidth': '2px',\n 'stroke': 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof 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})\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst 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})\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {Children, cloneElement, forwardRef, isValidElement, 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 {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 = useMemo<React.ReactElement[]>(\n () => Children.toArray(childrenProp).filter(isValidElement),\n [childrenProp],\n )\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})\nAvatarStack.displayName = 'ForwardRef(AvatarStack)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof 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})\nBox.displayName = 'ForwardRef(Box)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {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})\nText.displayName = 'ForwardRef(Text)'\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof 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})\nBadge.displayName = 'ForwardRef(Badge)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst 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})\nFlex.displayName = 'ForwardRef(Flex)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {styled, keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst 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})\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-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 {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: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <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 {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\nButton.displayName = 'ForwardRef(Button)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing, $muted} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: ${$muted ? 'var(--card-muted-bg-color)' : 'var(--card-bg-color)'};\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst 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 muted,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <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 $muted={muted}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\nCard.displayName = 'ForwardRef(Card)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst 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 = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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})\nCheckbox.displayName = 'ForwardRef(Checkbox)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* 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})\nCode.displayName = 'ForwardRef(Code)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst 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})\nContainer.displayName = 'ForwardRef(Container)'\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst 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})\nGrid.displayName = 'ForwardRef(Grid)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {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})\nHeading.displayName = 'ForwardRef(Heading)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n 'lineHeight': 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n 'margin': `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst 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 () => Children.map(childrenProp, (child) => child && <div>{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})\nInline.displayName = 'ForwardRef(Inline)'\n","import {forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof 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})\nKBD.displayName = 'ForwardRef(KBD)'\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, 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})\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.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\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {useElementSize} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media = theme.media, ...restProps} = props\n\n const ref = useRef<HTMLDivElement | null>(null)\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 useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setElement(el)\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})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\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 {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _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\nLayerProvider.displayName = 'LayerProvider'\n","import {FocusEvent, forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof 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 forwardedRef: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Root {...restProps} data-ui=\"Layer\" onFocus={handleFocus} ref={ref} style={{...style, zIndex}}>\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})\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {useMemo, useRef, useSyncExternalStore} from 'react'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof 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})\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof 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 forwardedRef: 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 ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!ref.current) return\n\n let _scrollEl = ref.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 }, [])\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={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\nVirtualList.displayName = 'ForwardRef(VirtualList)'\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)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {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 forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!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 const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\nPopover.displayName = 'Memo(ForwardRef(Popover))'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\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 radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst 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 = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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})\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst 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 = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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})\nSelect.displayName = 'ForwardRef(Select)'\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n 'gridTemplateColumns': 'minmax(0, 1fr)',\n 'gridAutoRows': 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof 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})\nStack.displayName = 'ForwardRef(Stack)'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst 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 = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <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})\nSwitch.displayName = 'ForwardRef(Switch)'\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst 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 __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <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 $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {\n 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: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <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})\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\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)\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.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\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n type Middleware,\n type RootBoundary,\n} from '@floating-ui/react-dom'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {useEffectEvent} from 'use-effect-event'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.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)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // 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\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const childRef = useRef<HTMLElement | null>(null)\n\n // Merge refs so that any ref we are overriding is called as well\n useImperativeHandle((childProp as any)?.ref, () => childRef.current)\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: childRef,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!child) return undefined\n\n setReferenceElement(childRef.current)\n\n return () => setReferenceElement(null)\n }, [child])\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={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </Root>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n})\nTooltip.displayName = 'ForwardRef(Tooltip)'\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [onMouseMove, showTooltip])\n}\n","import {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 useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} 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 /** @beta */\n openOnFocus?: boolean\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 forwardedRef: React.ForwardedRef<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 openOnFocus,\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 // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\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 dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\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 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 dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\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={inputElementRef}\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\nInnerAutocomplete.displayName = 'ForwardRef(Autocomplete)'\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 {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useArrayProp, useClickOutsideEvent} 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 expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\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={popoverElementRef}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={expandElementRef}\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})\nBreadcrumbs.displayName = 'ForwardRef(Breadcrumbs)'\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 {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\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\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\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, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {\n useArrayProp,\n useClickOutsideEvent,\n useGlobalKeyDown,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\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 ref = useRef<HTMLDivElement | null>(null)\n const contentRef = 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 useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\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 useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\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 () => [ref.current],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={ref} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"flex-start\" 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={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\nDialogCard.displayName = 'ForwardRef(DialogCard)'\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,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\nDialog.displayName = 'ForwardRef(Dialog)'\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\nDialogProvider.displayName = 'DialogProvider'\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})\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: React.MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\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 forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({onKeyDown, originElement, shouldFocus, rootElementRef: ref})\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <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})\nMenu.displayName = 'ForwardRef(Menu)'\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n useImperativeHandle,\n} from 'react'\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 forwardedRef: 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 () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\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 = menuProp && cloneElement(menuProp, menuProps)\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const button = useMemo(\n () =>\n 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': ref,\n 'selected': buttonProp.props.selected ?? open,\n }),\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open],\n )\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n // If there's a button then we need to set the reference element to the cloned button ref\n // and if button changes we make sure to update or remove the reference element.\n useEffect(() => {\n if (!button) return undefined\n\n setButtonElement(ref.current)\n\n return () => setButtonElement(null)\n }, [button])\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})\nMenuButton.displayName = 'ForwardRef(MenuButton)'\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\nMenuDivider.displayName = 'MenuDivider'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} 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: Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'popover' | 'ref' | 'tabIndex'> &\n MenuGroupProps,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import {\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...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 {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\nMenuItem.displayName = 'ForwardRef(MenuItem)'\n","import {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})\nSkeleton.displayName = 'ForwardRef(Skeleton)'\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})\nTextSkeleton.displayName = 'ForwardRef(TextSkeleton)'\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})\nLabelSkeleton.displayName = 'ForwardRef(LabelSkeleton)'\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})\nHeadingSkeleton.displayName = 'ForwardRef(HeadingSkeleton)'\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})\nCodeSkeleton.displayName = 'ForwardRef(CodeSkeleton)'\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\nTab.displayName = 'ForwardRef(Tab)'\n","import {cloneElement, forwardRef, useCallback, useState, Children, isValidElement} from 'react'\nimport {styled} from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.ReactElement[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\nTabList.displayName = 'ForwardRef(TabList)'\n","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})\nTabPanel.displayName = 'ForwardRef(TabPanel)'\n","import {styled, keyframes, css} from 'styled-components'\nimport {ThemeColorStateToneKey, getTheme_v2} from '../../../theme'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Flex} from '../../primitives'\nimport {ThemeProps} from '../../styles'\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nconst loadingAnimation = keyframes`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport function rootStyles(\n props: {$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps,\n): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n const loadingBarColor = color.button.default[props.tone].enabled.bg\n\n if (!props.$duration)\n return css`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n\n return css`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n padding-bottom: ${LOADING_BAR_HEIGHT}px;\n &::before {\n content: '';\n position: absolute;\n bottom: 0px;\n height: ${LOADING_BAR_HEIGHT}px;\n background: ${loadingBarColor};\n animation-name: ${loadingAnimation};\n animation-duration: ${props.$duration}ms;\n animation-fill-mode: both;\n }\n\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {Box, Button, Flex, Stack, Text, Card} from '../../primitives'\nimport {ThemeProps} from '../../styles'\nimport type {ButtonTone} from '../../types'\nimport {rootStyles, TextBox} from './styles'\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 duration?: number\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorStateToneKey} = {\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)<{$duration?: number; tone: ThemeColorStateToneKey} & ThemeProps>(\n rootStyles,\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, duration, 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 $duration={duration}\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\nToast.displayName = 'Toast'\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {AnimatePresence, motion, type Variants} from 'framer-motion'\nimport {useMemo, useRef, useState, startTransition, useEffect} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {useMounted} from '../../hooks/useMounted'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n const mounted = useMounted()\n const prefersReducedMotion = usePrefersReducedMotion()\n const variants = useMemo<Variants>(\n () => ({\n initial: {\n opacity: 0,\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,\n y: 32,\n scale: 0.25,\n willChange: 'transform',\n },\n animate: {\n opacity: [0, 1, 1],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [0, 0, 1],\n y: 0,\n scale: 1,\n },\n exit: {\n opacity: [1, 1, 0],\n [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [1, 0, 0],\n scale: 0.5,\n transition: prefersReducedMotion ? {duration: 0} : {duration: 0.2},\n },\n }),\n [prefersReducedMotion],\n )\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\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 {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\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 forwardedRef: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const ref = useRef<HTMLDivElement | null>(null)\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 useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\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 (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\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={ref}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\nTree.displayName = 'Memo(ForwardRef(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 {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: IconComponent,\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={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\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})\nTreeItem.displayName = 'Memo(TreeItem)'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","marginTop","marginBottom","margin","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","t0","boundaryElement","$","_c","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","contains","el_1","window","addEventListener","removeEventListener","useClickOutsideEvent","_temp","resolvedBoundaryElement","flat","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","document","useDebugValue","useCustomValidity","ref","customValidity","setCustomValidity","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","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","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","entries","ot","entry","targetDepth","lastReportedSize","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","useForwardedRef","innerRef","Symbol","for","useImperativeHandle","useGlobalKeyDown","onKeyDown","useMatchMedia","mediaQueryString","getServerSnapshot","getSnapshot","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","getGlobalScope","globalThis","self","globalScope","createGlobalScopedContext","defaultValue","symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","displayName","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","p","s","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","childrenProp","textOverflow","restProps","accent","weight","muted","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","transform","$color","avatar","responsiveAvatarSizeStyle","avatarSize","position","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","asProp","animateArrowFrom","arrowPositionProp","src","onImageLoadError","__unstable_hideInnerStroke","title","as","arrowPosition","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","t6","t7","handleImageError","t8","t9","t10","initialsSize","t11","t12","t13","t14","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","child","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","padding","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","textBaseStyle","bold","Text","badgeStyle","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","_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","boxShadows","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","loading","selected","IconComponent","IconRightComponent","iconRight","justifyProp","paddingProp","radiusProp","spaceProp","boxProps","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","indeterminate","checked","className","codeSyntaxHighlightingStyle","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","tag","unit","url","variable","codeBaseStyle","pre","Code","languageProp","language","Refractor","hasLanguage","registered","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","heading","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","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","$w","w","StrokePath","path","ShapePath","h","center","strokePath","fillPath","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","findMinBreakpoints","ElementQuery","elementSize","innerWidth","setRef","useCallback","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","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","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","_temp2","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","ItemWrapper","VirtualList","renderItem","onChange","getItemKey","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","passive","handleScroll_0","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","marginsProp","xProp","yProp","strategy","arrowX","arrowY","arrowRef","__unstable_margins","rootStyle","arrowStyle","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","getElementRef","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","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","__unstable_disableFocusRing","CLEAR_BUTTON_BOX_STYLE","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","suffix","prefix","onClear","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","event_0","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","v_0","clearButtonPadding","clearButtonProps","CloseIcon","clearButtonNode","suffixNode","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","ListBox","AnimatedSpinnerIcon","SpinnerIcon","AutocompleteOption","onSelect","currentTarget","handleKeyDown","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","openOnFocus","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","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","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","ChevronDownIcon","inputValue","handleListBoxKeyDown","active","results","hidden","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElementRef","popoverElementRef","collapse","expand","rawItems","beforeLength","afterLength","Fragment","dialogStyle","responsiveDialogPositionStyle","$position","animationDialogStyle","$animate","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","forwardedContentRef","footer","header","onClickOutside","onClose","labelId","showCloseButton","showHeader","target_0","Dialog","dialog","_positionProp","_zOffsetProp","cardRadius","cardShadow","cardRadiusProp","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","cardElement_0","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","currentIndex","focusableElements","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","Menu","_shouldFocus","registerElement","onItemSelect","onEscape","onItemClick","focusFirst","focusLast","unregisterElementRef","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","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","_onItemMouseEnter","setRootElement","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","t31","t32","MenuItem","selectedProp","hotkeys","_onItemMouseLeave","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","$visible","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","focusedRef","CustomInline","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0","TabPanel","TextBox","loadingAnimation","LOADING_BAR_HEIGHT","rootStyles","loadingBarColor","$duration","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","Toast","description","closable","cardTone","buttonTone","role","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","prefersReducedMotion","variants","startTransition","dismiss","timeoutId","prevState","findIndex","t","toasts","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","setFocusedElement","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents"],"mappings":"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","x_google_ignoreList":[13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|