@sanity/ui 2.3.7-canary.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks-cjs/getTheme_v2.js +319 -0
- package/dist/_chunks-cjs/getTheme_v2.js.map +1 -0
- package/dist/_chunks-es/getTheme_v2.mjs +320 -0
- package/dist/_chunks-es/getTheme_v2.mjs.map +1 -0
- package/dist/_legacy/getTheme_v2.esm.js +320 -0
- package/dist/_legacy/getTheme_v2.esm.js.map +1 -0
- package/dist/index.d.mts +2 -13
- package/dist/index.d.ts +2 -13
- package/dist/index.esm.js +2301 -2237
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2304 -2241
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2301 -2237
- package/dist/index.mjs.map +1 -1
- package/dist/theme.esm.js +4 -315
- package/dist/theme.esm.js.map +1 -1
- package/dist/theme.js +36 -349
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +4 -315
- package/dist/theme.mjs.map +1 -1
- package/package.json +35 -31
- package/src/core/components/autocomplete/autocomplete.tsx +34 -31
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +2 -3
- package/src/core/components/dialog/dialog.tsx +12 -23
- package/src/core/components/hotkeys/hotkeys.tsx +3 -3
- package/src/core/components/menu/menu.tsx +1 -5
- package/src/core/components/menu/menuButton.tsx +32 -17
- package/src/core/components/menu/menuGroup.tsx +5 -7
- package/src/core/components/menu/menuItem.tsx +6 -10
- package/src/core/components/skeleton/skeleton.tsx +11 -5
- package/src/core/components/skeleton/textSkeleton.tsx +7 -6
- package/src/core/components/toast/styles.ts +61 -0
- package/src/core/components/toast/toast.tsx +11 -16
- package/src/core/components/toast/toastProvider.tsx +25 -26
- package/src/core/components/tree/treeItem.tsx +44 -31
- package/src/core/hooks/useArrayProp.ts +10 -11
- package/src/core/primitives/avatar/avatar.tsx +15 -11
- package/src/core/primitives/avatar/avatarCounter.tsx +17 -11
- package/src/core/primitives/avatar/avatarStack.tsx +7 -3
- package/src/core/primitives/badge/badge.tsx +4 -7
- package/src/core/primitives/box/box.tsx +27 -53
- package/src/core/primitives/button/button.tsx +12 -11
- package/src/core/primitives/card/card.tsx +9 -17
- package/src/core/primitives/code/code.tsx +3 -4
- package/src/core/primitives/container/container.tsx +11 -4
- package/src/core/primitives/flex/flex.tsx +7 -13
- package/src/core/primitives/grid/grid.tsx +10 -19
- package/src/core/primitives/heading/heading.tsx +4 -7
- package/src/core/primitives/inline/inline.tsx +2 -3
- package/src/core/primitives/kbd/kbd.tsx +3 -4
- package/src/core/primitives/label/label.tsx +4 -7
- package/src/core/primitives/popover/popover.tsx +49 -49
- package/src/core/primitives/select/select.tsx +6 -12
- package/src/core/primitives/stack/stack.tsx +3 -4
- package/src/core/primitives/text/text.tsx +4 -7
- package/src/core/primitives/textArea/textArea.tsx +6 -12
- package/src/core/primitives/textInput/textInput.tsx +5 -6
- package/src/core/primitives/tooltip/tooltip.tsx +7 -14
- package/src/core/theme/themeProvider.tsx +6 -4
- package/src/core/utils/elementQuery/elementQuery.tsx +3 -4
- package/src/core/utils/layer/getLayerContext.test.ts +4 -0
- package/src/core/utils/layer/layer.test.tsx +2 -0
- package/src/core/utils/layer/layerProvider.tsx +43 -35
- package/src/core/utils/layer/types.ts +1 -0
- package/dist/index.compiled.mjs +0 -7488
- package/dist/index.compiled.mjs.map +0 -1
- package/src/core/components/tree/treeItem.styles.ts +0 -21
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.compiled.mjs","sources":["../src/core/_compat.ts","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/lib/globalScope.ts","../src/core/lib/createGlobalScopedContext.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/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/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useCustomValidity.ts","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/hooks/_internal/useUnique.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/hotkeys/hotkeys.tsx","../src/core/components/menu/menuContext.ts","../src/core/components/menu/helpers.ts","../src/core/components/menu/useMenuController.ts","../src/core/components/menu/menu.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/treeItem.styles.ts","../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","/* 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 * To improve performance and DevEx for things such as Hot Module Replacement,\n * we want to preserve created contexts between reloads.\n * It also helps with module duplication and other issues.\n */\n\nimport {createContext, type Context} from 'react'\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n key: symbol,\n defaultValue: T,\n): Context<ContextType> {\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[key] = globalScope[key] || createContext<T>(defaultValue)\n\n return globalScope[key]\n}\n","import {createGlobalScopedContext} from '../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(key, null)\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 {children} = props\n const parentTheme = useContext(ThemeContext)\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","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {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, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\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 const $size = useMemo(() => _getArrayProp(size), [size])\n const $align = useMemo(() => _getArrayProp(align), [align])\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={$align}\n $size={$size}\n $muted={muted}\n $weight={weight}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n backgroundColor: 'var(--avatar-bg-color)',\n position: 'relative',\n boxSizing: 'border-box',\n userSelect: 'none',\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n WebkitFontSmoothing: 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n width: '100%',\n height: '100%',\n color: 'var(--avatar-fg-color)',\n alignItems: 'center',\n justifyContent: 'center',\n textTransform: 'uppercase',\n textAlign: 'center',\n borderRadius: '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof 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 = isValidElementType(asProp) ? asProp : 'div'\n const size = _getArrayProp(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 = 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\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <Image viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </Image>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive, ThemeProps, _getArrayProp} 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} = props\n const $size = _getArrayProp(size ?? 1)\n const fontSize = $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\n return (\n <Root $size={$size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\n","import {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 {rem, _responsive, ThemeProps, _getArrayProp} 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: React.ReactElement[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useMemo(() => _getArrayProp(sizeProp), [sizeProp])\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\n","import {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\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 const $column = useMemo(() => _getArrayProp(column), [column])\n const $columnStart = useMemo(() => _getArrayProp(columnStart), [columnStart])\n const $columnEnd = useMemo(() => _getArrayProp(columnEnd), [columnEnd])\n const $display = useMemo(() => _getArrayProp(display), [display])\n const $flex = useMemo(() => _getArrayProp(flex), [flex])\n const $height = useMemo(() => _getArrayProp(height), [height])\n const $margin = useMemo(() => _getArrayProp(margin), [margin])\n const $marginX = useMemo(() => _getArrayProp(marginX), [marginX])\n const $marginY = useMemo(() => _getArrayProp(marginY), [marginY])\n const $marginTop = useMemo(() => _getArrayProp(marginTop), [marginTop])\n const $marginRight = useMemo(() => _getArrayProp(marginRight), [marginRight])\n const $marginBottom = useMemo(() => _getArrayProp(marginBottom), [marginBottom])\n const $marginLeft = useMemo(() => _getArrayProp(marginLeft), [marginLeft])\n const $overflow = useMemo(() => _getArrayProp(overflow), [overflow])\n const $padding = useMemo(() => _getArrayProp(padding), [padding])\n const $paddingX = useMemo(() => _getArrayProp(paddingX), [paddingX])\n const $paddingY = useMemo(() => _getArrayProp(paddingY), [paddingY])\n const $paddingTop = useMemo(() => _getArrayProp(paddingTop), [paddingTop])\n const $paddingRight = useMemo(() => _getArrayProp(paddingRight), [paddingRight])\n const $paddingBottom = useMemo(() => _getArrayProp(paddingBottom), [paddingBottom])\n const $paddingLeft = useMemo(() => _getArrayProp(paddingLeft), [paddingLeft])\n const $row = useMemo(() => _getArrayProp(row), [row])\n const $rowStart = useMemo(() => _getArrayProp(rowStart), [rowStart])\n const $rowEnd = useMemo(() => _getArrayProp(rowEnd), [rowEnd])\n const $sizing = useMemo(() => _getArrayProp(sizing), [sizing])\n\n return (\n <Root\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={$column}\n $columnStart={$columnStart}\n $columnEnd={$columnEnd}\n $display={$display}\n $flex={$flex}\n $height={$height}\n $margin={$margin}\n $marginX={$marginX}\n $marginY={$marginY}\n $marginTop={$marginTop}\n $marginRight={$marginRight}\n $marginBottom={$marginBottom}\n $marginLeft={$marginLeft}\n $overflow={$overflow}\n $padding={$padding}\n $paddingX={$paddingX}\n $paddingY={$paddingY}\n $paddingTop={$paddingTop}\n $paddingRight={$paddingRight}\n $paddingBottom={$paddingBottom}\n $paddingLeft={$paddingLeft}\n $row={$row}\n $rowStart={$rowStart}\n $rowEnd={$rowEnd}\n $sizing={$sizing}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\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 const $size = useMemo(() => _getArrayProp(size), [size])\n const $align = useMemo(() => _getArrayProp(align), [align])\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={$align}\n $size={$size}\n $muted={muted}\n ref={ref}\n $weight={weight}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n backgroundColor: 'var(--card-bg-color)',\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof 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 const $radius = useMemo(() => _getArrayProp(radius), [radius])\n const $padding = useMemo(() => _getArrayProp(padding), [padding])\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={$radius}\n padding={$padding}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </Root>\n )\n})\n","import {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\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 const $align = useMemo(() => _getArrayProp(align), [align])\n const $direction = useMemo(() => _getArrayProp(direction), [direction])\n const $gap = useMemo(() => _getArrayProp(gap), [gap])\n const $justify = useMemo(() => _getArrayProp(justify), [justify])\n const $wrap = useMemo(() => _getArrayProp(wrap), [wrap])\n\n return (\n <Root\n data-ui=\"Flex\"\n {...restProps}\n $align={$align}\n $direction={$direction}\n $gap={$gap}\n $justify={$justify}\n $wrap={$wrap}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport {styled, keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {ThemeProps, _getArrayProp} 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 = useMemo(() => _getArrayProp(justifyProp), [justifyProp])\n const padding = useMemo(() => _getArrayProp(paddingProp), [paddingProp])\n const paddingX = useMemo(() => _getArrayProp(paddingXProp), [paddingXProp])\n const paddingY = useMemo(() => _getArrayProp(paddingYProp), [paddingYProp])\n const paddingTop = useMemo(() => _getArrayProp(paddingTopProp), [paddingTopProp])\n const paddingBottom = useMemo(() => _getArrayProp(paddingBottomProp), [paddingBottomProp])\n const paddingLeft = useMemo(() => _getArrayProp(paddingLeftProp), [paddingLeftProp])\n const paddingRight = useMemo(() => _getArrayProp(paddingRightProp), [paddingRightProp])\n const radius = useMemo(() => _getArrayProp(radiusProp), [radiusProp])\n const space = useMemo(() => _getArrayProp(spaceProp), [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 <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n )}\n\n {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})\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, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n muted?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst 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 const $border = useMemo(() => _getArrayProp(border), [border])\n const $borderTop = useMemo(() => _getArrayProp(borderTop), [borderTop])\n const $borderRight = useMemo(() => _getArrayProp(borderRight), [borderRight])\n const $borderBottom = useMemo(() => _getArrayProp(borderBottom), [borderBottom])\n const $borderLeft = useMemo(() => _getArrayProp(borderLeft), [borderLeft])\n const $radius = useMemo(() => _getArrayProp(radius), [radius])\n const $shadow = useMemo(() => _getArrayProp(shadow), [shadow])\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={$border}\n $borderTop={$borderTop}\n $borderRight={$borderRight}\n $borderBottom={$borderBottom}\n $borderLeft={$borderLeft}\n $radius={$radius}\n $shadow={$shadow}\n $checkered={checkered}\n $focusRing={focusRing}\n $muted={muted}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\n","import {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 * @deprecated use `_getArrayProp` and `useMemo` directly instead\n * @example\n * ```diff\n * -import {useArrayProp} from '@sanity/ui'\n * +import {_getArrayProp} from '@sanity/ui'\n * +import {useMemo} from 'react'\n *\n * -const width = useArrayProp(props.width)\n * +const width = useMemo(() => _getArrayProp(props.width), [props.width])\n * ```\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n return useMemo(() => _getArrayProp(val, defaultVal), [defaultVal, val])\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","import {useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\nconst MEDIA_STORE_CACHE = new WeakMap<number[], _MediaStore>()\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n\n let store = MEDIA_STORE_CACHE.get(media)\n\n if (!store) {\n store = _createMediaStore(media)\n MEDIA_STORE_CACHE.set(media, store)\n }\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-color-scheme: dark)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-reduced-motion: reduce)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * Returns true if motion should be reduced\n * @public\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {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 useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {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})\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, useMemo} from 'react'\nimport Refractor from 'react-refractor'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\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 const $size = useMemo(() => _getArrayProp(size), [size])\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={$size} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst 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 const $width = useMemo(() => _getArrayProp(width), [width])\n\n return <Root data-ui=\"Container\" {...restProps} $width={$width} forwardedAs={as} ref={ref} />\n})\n","import {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst 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 const $autoRows = useMemo(() => _getArrayProp(autoRows), [autoRows])\n const $autoCols = useMemo(() => _getArrayProp(autoCols), [autoCols])\n const $autoFlow = useMemo(() => _getArrayProp(autoFlow), [autoFlow])\n const $columns = useMemo(() => _getArrayProp(columns), [columns])\n const $gap = useMemo(() => _getArrayProp(gap), [gap])\n const $gapX = useMemo(() => _getArrayProp(gapX), [gapX])\n const $gapY = useMemo(() => _getArrayProp(gapY), [gapY])\n const $rows = useMemo(() => _getArrayProp(rows), [rows])\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={$autoRows}\n $autoCols={$autoCols}\n $autoFlow={$autoFlow}\n $columns={$columns}\n $gap={$gap}\n $gapX={$gapX}\n $gapY={$gapY}\n $rows={$rows}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\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 const $size = useMemo(() => _getArrayProp(size), [size])\n const $align = useMemo(() => _getArrayProp(align), [align])\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={$align}\n $size={$size}\n $muted={muted}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n margin: `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo, Children} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\nimport {Box, BoxProps} from '../box'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst 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 $space = useMemo(() => _getArrayProp(space), [space])\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={$space}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\n","import {forwardRef, useMemo} from 'react'\nimport {styled, css} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof 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 const $radius = useMemo(() => _getArrayProp(radius), [radius])\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={$radius} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </Root>\n )\n})\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport {styled, css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Root {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </Root>\n )\n})\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n key,\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","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, 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: _media, ...restProps} = props\n const media = _media ?? theme.media\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 = findMaxBreakpoints(media, width)\n const min = findMinBreakpoints(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})\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\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(key, null)\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 {createContext, useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\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 parentRegisterChild = useContext(LayerContextRegisterChild)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useMemo(() => _getArrayProp(zOffsetProp), [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 [childLayers, setChildLayers] = useState<Record<number, number>>({})\n // A memo value that is used to keep track of the number of child levels\n const size = useMemo(() => Object.keys(childLayers).length, [childLayers])\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 setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n return nextState\n })\n\n return () => {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\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 = useMemo(\n () => ({\n version: 0.0 as const,\n isTopLayer,\n level,\n size,\n zIndex,\n }),\n [isTopLayer, level, size, zIndex],\n )\n\n return (\n <LayerContext.Provider value={value}>\n <LayerContextRegisterChild.Provider value={registerChild}>\n {children}\n </LayerContextRegisterChild.Provider>\n </LayerContext.Provider>\n )\n}\n\nconst LayerContextRegisterChild = createContext<((childLevel: number) => () => void) | null>(null)\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})\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/element')\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\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","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo, useSyncExternalStore} from 'react'\nimport {useUnique} from '../../hooks/_internal'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\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\nconst emptySubscribe = () => () => {}\n","import {forwardRef} from 'react'\nimport {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, 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})\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n bottom: ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n left: ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n right: ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nPopoverCard.displayName = 'PopoverCard'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {\n ConditionalWrapper,\n LayerProps,\n LayerProvider,\n Portal,\n useBoundaryElement,\n} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n /** @deprecated Use `referenceElement` instead */\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: _boundaryElement,\n children: _children,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\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: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffset,\n updateRef,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext.element\n const referenceBoundary =\n _referenceBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const floatingBoundary =\n _floatingBoundary ?? props.boundaryElement ?? boundaryElementContext.element\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffsetProp = _zOffset ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useMemo(() => _getArrayProp(paddingProp), [paddingProp])\n const radius = useMemo(() => _getArrayProp(radiusProp), [radiusProp])\n const shadow = useMemo(() => _getArrayProp(shadowProp), [shadowProp])\n const widthArrayProp = _getArrayProp(widthProp)\n const zOffset = useMemo(() => _getArrayProp(zOffsetProp), [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 useImperativeHandle(updateRef, () => update, [update])\n\n useEffect(() => {\n if (_children) return\n refs.setReference(referenceElement || null)\n }, [_children, referenceElement, refs])\n\n const children = useMemo(() => {\n if (!_children || referenceElement) return null\n\n return cloneElement(_children, {\n ref: (node: HTMLDivElement | null): void => {\n logDeprecatedWarning()\n refs.setReference(node)\n },\n })\n }, [_children, referenceElement, refs])\n\n if (disabled) {\n return _children || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n return (\n <>\n {/* the popover */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {open && (\n <ConditionalWrapper\n condition={!!portal}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {children}\n </Portal>\n )}\n >\n {popover}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element (legacy, use referenceElement instead) */}\n {children}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Popover'\n\nlet didWarn = false\n\nfunction logDeprecatedWarning() {\n if (!didWarn) {\n // eslint-disable-next-line no-console\n console.warn('Popover: Please use the `referenceElement` prop instead of passing a children.')\n didWarn = true\n }\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function 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})\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, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst 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 const $fontSize = useMemo(() => _getArrayProp(fontSize), [fontSize])\n const $padding = useMemo(() => _getArrayProp(padding), [padding])\n const $radius = useMemo(() => _getArrayProp(radius), [radius])\n const $space = useMemo(() => _getArrayProp(space), [space])\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={$fontSize}\n $padding={$padding}\n $radius={$radius}\n $space={$space}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {_getArrayProp} from '../../styles'\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 const $space = useMemo(() => _getArrayProp(space), [space])\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={$space}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect, 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})\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n ...restProps\n } = props\n\n const ref = 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 const $radius = useMemo(() => _getArrayProp(radius), [radius])\n const $fontSize = useMemo(() => _getArrayProp(fontSize), [fontSize])\n const $padding = useMemo(() => _getArrayProp(padding), [padding])\n const $space = useMemo(() => _getArrayProp(0), [])\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={$fontSize}\n $padding={$padding}\n $space={$space}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\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 </InputRoot>\n </Root>\n )\n})\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 {useCustomValidity} from '../../hooks'\nimport {_getArrayProp} from '../../styles'\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 = useMemo(() => _getArrayProp(fontSizeProp), [fontSizeProp])\n const padding = useMemo(() => _getArrayProp(paddingProp), [paddingProp])\n const radius = useMemo(() => _getArrayProp(radiusProp), [radiusProp])\n const space = useMemo(() => _getArrayProp(spaceProp), [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})\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n bottom: ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n left: ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n right: ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY, POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'TooltipCard'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tooltipDelayGroup')\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(key, null)\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n 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 useSyncExternalStore,\n useImperativeHandle,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles'\nimport {useTheme_v2} from '../../theme'\nimport type {Placement} from '../../types'\nimport {\n ConditionalWrapper,\n Layer,\n type LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} 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)<{$maxWidth: number}>`\n pointer-events: none;\n max-width: ${({$maxWidth}) => $maxWidth}px;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const fallbackPlacementsProp =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useMemo(\n () => _getArrayProp(fallbackPlacementsProp),\n [fallbackPlacementsProp],\n )\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\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 documentBodyOffsetWidth = useSyncExternalStore(\n emptySubscribe,\n () => document.body.offsetWidth,\n // We don't actually know what the width of the body is during SSR, so we'll just assume it's 800px or larger\n () => 800,\n )\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const tooltipWidth = useMemo(() => {\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || documentBodyOffsetWidth,\n ]\n\n return Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2\n }, [boundaryElement, documentBodyOffsetWidth, portalElement?.offsetWidth])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\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 // 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 handleWindowMouseMove = (event: MouseEvent) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [showTooltip, referenceElement, handleIsOpenChange])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n 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={floatingStyles}\n zOffset={zOffset}\n $maxWidth={tooltipWidth}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </Root>\n )\n\n return (\n <>\n {/* the tooltip */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {showTooltip && (\n <ConditionalWrapper\n condition={!!portalProp}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {children}\n </Portal>\n )}\n >\n {tooltip}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n})\n\nconst emptySubscribe = () => () => {}\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 {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n 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 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 = _getArrayProp(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 = (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\n const handleRootFocus = (event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={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\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import {styled} from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\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 = useMemo(() => _getArrayProp(spaceRaw), [spaceRaw])\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(() => 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={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n background: color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n $animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.$animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {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\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(key, {\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 {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {useClickOutside, useGlobalKeyDown, usePrefersReducedMotion} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\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 = useMemo(() => _getArrayProp(radiusProp), [radiusProp])\n const shadow = useMemo(() => _getArrayProp(shadowProp), [shadowProp])\n const width = useMemo(() => _getArrayProp(widthProp), [widthProp])\n const ref = useRef<HTMLDivElement | null>(null)\n const [rootElement, setRootElement] = useState<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 useClickOutside(\n useCallback(\n (event: MouseEvent) => {\n if (!isTopLayer || !onClickOutside) return\n\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n },\n [boundaryElement, isTopLayer, onClickOutside, portalElement],\n ),\n [rootElement],\n )\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n setRootElement(el)\n ref.current = el\n }, [])\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"center\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={contentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _position,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffset,\n animate: _animate = false,\n ...restProps\n } = props\n const positionProp = _position ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffset ?? (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 = useMemo(() => _getArrayProp(cardRadiusProp), [cardRadiusProp])\n const padding = useMemo(() => _getArrayProp(paddingProp), [paddingProp])\n const position = useMemo(() => _getArrayProp(positionProp), [positionProp])\n const width = useMemo(() => _getArrayProp(widthProp), [widthProp])\n const zOffset = useMemo(() => _getArrayProp(zOffsetProp), [zOffsetProp])\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $animate={animate}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {Inline, KBD} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst 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 = useMemo(() => _getArrayProp(spaceProp), [spaceProp])\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </Root>\n )\n})\n","import {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\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(key, null)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElement, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElement?.focus()\n }, [setActiveIndex, rootElement])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\n if (_activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport {styled} from 'styled-components'\nimport {useClickOutside, 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 'aria-labelledby'?: string\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 onBlurCapture?: (event: React.FocusEvent<HTMLButtonElement>) => 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 rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n ref.current = el\n },\n [setRootElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside],\n ),\n [rootElement],\n )\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Root>\n </MenuContext.Provider>\n )\n})\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\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 () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menu =\n menuProp &&\n cloneElement<MenuProps>(menuProp, {\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 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: setButtonElement,\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 () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <>\n <Popover\n data-ui=\"MenuButton__popover\"\n referenceElement={buttonElement}\n {...popoverProps}\n content={menu}\n open={open}\n />\n {button}\n </>\n )\n})\n","import {styled} from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {styled} from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {isValidElement, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon: IconComponent,\n onClick,\n padding = 3,\n popover,\n radius: radiusProp = 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 shouldFocusRef = useRef<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n const radius = useMemo(() => _getArrayProp(radiusProp), [radiusProp])\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) onItemClick()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={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","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 {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof 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 = useMemo(() => _getArrayProp(fontSize).map((s) => s - 1), [fontSize])\n const $radius = useMemo(() => _getArrayProp(radius), [radius])\n const $padding = useMemo(() => _getArrayProp(0), [])\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={$radius}\n $padding={$padding}\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})\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, useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {_getArrayProp} from '../../styles'\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 const $radius = useMemo(() => _getArrayProp(radius), [radius])\n\n return <Root {...restProps} $animated={animated} $radius={$radius} $visible={visible} ref={ref} />\n})\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport {styled} from 'styled-components'\nimport {ThemeProps, _getArrayProp, _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 = useMemo(() => _getArrayProp(size), [size])\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useMemo(() => _getArrayProp(size), [size])\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useMemo(() => _getArrayProp(size), [size])\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useMemo(() => _getArrayProp(size), [size])\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\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})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {styled} from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorToneKey} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\nimport {POPOVER_MOTION_CONTENT_OPACITY_PROPERTY} from '../../constants'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport type {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n} satisfies {[key: string]: ButtonTone}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst Root = styled(Card)`\n pointer-events: all;\n & > * {\n opacity: var(${POPOVER_MOTION_CONTENT_OPACITY_PROPERTY}, 1);\n will-change: opacity;\n }\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.ReactElement {\n const {closable, description, onClose, radius = 3, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(key, null)\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\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 () => getVariants(prefersReducedMotion),\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 || crypto.randomUUID()\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n key={id}\n layout=\"position\"\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n variants={variants}\n transition={\n prefersReducedMotion\n ? {duration: 0}\n : {type: 'spring', damping: 30, stiffness: 400}\n }\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n\nfunction getVariants(prefersReducedMotion: boolean) {\n return {\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: {duration: prefersReducedMotion ? 0 : 0.2},\n },\n }\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(key, null)\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)\n\nTree.displayName = 'Tree'\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 {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 {memo} from 'react'\nimport {styled} from 'styled-components'\nimport {Box, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\n\nexport const Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nexport const TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(\n treeItemBoxStyle,\n)\n\nexport const ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {Root, ToggleArrowText, TreeItemBox} from './treeItem.styles'\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\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, 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 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 = useMemo(\n () => (\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 [IconComponent, children, expanded, fontSize, muted, padding, space, text, weight],\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_CONTENT_OPACITY_PROPERTY","POPOVER_MOTION_PROPS","initial","opacity","scale","willChange","animate","exit","transition","duration","type","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_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","position","fontFamily","padding","margin","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","getGlobalScope","globalThis","window","self","global","globalScope","createGlobalScopedContext","defaultValue","document","createContext","Symbol","for","ThemeContext","ThemeProvider","$","_c","children","parentTheme","useContext","scheme","rootTheme","tone","t0","bb0","t1","version","themeContext","bb1","t2","getScopedTheme","StyledThemeProvider","t3","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","responsiveBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","card","borderStyle","width","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","filter","Boolean","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","i","_","text","emSize","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","index","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","ref","childrenProp","textOverflow","restProps","accent","weight","muted","t4","t5","t6","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","zIndex","left","right","top","bottom","$color","avatar","backgroundColor","userSelect","WebkitFontSmoothing","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","svg","Avatar","asProp","animateArrowFrom","arrowPositionProp","src","onImageLoadError","__unstable_hideInnerStroke","title","as","arrowPosition","status","sizeProp","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","useState","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","useEffect","t7","handleImageError","t8","initialsSize","t9","t10","t11","t12","t13","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","T0","Children","toArray","isValidElement","visibleCount","extraCount","visibleChildren","slice","child","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","t41","t42","t43","t44","t45","t46","t47","t48","t49","t50","t51","t52","t53","t54","t55","textBaseStyle","bold","Text","badgeStyle","cursor","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","useArrayProp","_getElements","element","elementsArg","ret","el","push","useClickOutside","listener","boundaryElement","setElement","elements","setElements","elementsRef","useRef","prevElements","current","nextElements","includes","el_0","handleWindowMouseDown","evt","target","Node","contains","el_1","addEventListener","removeEventListener","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","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","ownerSVGElement","removePadding","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","borderTopWidth","borderRightWidth","borderBottomWidth","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","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","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","lastObservation","indexOf","ResizeObserver","arguments","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_contentRect","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","MEDIA_STORE_CACHE","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","matchMedia","getSnapshot","matches","onStoreChange","disposeFns","handleChange","disposeFn","getServerSnapshot","useMediaIndex","store","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","usePrefersDark","usePrefersReducedMotion","useForwardedRef","innerRef","useImperativeHandle","useCustomValidity","customValidity","setCustomValidity","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","symbol","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","_media","innerWidth","setRef","ErrorBoundary","Component","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","state","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","href","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","LayerContextRegisterChild","level","maxMediaIndex","childLayers","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","state_0","nextState_0","nextState","registerChild","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","PortalProvider","__unstable_elements","elementsProp","fallbackElement","emptySubscribe","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","displayName","Popover","layer","boundaryElementContext","_boundaryElement","_referenceBoundary","_floatingBoundary","_fallbackPlacements","_zOffset","open","matchReferenceWidth","updateRef","_children","referenceElement","constrainSize","fallbackPlacements","floatingBoundary","preventOverflow","referenceBoundary","_animate","arrowProp","placementProp","shadowProp","widthProp","popover","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","flip","mainAxis","referenceWidth_0","_currentWidth","_maxWidth","hide","middleware","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","arrowEl","setArrow","setFloating","setReference","node_0","children_0","children_1","didWarn","logDeprecatedWarning","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","CLEAR_BUTTON_BOX_STYLE","attrs","forwardedAs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","suffix","prefix","onClear","__unstable_disableFocusRing","fontSizeProp","$hasClearButton","$hasIcon","$hasIconRight","preventDefault","stopPropagation","handleClearMouseDown","event_0","handleClearClick","prefixNode","presentationNode","v","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","$maxWidth","Tooltip","childProp","portalProp","tooltip","fallbackPlacementsProp","useMemo","setReferenceElement","documentBodyOffsetWidth","tooltipWidth","availableWidths","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","useCallback","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowMouseMove","handleWindowKeyDown","childRef","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","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","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","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","beforeLength","afterLength","Fragment","dialogStyle","background","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","setRootElement","labelId","showCloseButton","showHeader","target_0","Dialog","dialog","_position","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","nextActiveIndex","setActiveIndex","selectedIndex","mount","currentIndex","focusableElements_0","focusableElements","currentIndex_0","focusableElements_1","focusableLen","focusedIndex","currentIndex_1","focusableElements_2","focusableLen_0","focusedElement_0","focusedIndex_0","el_2","currentIndex_2","element_0","currentIndex_3","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","el_3","currentIndex_4","focusableElements_4","el_4","currentIndex_5","element_1","Menu","_shouldFocus","onItemSelect","onEscape","registerElement","onItemClick","focusFirst","focusLast","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleItemClick","els","els_0","_el","onBlurCapture","onMouseDown","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","_onItemMouseEnter","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","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","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","BUTTON_TONE","ROLES","TextBox","Toast","description","closable","cardTone","buttonTone","role","useMounted","ToastContext","ToastContainer","ToastProvider","_setState","toastsRef","prefersReducedMotion","getVariants","variants","startTransition","crypto","randomUUID","dismiss","timeoutId","prevState","findIndex","t","toasts","prevState_0","t_0","timeoutId_0","dismiss_0","id_0","params_0","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","useTree","tree","TreeGroup","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","li","TreeItemBox","ToggleArrowText","TreeItem","idProp","linkAs","expandedProp","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents"],"mappings":"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","x_google_ignoreList":[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71]}
|